<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Aulvem Blog</title><description>Build logs, technical notes and reviews from the work of building things at Aulvem.</description><link>https://aulvem.com/</link><language>en</language><lastBuildDate>Thu, 15 Oct 2026 17:13:20 GMT</lastBuildDate><atom:link href="https://aulvem.com/rss.xml" rel="self" type="application/rss+xml"/><item><title>What Size Tablet for Reading? 8, 10 or 11 Inch</title><link>https://aulvem.com/blog/2026-10-15-tablet-size-reading/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-10-15-tablet-size-reading/</guid><description>Calculated for tablets on Amazon.com, bunko paperbacks (Japanese novels) show at paper size or larger on 8-inch tablets and B6 manga on 10-11-inch ones, both borderline at the smallest size. A4 PDFs show at about 64-75% of paper size on the 10-11-inch class, and models from 12.9 inches up reach 80% or more.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Calculated for tablets on Amazon.com, showing one whole page in portrait, Japanese bunko paperbacks (4.1 x 5.8 in) fit on an 8-inch tablet, though 8.0 inches is borderline. B6 manga (5.0 x 7.2 in) needs 10 inches or more; none of the tablets checked shows an A4 PDF at full paper size. US paperback sizes weren’t calculated.&lt;/p&gt;
&lt;p&gt;The models covered are tablets listed on Amazon.com as of October 2026 with official screen sizes and resolutions. No tablet was tested in person.&lt;/p&gt;
&lt;h2 id=&quot;quick-reference-by-what-you-read&quot;&gt;Quick reference by what you read&lt;/h2&gt;
&lt;p&gt;Find the column for what you read and the row for the screen size. Each percentage is how big one whole page shows in portrait compared with the printed page. 100% means the same size as paper.&lt;/p&gt;
&lt;p&gt;The columns are Japanese book sizes plus A4: bunko is the Japanese paperback size, and shinsho and B6 are Japanese manga volume sizes. Measure your own book and compare.&lt;/p&gt;

































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Novels: bunko paperback, A6, 4.1 x 5.8 in&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Manga: shinsho volume, 4.4 x 6.9 in&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Manga: B6 volume, 5.0 x 7.2 in&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Magazines: B5, 7.2 x 10.1 in&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;PDFs: A4, 8.3 x 11.7 in&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;8-inch class (8-8.7 in)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Paper size or larger, smallest model just barely (about 102-110%)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Depends on the model (about 93-101%)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Smaller than paper (about 84-90%)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Smaller than paper (about 59-63%)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;10-11-inch class (10.1-11.5 in)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Paper size or larger (about 129-151%)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Paper size or larger (about 119-134%)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Paper size or larger, smallest model just barely (about 106-123%)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Smaller than paper (about 74-87%)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;12-13-inch class (11.95-13.1 in)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Paper size or larger (about 155-178%)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Paper size or larger (about 139-157%)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Paper size or larger (about 127-145%)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Depends on the model (about 89-102%)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;A check mark means every model in that class shows the page at paper size or larger. A triangle means some do and some don’t. “Smaller than paper” means every model shows it smaller.&lt;/p&gt;
&lt;p&gt;Each range runs from the smallest to the largest model in the class, bars included.&lt;/p&gt;
&lt;section id=&quot;reading-tablet-page-size&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;reading-tablet-page-size-title&quot;&gt; &lt;h3 id=&quot;reading-tablet-page-size-title&quot;&gt;See how big a book page shows on a tablet&lt;/h3&gt; &lt;p&gt;Pick what you read (paperback, shinsho or B6 manga, B5 magazine, A4 PDF) and a screen size class. It calculates what percentage of paper size one page shows at in portrait on current models from major makers, and draws the screen and the page to the same scale.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;ipad_11&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Apple iPad (A16) 11-inch 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61aPY8odPSL._AC_SY300_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Apple iPad (A16) 11-inch 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ7WF87P?q=Apple+iPad+%28A16%29+11-inch+128GB+Wi-Fi&amp;amp;us=B0DZ75TN5F&amp;amp;l=en&quot; aria-label=&quot;View Apple iPad (A16) 11-inch 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;galaxy_tab_s_fe_plus&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung Galaxy Tab S10 FE+ 13.1-inch 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61ITFWcX02L._AC_SY300_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung Galaxy Tab S10 FE+ 13.1-inch 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DVZSB68P?q=Samsung+Galaxy+Tab+S10+FE%2B+13.1-inch+128GB+Wi-Fi&amp;amp;us=B0DVZSB68P&amp;amp;l=en&quot; aria-label=&quot;View Samsung Galaxy Tab S10 FE+ 13.1-inch 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;fire_8&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Amazon Fire HD 8 (2024) 64GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61hBk5+RW5L._AC_SY300_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Amazon Fire HD 8 (2024) 64GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CVDZ7WYW?q=Amazon+Fire+HD+8+%282024%29+64GB&amp;amp;us=B0CVDZ7WYW&amp;amp;l=en&quot; aria-label=&quot;View Amazon Fire HD 8 (2024) 64GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;fire_10&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Amazon Fire HD 10 (2023) 32GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61EfgCU1k7L._AC_SY300_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Amazon Fire HD 10 (2023) 32GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C2XN8HKD?q=Amazon+Fire+HD+10+%282023%29+32GB&amp;amp;us=B0GVTPKJVT&amp;amp;l=en&quot; aria-label=&quot;View Amazon Fire HD 10 (2023) 32GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;all&quot;:{&quot;ipad_mini&quot;:{&quot;diag&quot;:8.3,&quot;res&quot;:[2266,1488],&quot;us&quot;:true},&quot;ipad_11&quot;:{&quot;diag&quot;:10.86,&quot;res&quot;:[2360,1640],&quot;us&quot;:true},&quot;ipad_air_11&quot;:{&quot;diag&quot;:10.86,&quot;res&quot;:[2360,1640],&quot;us&quot;:true},&quot;ipad_air_13&quot;:{&quot;diag&quot;:12.9,&quot;res&quot;:[2732,2048],&quot;us&quot;:true},&quot;ipad_pro_11&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[2420,1668],&quot;us&quot;:true},&quot;ipad_pro_13&quot;:{&quot;diag&quot;:13,&quot;res&quot;:[2752,2064],&quot;us&quot;:true},&quot;galaxy_tab_a_8&quot;:{&quot;diag&quot;:8.7,&quot;res&quot;:[1340,800],&quot;us&quot;:true},&quot;galaxy_tab_a_11&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[1920,1200],&quot;us&quot;:true},&quot;galaxy_tab_s_fe&quot;:{&quot;diag&quot;:10.9,&quot;res&quot;:[2304,1440],&quot;us&quot;:true},&quot;galaxy_tab_s_fe_plus&quot;:{&quot;diag&quot;:13.1,&quot;res&quot;:[2880,1800],&quot;us&quot;:true},&quot;galaxy_tab_s10_lite&quot;:{&quot;diag&quot;:10.9,&quot;res&quot;:[2112,1320],&quot;us&quot;:true},&quot;fire_8&quot;:{&quot;diag&quot;:8,&quot;res&quot;:[1280,800],&quot;us&quot;:true},&quot;fire_10&quot;:{&quot;diag&quot;:10.1,&quot;res&quot;:[1920,1200],&quot;us&quot;:true},&quot;fire_max_11&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[2000,1200],&quot;us&quot;:true},&quot;alexa_tablet_8&quot;:{&quot;diag&quot;:8.7,&quot;res&quot;:[1340,800],&quot;us&quot;:true},&quot;alexa_tablet_11&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[2560,1600],&quot;us&quot;:true},&quot;alexa_tablet_12_pro&quot;:{&quot;diag&quot;:11.95,&quot;res&quot;:[2800,1840],&quot;us&quot;:true},&quot;lenovo_tab_m11&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[1600,2560],&quot;us&quot;:true},&quot;lenovo_tab_plus&quot;:{&quot;diag&quot;:11.5,&quot;res&quot;:[1200,2000],&quot;us&quot;:true},&quot;lenovo_tab_plus_gen2&quot;:{&quot;diag&quot;:12.1,&quot;res&quot;:[1600,2560],&quot;us&quot;:true},&quot;lenovo_legion_tab&quot;:{&quot;diag&quot;:8.8,&quot;res&quot;:[1600,2560],&quot;us&quot;:false},&quot;lenovo_legion_tab_gen5&quot;:{&quot;diag&quot;:8.8,&quot;res&quot;:[1904,3040],&quot;us&quot;:false},&quot;xiaomi_redmi_pad_se_8&quot;:{&quot;diag&quot;:8.7,&quot;res&quot;:[800,1340],&quot;us&quot;:false},&quot;xiaomi_redmi_pad&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[1600,2560],&quot;us&quot;:true},&quot;xiaomi_pad&quot;:{&quot;diag&quot;:11.2,&quot;res&quot;:[2136,3200],&quot;us&quot;:true},&quot;budget_android_blackview_tab60wifi&quot;:{&quot;diag&quot;:10.1,&quot;res&quot;:[800,1280],&quot;us&quot;:false},&quot;budget_android_blackview_tab9wifi&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[1200,1920],&quot;us&quot;:false},&quot;budget_android_doogee_u13&quot;:{&quot;diag&quot;:13,&quot;res&quot;:[1200,1920],&quot;us&quot;:true},&quot;budget_android_oukitel_ot8&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[1200,1920],&quot;us&quot;:false},&quot;budget_android_oukitel_ot6&quot;:{&quot;diag&quot;:10.1,&quot;res&quot;:[800,1280],&quot;us&quot;:false},&quot;budget_android_oukitel_ot12&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[800,1280],&quot;us&quot;:false},&quot;budget_android_alldocube_iplay_80e&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[1600,2560],&quot;us&quot;:false},&quot;budget_android_alldocube_iplay_70e&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[1200,1920],&quot;us&quot;:false},&quot;budget_android_alldocube_iplay_80_mini_pro&quot;:{&quot;diag&quot;:8.4,&quot;res&quot;:[1200,1920],&quot;us&quot;:false},&quot;budget_android_alldocube_iplay_60_pro&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[1200,1920],&quot;us&quot;:true},&quot;budget_android_blackview_mega_2&quot;:{&quot;diag&quot;:12,&quot;res&quot;:[1200,2000],&quot;us&quot;:false},&quot;budget_android_blackview_link_5&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[800,1280],&quot;us&quot;:true},&quot;budget_android_headwolf_wpad7&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[1200,1920],&quot;us&quot;:false},&quot;budget_android_headwolf_fpad5&quot;:{&quot;diag&quot;:8.4,&quot;res&quot;:[1200,1920],&quot;us&quot;:false},&quot;budget_android_lenovo_tab_one&quot;:{&quot;diag&quot;:8.7,&quot;res&quot;:[800,1340],&quot;us&quot;:true},&quot;xiaomi_pad_7&quot;:{&quot;diag&quot;:11.2,&quot;res&quot;:[2136,3200],&quot;us&quot;:true},&quot;galaxy_tab_s12_plus&quot;:{&quot;diag&quot;:12.6,&quot;res&quot;:[2800,1752],&quot;us&quot;:false},&quot;galaxy_tab_s11&quot;:{&quot;diag&quot;:11,&quot;res&quot;:[2560,1600],&quot;us&quot;:false},&quot;redmi_pad_2_pro&quot;:{&quot;diag&quot;:12.1,&quot;res&quot;:[2560,1600],&quot;us&quot;:true},&quot;lenovo_idea_tab_plus&quot;:{&quot;diag&quot;:12.1,&quot;res&quot;:[2560,1600],&quot;us&quot;:true}},&quot;show&quot;:[{&quot;id&quot;:&quot;fire_8&quot;,&quot;diag&quot;:8,&quot;res&quot;:[1280,800],&quot;weight&quot;:337,&quot;short&quot;:&quot;Fire HD 8&quot;,&quot;name&quot;:&quot;Fire HD 8（2024、第12世代）&quot;,&quot;us&quot;:true},{&quot;id&quot;:&quot;budget_android_lenovo_tab_one&quot;,&quot;diag&quot;:8.7,&quot;res&quot;:[800,1340],&quot;weight&quot;:320,&quot;short&quot;:&quot;Tab One&quot;,&quot;name&quot;:&quot;Lenovo Tab One 8.7インチ&quot;,&quot;us&quot;:true},{&quot;id&quot;:&quot;ipad_mini&quot;,&quot;diag&quot;:8.3,&quot;res&quot;:[2266,1488],&quot;weight&quot;:293,&quot;short&quot;:&quot;iPad mini&quot;,&quot;name&quot;:&quot;iPad mini（A17 Pro）&quot;,&quot;us&quot;:true},{&quot;id&quot;:&quot;lenovo_legion_tab&quot;,&quot;diag&quot;:8.8,&quot;res&quot;:[1600,2560],&quot;weight&quot;:350,&quot;short&quot;:&quot;Legion Tab&quot;,&quot;name&quot;:&quot;Lenovo Legion Tab (8.8\&quot;, Gen 3)&quot;,&quot;us&quot;:false},{&quot;id&quot;:&quot;fire_10&quot;,&quot;diag&quot;:10.1,&quot;res&quot;:[1920,1200],&quot;weight&quot;:433.6,&quot;short&quot;:&quot;Fire HD 10&quot;,&quot;name&quot;:&quot;Fire HD 10（2023、第13世代）&quot;,&quot;us&quot;:true},{&quot;id&quot;:&quot;galaxy_tab_a_11&quot;,&quot;diag&quot;:11,&quot;res&quot;:[1920,1200],&quot;weight&quot;:477,&quot;short&quot;:&quot;Tab A11+&quot;,&quot;name&quot;:&quot;Galaxy Tab A11+（11インチ）&quot;,&quot;us&quot;:true},{&quot;id&quot;:&quot;lenovo_tab_plus&quot;,&quot;diag&quot;:11.5,&quot;res&quot;:[1200,2000],&quot;weight&quot;:650,&quot;short&quot;:&quot;Tab Plus&quot;,&quot;name&quot;:&quot;Lenovo Tab Plus 11.5\&quot;&quot;,&quot;us&quot;:true},{&quot;id&quot;:&quot;xiaomi_pad_7&quot;,&quot;diag&quot;:11.2,&quot;res&quot;:[2136,3200],&quot;weight&quot;:500,&quot;short&quot;:&quot;Pad 7&quot;,&quot;name&quot;:&quot;Xiaomi Pad 7（11.2インチ）&quot;,&quot;us&quot;:true},{&quot;id&quot;:&quot;ipad_11&quot;,&quot;diag&quot;:10.86,&quot;res&quot;:[2360,1640],&quot;weight&quot;:477,&quot;short&quot;:&quot;iPad 11&quot;,&quot;name&quot;:&quot;iPad（A16、11インチ）&quot;,&quot;us&quot;:true},{&quot;id&quot;:&quot;ipad_air_13&quot;,&quot;diag&quot;:12.9,&quot;res&quot;:[2732,2048],&quot;weight&quot;:616,&quot;short&quot;:&quot;Air 13&quot;,&quot;name&quot;:&quot;iPad Air 13インチ（M4）&quot;,&quot;us&quot;:true},{&quot;id&quot;:&quot;galaxy_tab_s_fe_plus&quot;,&quot;diag&quot;:13.1,&quot;res&quot;:[2880,1800],&quot;weight&quot;:664,&quot;short&quot;:&quot;S10 FE+&quot;,&quot;name&quot;:&quot;Galaxy Tab S10 FE+（13.1インチ）&quot;,&quot;us&quot;:true}],&quot;papers&quot;:{&quot;bunko&quot;:{&quot;w&quot;:105,&quot;h&quot;:148,&quot;ja&quot;:&quot;文庫（A6）&quot;,&quot;en&quot;:&quot;Japanese paperback (bunko, A6)&quot;},&quot;shinsho&quot;:{&quot;w&quot;:112,&quot;h&quot;:176,&quot;ja&quot;:&quot;新書判の漫画&quot;,&quot;en&quot;:&quot;Shinsho manga volume&quot;},&quot;b6&quot;:{&quot;w&quot;:128,&quot;h&quot;:182,&quot;ja&quot;:&quot;B6判の漫画&quot;,&quot;en&quot;:&quot;B6 manga volume&quot;},&quot;b5&quot;:{&quot;w&quot;:182,&quot;h&quot;:257,&quot;ja&quot;:&quot;雑誌（B5）&quot;,&quot;en&quot;:&quot;Magazine (B5)&quot;},&quot;a4&quot;:{&quot;w&quot;:210,&quot;h&quot;:297,&quot;ja&quot;:&quot;PDF（A4）&quot;,&quot;en&quot;:&quot;PDF (A4)&quot;}},&quot;classes&quot;:{&quot;s8&quot;:{&quot;ja&quot;:&quot;8インチ級&quot;,&quot;en&quot;:&quot;8-inch class&quot;,&quot;lo&quot;:8,&quot;hi&quot;:8.8,&quot;enLo&quot;:8,&quot;enHi&quot;:8.7},&quot;m11&quot;:{&quot;ja&quot;:&quot;10〜11インチ級&quot;,&quot;en&quot;:&quot;10-11-inch class&quot;,&quot;lo&quot;:10.1,&quot;hi&quot;:11.5,&quot;enLo&quot;:10.1,&quot;enHi&quot;:11.5},&quot;l13&quot;:{&quot;ja&quot;:&quot;12〜13インチ級&quot;,&quot;en&quot;:&quot;12-13-inch class&quot;,&quot;lo&quot;:11.95,&quot;hi&quot;:13.1,&quot;enLo&quot;:11.95,&quot;enHi&quot;:13.1}},&quot;ui&quot;:[0,8],&quot;pdfPt&quot;:[10,11],&quot;bunkoPt&quot;:[8,9.5],&quot;slotOf&quot;:{&quot;small&quot;:[&quot;ipad_mini&quot;,&quot;galaxy_tab_a_8&quot;,&quot;lenovo_legion_tab&quot;,&quot;xiaomi_redmi_pad_se_8&quot;,&quot;fire_8&quot;,&quot;alexa_tablet_8&quot;,&quot;budget_android_alldocube_iplay_80_mini_pro&quot;,&quot;budget_android_headwolf_fpad5&quot;,&quot;budget_android_lenovo_tab_one&quot;,&quot;lenovo_legion_tab_gen5&quot;],&quot;mid&quot;:[&quot;ipad_11&quot;,&quot;ipad_air_11&quot;,&quot;ipad_pro_11&quot;,&quot;galaxy_tab_a_11&quot;,&quot;galaxy_tab_s_fe&quot;,&quot;lenovo_tab_m11&quot;,&quot;lenovo_tab_plus&quot;,&quot;xiaomi_redmi_pad&quot;,&quot;xiaomi_pad&quot;,&quot;fire_10&quot;,&quot;fire_max_11&quot;,&quot;alexa_tablet_11&quot;,&quot;budget_android_alldocube_iplay_80e&quot;,&quot;budget_android_alldocube_iplay_70e&quot;,&quot;budget_android_alldocube_iplay_60_pro&quot;,&quot;budget_android_blackview_link_5&quot;,&quot;budget_android_headwolf_wpad7&quot;,&quot;xiaomi_pad_7&quot;,&quot;galaxy_tab_s10_lite&quot;,&quot;budget_android_blackview_tab60wifi&quot;,&quot;budget_android_oukitel_ot8&quot;,&quot;budget_android_oukitel_ot6&quot;,&quot;budget_android_oukitel_ot12&quot;,&quot;budget_android_blackview_tab9wifi&quot;],&quot;pdf11&quot;:[&quot;ipad_11&quot;,&quot;ipad_air_11&quot;,&quot;ipad_pro_11&quot;,&quot;xiaomi_pad&quot;,&quot;xiaomi_pad_7&quot;],&quot;large&quot;:[&quot;ipad_air_13&quot;,&quot;ipad_pro_13&quot;,&quot;galaxy_tab_s_fe_plus&quot;,&quot;budget_android_doogee_u13&quot;]},&quot;products&quot;:{&quot;ipad_mini&quot;:{&quot;fam&quot;:&quot;ipad_mini&quot;},&quot;ipad_11&quot;:{&quot;fam&quot;:&quot;ipad_11&quot;},&quot;ipad_air_11&quot;:{&quot;fam&quot;:&quot;ipad_air_11&quot;},&quot;ipad_air_13&quot;:{&quot;fam&quot;:&quot;ipad_air_13&quot;},&quot;ipad_pro_11&quot;:{&quot;fam&quot;:&quot;ipad_pro_11&quot;},&quot;ipad_pro_13&quot;:{&quot;fam&quot;:&quot;ipad_pro_13&quot;},&quot;galaxy_tab_a_8&quot;:{&quot;fam&quot;:&quot;galaxy_tab_a_8&quot;},&quot;galaxy_tab_a_11&quot;:{&quot;fam&quot;:&quot;galaxy_tab_a_11&quot;},&quot;galaxy_tab_s_fe&quot;:{&quot;fam&quot;:&quot;galaxy_tab_s_fe&quot;},&quot;galaxy_tab_s_fe_plus&quot;:{&quot;fam&quot;:&quot;galaxy_tab_s_fe_plus&quot;},&quot;lenovo_tab_m11&quot;:{&quot;fam&quot;:&quot;lenovo_tab_m11&quot;},&quot;lenovo_tab_plus&quot;:{&quot;fam&quot;:&quot;lenovo_tab_plus&quot;},&quot;lenovo_legion_tab&quot;:{&quot;fam&quot;:&quot;lenovo_legion_tab&quot;},&quot;xiaomi_redmi_pad_se_8&quot;:{&quot;fam&quot;:&quot;xiaomi_redmi_pad_se_8&quot;},&quot;xiaomi_redmi_pad&quot;:{&quot;fam&quot;:&quot;xiaomi_redmi_pad&quot;},&quot;xiaomi_pad&quot;:{&quot;fam&quot;:&quot;xiaomi_pad&quot;},&quot;fire_8&quot;:{&quot;fam&quot;:&quot;fire_8&quot;},&quot;fire_10&quot;:{&quot;fam&quot;:&quot;fire_10&quot;},&quot;fire_max_11&quot;:{&quot;fam&quot;:&quot;fire_max_11&quot;},&quot;alexa_tablet_8&quot;:{&quot;fam&quot;:&quot;alexa_tablet_8&quot;},&quot;alexa_tablet_11&quot;:{&quot;fam&quot;:&quot;alexa_tablet_11&quot;},&quot;alexa_tablet_12_pro&quot;:{&quot;fam&quot;:&quot;alexa_tablet_12_pro&quot;},&quot;budget_android_alldocube_iplay_80e&quot;:{&quot;fam&quot;:&quot;budget_android_alldocube_iplay_80e&quot;},&quot;budget_android_alldocube_iplay_70e&quot;:{&quot;fam&quot;:&quot;budget_android_alldocube_iplay_70e&quot;},&quot;budget_android_alldocube_iplay_80_mini_pro&quot;:{&quot;fam&quot;:&quot;budget_android_alldocube_iplay_80_mini_pro&quot;},&quot;budget_android_alldocube_iplay_60_pro&quot;:{&quot;fam&quot;:&quot;budget_android_alldocube_iplay_60_pro&quot;},&quot;budget_android_blackview_mega_2&quot;:{&quot;fam&quot;:&quot;budget_android_blackview_mega_2&quot;},&quot;budget_android_blackview_link_5&quot;:{&quot;fam&quot;:&quot;budget_android_blackview_link_5&quot;},&quot;budget_android_headwolf_wpad7&quot;:{&quot;fam&quot;:&quot;budget_android_headwolf_wpad7&quot;},&quot;budget_android_headwolf_fpad5&quot;:{&quot;fam&quot;:&quot;budget_android_headwolf_fpad5&quot;},&quot;budget_android_lenovo_tab_one&quot;:{&quot;fam&quot;:&quot;budget_android_lenovo_tab_one&quot;},&quot;xiaomi_pad_7&quot;:{&quot;fam&quot;:&quot;xiaomi_pad_7&quot;},&quot;galaxy_tab_s10_lite&quot;:{&quot;fam&quot;:&quot;galaxy_tab_s10_lite&quot;},&quot;lenovo_tab_plus_gen2&quot;:{&quot;fam&quot;:&quot;lenovo_tab_plus_gen2&quot;},&quot;lenovo_legion_tab_gen5&quot;:{&quot;fam&quot;:&quot;lenovo_legion_tab_gen5&quot;},&quot;budget_android_blackview_tab60wifi&quot;:{&quot;fam&quot;:&quot;budget_android_blackview_tab60wifi&quot;},&quot;budget_android_doogee_u13&quot;:{&quot;fam&quot;:&quot;budget_android_doogee_u13&quot;},&quot;budget_android_oukitel_ot8&quot;:{&quot;fam&quot;:&quot;budget_android_oukitel_ot8&quot;},&quot;budget_android_oukitel_ot6&quot;:{&quot;fam&quot;:&quot;budget_android_oukitel_ot6&quot;},&quot;budget_android_oukitel_ot12&quot;:{&quot;fam&quot;:&quot;budget_android_oukitel_ot12&quot;},&quot;budget_android_blackview_tab9wifi&quot;:{&quot;fam&quot;:&quot;budget_android_blackview_tab9wifi&quot;},&quot;redmi_pad_2_pro&quot;:{&quot;fam&quot;:&quot;redmi_pad_2_pro&quot;},&quot;lenovo_idea_tab_plus&quot;:{&quot;fam&quot;:&quot;lenovo_idea_tab_plus&quot;}},&quot;pickOnlySlots&quot;:true,&quot;condNote&quot;:{&quot;l13_b5&quot;:{&quot;ja&quot;:&quot;13インチ前後で縦横比4:3の画面だけ、紙とほぼ同じ大きさです（約98〜102%）。ほかの機種は紙より小さくなります&quot;,&quot;en&quot;:&quot;Only 4:3 screens of about 13 inches come close to paper size (about 98-102%). Every other model shows it smaller than paper&quot;}},&quot;buy&quot;:{&quot;ipad_mini&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;Apple iPad mini（A17 Pro）8.3インチ 128GB Wi-Fi&quot;,&quot;en&quot;:&quot;Apple iPad mini (A17 Pro) 8.3-inch 128GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DK467P86&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DK467P86&quot;,&quot;asinUS&quot;:&quot;B0DK3W6TV6&quot;,&quot;title&quot;:&quot;Apple iPad mini（A17 Pro）8.3インチ 128GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;Apple iPad mini（A17 Pro）8.3インチ 128GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61o2-3zoWmL._AC_SY300_.jpg&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2},&quot;ipad_11&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;Apple iPad（A16）11インチ 128GB Wi-Fi&quot;,&quot;en&quot;:&quot;Apple iPad (A16) 11-inch 128GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DZ75TN5F&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DZ7WF87P&quot;,&quot;asinUS&quot;:&quot;B0DZ75TN5F&quot;,&quot;title&quot;:&quot;Apple iPad (A16) 11-inch 128GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;Apple iPad (A16) 11-inch 128GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61aPY8odPSL._AC_SY300_.jpg&quot;}},&quot;rank_us&quot;:2},&quot;galaxy_tab_s_fe_plus&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;Samsung Galaxy Tab S10 FE+ 13.1インチ 128GB Wi-Fi&quot;,&quot;en&quot;:&quot;Samsung Galaxy Tab S10 FE+ 13.1-inch 128GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DVZSB68P&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DVZSB68P&quot;,&quot;asinUS&quot;:&quot;B0DVZSB68P&quot;,&quot;title&quot;:&quot;Samsung Galaxy Tab S10 FE+ 13.1-inch 128GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;Samsung Galaxy Tab S10 FE+ 13.1-inch 128GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61ITFWcX02L._AC_SY300_.jpg&quot;}},&quot;rank_us&quot;:3},&quot;fire_8&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;Amazon Fire HD 8（2024）64GB&quot;,&quot;en&quot;:&quot;Amazon Fire HD 8 (2024) 64GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0CVDZ7WYW&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0CVDZ7WYW&quot;,&quot;asinUS&quot;:&quot;B0CVDZ7WYW&quot;,&quot;title&quot;:&quot;Amazon Fire HD 8 (2024) 64GB&quot;,&quot;searchQuery&quot;:&quot;Amazon Fire HD 8 (2024) 64GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61hBk5+RW5L._AC_SY300_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;fire_10&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;Amazon Fire HD 10（2023）32GB&quot;,&quot;en&quot;:&quot;Amazon Fire HD 10 (2023) 32GB&quot;,&quot;jp&quot;:&quot;B0C2XN8HKD&quot;,&quot;us&quot;:&quot;B0GVTPKJVT&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0C2XN8HKD&quot;,&quot;asinUS&quot;:&quot;B0GVTPKJVT&quot;,&quot;title&quot;:&quot;Amazon Fire HD 10（2023）32GB&quot;,&quot;searchQuery&quot;:&quot;Amazon Fire HD 10（2023）32GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61nwWehfm0L._AC_SY300_.jpg&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0C2XN8HKD&quot;,&quot;asinUS&quot;:&quot;B0GVTPKJVT&quot;,&quot;title&quot;:&quot;Amazon Fire HD 10 (2023) 32GB&quot;,&quot;searchQuery&quot;:&quot;Amazon Fire HD 10 (2023) 32GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61EfgCU1k7L._AC_SY300_.jpg&quot;}},&quot;rank_jp&quot;:0,&quot;rank_us&quot;:1},&quot;xiaomi_pad_7&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;Xiaomi Pad 7 11.2インチ 8GB+128GB Wi-Fi&quot;,&quot;en&quot;:&quot;Xiaomi Pad 7 11.2-inch 8GB+128GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DXFC87GF&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DXFC87GF&quot;,&quot;title&quot;:&quot;Xiaomi Pad 7 11.2インチ 8GB+128GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;Xiaomi Pad 7 11.2インチ 8GB+128GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61SuQI055iL._AC_SY300_.jpg&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;tablet&quot;:&quot;ipad_mini&quot;},&quot;en&quot;:{&quot;tablet&quot;:&quot;fire_8&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;reading-tablet-page-size&quot;;

(function () {
// 読書用タブレットのサイズ（tablet-size-reading）の計算。共通の tablet-model.mjs に、記事に要る計算を足す。
// calc.mjs と記事内ツールの両方が使う。依存なし・副作用なし。丸めない（表示の丸めは呼び出し側）。
// build-tool.mjs は model.mjs の本文をそのまま埋め込む（import は消される）ので、共通の tablet-model.mjs の screenDims・ppi・pageFit をここにコピーしている（式は同じ。共通を直したらここも直す）。
const MM_PER_IN = 25.4;
function ppi(diagIn, resW, resH) { return Math.hypot(resW, resH) / diagIn; }
// 画面の実寸（共通 tablet-model.mjs と同じ）。縦横比 = 解像度の長辺 / 短辺。
function screenDims(diagIn, resW, resH) {
  const resShort = Math.min(resW, resH), resLong = Math.max(resW, resH);
  const aspect = resLong / resShort;
  const diagMm = diagIn * MM_PER_IN;
  const shortMm = diagMm / Math.sqrt(1 + aspect * aspect);
  const longMm = shortMm * aspect;
  const p = ppi(diagIn, resW, resH);
  return { diagIn, diagMm, shortMm, longMm, areaMm2: shortMm * longMm, aspect, resShort, resLong, ppi: p, pxPerMm: p / MM_PER_IN };
}
// 紙のページを画面に内接させたときの倍率（共通 tablet-model.mjs と同じ。縦持ち1ページ・横持ち見開き・横持ち1ページ）
function pageFit(screen, pageW, pageH, mode) {
  const portrait = mode === &quot;single-portrait&quot;;
  const areaW = portrait ? screen.shortMm : screen.longMm;
  const areaH = portrait ? screen.longMm : screen.shortMm;
  const pages = mode === &quot;spread-landscape&quot; ? 2 : 1;
  const cW = pageW * pages, cH = pageH;
  const sw = areaW / cW, sh = areaH / cH;
  const scale = Math.min(sw, sh);
  return { mode, scale, fitBy: sw &lt;= sh ? &quot;width&quot; : &quot;height&quot;, pageWmm: pageW * scale, pageHmm: pageH * scale, marginRatio: 1 - (cW * scale * cH * scale) / screen.areaMm2 };
}
// 紙の文字が画面で何 pt（紙の pt × 倍率）
const textSizeOnScreen = (paperText, scale) =&gt; paperText * scale;

/** 対角と縦横比だけから画面の実寸（解像度なし。同じ対角で縦横比を比べる表に使う）。 */
function screenFromAspect(diagIn, aspect) {
  const diagMm = diagIn * MM_PER_IN;
  const shortMm = diagMm / Math.sqrt(1 + aspect * aspect);
  const longMm = shortMm * aspect;
  return { diagIn, diagMm, shortMm, longMm, areaMm2: shortMm * longMm, aspect, ppi: 0, pxPerMm: 0 };
}

/** 縦持ちで上下のバー（uiMm）を長い辺から引いた、ページを表示できる領域。 */
function readingArea(screen, uiMm = 0) {
  const longMm = screen.longMm - uiMm;
  return { ...screen, longMm, areaMm2: screen.shortMm * longMm };
}

/** 縦持ちに1ページまるごと入れたときの倍率（1 = 紙と同じ大きさ）。 */
function portraitScale(screen, page, uiMm = 0) {
  return pageFit(readingArea(screen, uiMm), page.w, page.h, &quot;single-portrait&quot;).scale;
}

/** 横持ちで紙の幅を画面の長い辺に合わせたときの倍率と、1画面に入るページの割合。 */
function landscapeFitWidth(screen, page) {
  const scale = screen.longMm / page.w;
  return { scale, visibleShare: Math.min(1, screen.shortMm / (page.h * scale)) };
}

/** サイズの区分（画面の対角で）。 */
function sizeClass(diagIn) {
  return diagIn &lt; 9.5 ? &quot;s8&quot; : diagIn &lt; 11.9 ? &quot;m11&quot; : &quot;l13&quot;;
}

/** 機種の一覧（{ id: { diag, res:[w,h] } }）から、区分 cls の全機種・バーの幅の両端での倍率の最小・最大。 */
function scaleRange(models, cls, page, uiRange = [0, 0]) {
  let lo = Infinity, hi = -Infinity;
  for (const m of Object.values(models)) {
    if (sizeClass(m.diag) !== cls) continue;
    const sc = screenDims(m.diag, m.res[0], m.res[1]);
    for (const ui of uiRange) { const s = portraitScale(sc, page, ui); lo = Math.min(lo, s); hi = Math.max(hi, s); }
  }
  return { lo, hi };
}

/** 判定: 全機種で紙以上 = ok、一部の機種・条件で紙以上 = cond、どれも紙より小さい = below。 */
function judgeRange(r) {
  return r.lo &gt;= 1 - 1e-9 ? &quot;ok&quot; : r.hi &gt;= 1 - 1e-9 ? &quot;cond&quot; : &quot;below&quot;;
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力: 読む本の種類（紙の寸法）・画面のサイズの区分。結果: 型 F（縮尺の図）。紙のページ（実寸）と各機種の縦持ちの画面を同じ縮尺で重ねる。
// 英語版は米国の Amazon.com に出品がある機種（M.all[id].us）だけで計算する（英語版の早見表と同じ母集団）。
// 判定は早見表と同じ（model.scaleRange・judgeRange。区分の全機種 × 上下のバー 0〜8mm）: ○ 全部で紙以上 / △ 機種しだい / ✕ どれも紙より小さい。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。
// 注意: テンプレート文字列に埋め込まれるので、正規表現のバックスラッシュは使わない。

const T_ = {
  ja: {
    paper: &quot;読む本&quot;, size: &quot;画面のサイズ&quot;, key: { size: &quot;画面&quot; },
    paperL: { bunko: &quot;小説（文庫・A6）&quot;, shinsho: &quot;漫画（新書判）&quot;, b6: &quot;漫画（B6判）&quot;, b5: &quot;雑誌（B5）&quot;, a4: &quot;PDF（A4）&quot; },
    paperS: { bunko: &quot;文庫&quot;, shinsho: &quot;新書判&quot;, b6: &quot;B6判&quot;, b5: &quot;B5&quot;, a4: &quot;A4&quot; },
    clsL: (c) =&gt; `${c.ja}（${c.lo}〜${c.hi}インチ）`,
    rng: (a, b) =&gt; (a === b ? `${a}` : `${a}〜${b}`),
    vOk: (c, p) =&gt; `○ ${c}なら${p}を紙と同じ大きさ以上で表示できます`,
    vCond: (c, p) =&gt; `△ ${c}の${p}は機種しだいで、紙と同じ大きさ以上になる機種と、紙より小さくなる機種があります`,
    vNg: (c, p) =&gt; `✕ ${c}では${p}は紙より小さく表示されます`,
    scale: (p, w, h, c, r) =&gt; `${p}（${w}×${h}mm）を縦持ちで1ページ表示すると、${c}は紙の約${r}%`,
    land: (r, s) =&gt; `横持ちで幅に合わせると紙の約${r}%の大きさですが、1画面に入るのはページの約${s}%です`,
    text: (a, b) =&gt; `A4の本文の文字（紙で10〜11ptと仮定。ptは文字の大きさの単位）は、画面では約${a}〜${b}pt相当です（推定）`,
    premise: (u) =&gt; `上下のバーの分を0〜${u}mmとして、この区分の全機種で計算しています`,
    cap: (n, w, h) =&gt; `${n} 画面 約${w}×${h}mm`,
    paperCap: (p, w, h) =&gt; `${p} ${w}×${h}mm（実寸）`,
    spec: { screen: (w, h) =&gt; `画面 約${w}×${h}mm（対角と解像度から計算）`, weight: (g) =&gt; `重さ ${g}g（Wi-Fi モデル）`, scale: (p, r) =&gt; `${p}は紙の約${r}%` },
    note: &quot;結果は計算の目安です。画面の縦と横は公式の対角と解像度から計算し、角の丸みは無視しています。本の余白をそのまま含めたページ全体を表示する前提で、余白を切り取る表示や文字の大きさを変えられる本では大きさが変わります。見やすさは実機で試しておらず、判定していません。&quot;,
  },
  en: {
    paper: &quot;What you read&quot;, size: &quot;Screen size&quot;, key: { paper: &quot;Reading&quot;, size: &quot;Screen&quot; },
    paperL: { bunko: &quot;Novels (paperback, A6)&quot;, shinsho: &quot;Manga (shinsho)&quot;, b6: &quot;Manga (B6)&quot;, b5: &quot;Magazines (B5)&quot;, a4: &quot;PDFs (A4)&quot; },
    paperS: { bunko: &quot;Paperback&quot;, shinsho: &quot;Shinsho&quot;, b6: &quot;B6&quot;, b5: &quot;B5&quot;, a4: &quot;A4&quot; },
    clsL: (c) =&gt; `${c.en} (${c.enLo}-${c.enHi} in)`,
    rng: (a, b) =&gt; (a === b ? `${a}` : `${a}-${b}`),
    vOk: (c, p) =&gt; `✓ ${c[0].toUpperCase() + c.slice(1)}: a ${p} page at paper size or larger`,
    vCond: (c, p) =&gt; `△ ${c[0].toUpperCase() + c.slice(1)}: a ${p} page reaches paper size on some models and is smaller on others`,
    vNg: (c, p) =&gt; `✕ ${c[0].toUpperCase() + c.slice(1)}: a ${p} page smaller than paper`,
    scale: (p, w, h, c, r) =&gt; `One ${p} page (${w} x ${h} mm) in portrait shows at about ${r}% of paper size on the ${c}`,
    land: (r, s) =&gt; `Sideways and fit to width, it shows at about ${r}% of paper size, but one screen holds only about ${s}% of the page`,
    text: (a, b) =&gt; `A4 body text (assumed 10-11 pt) shows at about ${a}-${b} pt (estimate)`,
    premise: (u) =&gt; `Calculated for every model in this class, allowing 0-${u} mm for top and bottom bars`,
    cap: (n, w, h) =&gt; `${n} screen about ${w} x ${h} mm`,
    paperCap: (p, w, h) =&gt; `${p} ${w} x ${h} mm (actual size)`,
    spec: { screen: (w, h) =&gt; `Screen about ${w} x ${h} mm (from diagonal and resolution)`, weight: (g) =&gt; `${g} g (Wi-Fi model)`, scale: (p, r) =&gt; `${p} at about ${r}% of paper size` },
    note: &quot;This is a calculated estimate. Screen width and height come from the official diagonal and resolution, ignoring rounded corners. It assumes the whole page, margins included, fills the screen; cropping margins or resizing text changes the size. Readability wasn&apos;t tested on real devices and isn&apos;t judged.&quot;,
  },
};

const PAPERS_ = [&quot;bunko&quot;, &quot;shinsho&quot;, &quot;b6&quot;, &quot;b5&quot;, &quot;a4&quot;], CLS_ = [&quot;s8&quot;, &quot;m11&quot;, &quot;l13&quot;];
const pf_ = (x) =&gt; Math.floor(x * 100 + 1e-9);
const r1_ = (x) =&gt; Math.round(x * 10) / 10;

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;paper&quot;, type: &quot;select&quot;, label: t.paper, short: t.key.paper, value: &quot;bunko&quot;, options: PAPERS_.map((p) =&gt; ({ value: p, label: t.paperL[p], short: t.paperS[p] })) },
    { name: &quot;size&quot;, type: &quot;select&quot;, label: t.size, short: t.key.size, value: &quot;s8&quot;, options: CLS_.map((c) =&gt; ({ value: c, label: t.clsL(M.classes[c]), short: M.classes[c][lang] })) },
  ];
}

// 言語ごとの母集団（英語版 = 米国の Amazon.com に出品がある機種）
function pool_(M, lang) {
  if (lang !== &quot;en&quot;) return M.all;
  const o = {};
  for (const id of Object.keys(M.all)) if (M.all[id].us) o[id] = M.all[id];
  return o;
}

// 区分とページの種類から、カードに出す枠（本文の候補と同じ枠）
function slotFor_(size, paper) {
  if (size === &quot;s8&quot;) return &quot;small&quot;;
  if (size === &quot;l13&quot;) return &quot;large&quot;;
  return paper === &quot;a4&quot; || paper === &quot;b5&quot; ? &quot;pdf11&quot; : &quot;mid&quot;;
}

function compute(v, M, lang) {
  const t = T_[lang];
  const P = M.papers[v.paper], C = M.classes[v.size];
  if (!P || !C) return { status: &quot;error&quot;, lines: [] };
  const page = { w: P.w, h: P.h };
  const ALL = pool_(M, lang);
  const r = scaleRange(ALL, v.size, page, M.ui);
  const j = judgeRange(r);
  const pname = P[lang], cname = C[lang];
  const lines = [t.scale(pname, P.w, P.h, cname, t.rng(pf_(r.lo), pf_(r.hi)))];
  if (v.paper === &quot;a4&quot; || v.paper === &quot;b5&quot;) {
    const ls = Object.keys(ALL).filter((id) =&gt; sizeClass(ALL[id].diag) === v.size).map((id) =&gt; landscapeFitWidth(screenDims(ALL[id].diag, ALL[id].res[0], ALL[id].res[1]), page));
    const s0 = Math.min(...ls.map((x) =&gt; x.scale)), s1 = Math.max(...ls.map((x) =&gt; x.scale));
    const v0 = Math.min(...ls.map((x) =&gt; x.visibleShare)), v1 = Math.max(...ls.map((x) =&gt; x.visibleShare));
    lines.push(t.land(t.rng(pf_(s0), pf_(s1)), t.rng(pf_(v0), Math.ceil(v1 * 100 - 1e-9))));
  }
  const cn = M.condNote &amp;&amp; M.condNote[v.size + &quot;_&quot; + v.paper];
  if (cn) lines.push(cn[lang]);
  if (v.paper === &quot;a4&quot;) lines.push(t.text(Math.floor(M.pdfPt[0] * r.lo * 10 + 1e-9) / 10, Math.floor(M.pdfPt[1] * r.hi * 10 + 1e-9) / 10));
  lines.push(t.premise(M.ui[1]));
  const slot = slotFor_(v.size, v.paper);
  const picks = (M.slotOf[slot] || []).slice();
  // 図: 紙（実寸・縦）と各機種の縦持ちの画面。この区分の機種を強調し、ほかは薄く
  const models = M.show.filter((m) =&gt; lang !== &quot;en&quot; || m.us).map((m) =&gt; {
    const sd = screenDims(m.diag, m.res[0], m.res[1]);
    const s = portraitScale(sd, page, 0);
    const mine = sizeClass(m.diag) === v.size;
    return { id: m.id, label: m.short, short: m.short, w: r1_(sd.shortMm), h: r1_(sd.longMm), fit: s &gt;= 1 ? (s &lt; 1.1 ? &quot;tight&quot; : &quot;ok&quot;) : &quot;over&quot;,
      hit: mine, dim: !mine, capText: t.cap(m.short, r1_(sd.shortMm), r1_(sd.longMm)), pick: picks.includes(m.id) ? [m.id] : [] };
  });
  const main = (models.find((m) =&gt; m.hit &amp;&amp; m.pick.length) || models.find((m) =&gt; m.hit) || models[0]).id;
  const diagram = { paper: { w: P.w, h: P.h, name: t.paperS[v.paper], label: t.paperCap(pname, P.w, P.h) }, models, main };
  const status = j === &quot;ok&quot; ? &quot;ok&quot; : j === &quot;cond&quot; ? &quot;cond&quot; : &quot;ng&quot;;
  const verdict = j === &quot;ok&quot; ? t.vOk(cname, pname) : j === &quot;cond&quot; ? t.vCond(cname, pname) : t.vNg(cname, pname);
  return { status, verdict, lines, picks, diagram, specsPhone: false }; // スマホではカードの仕様の札を出さない（判定は紙の何%か。画面の寸法は PC のカードと図の見出しに出る。2026-10-15 1画面に収める）
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（区分 × 本の種類）
function presets() {
  const out = [];
  for (const size of CLS_) for (const paper of PAPERS_) out.push({ paper, size });
  return out;
}

// カードに出す仕様（その商品の機種で、この計算に使った値）
function pickSpecs(id, v, M, lang) {
  const m = M.all[id];
  if (!m) return [];
  const sp = T_[lang].spec;
  const sd = screenDims(m.diag, m.res[0], m.res[1]);
  const P = M.papers[v.paper];
  const out = [sp.screen(r1_(sd.shortMm), r1_(sd.longMm))];
  const shown = M.show.find((x) =&gt; x.id === id);
  if (shown &amp;&amp; shown.weight) out.push(sp.weight(shown.weight));
  if (P) out.push(sp.scale(P[lang], pf_(portraitScale(sd, { w: P.w, h: P.h }, 0))));
  return out;
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;diagram&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;screen-size-for-novels-and-manga&quot;&gt;Screen size for novels and manga&lt;/h2&gt;
&lt;p&gt;Showing one page in portrait, a bunko page fits at paper size or larger on the 8-inch class, and a B6 manga page on the 10-11-inch class. On the smallest model in each, it is borderline.&lt;/p&gt;
&lt;p&gt;Here, sizes are for showing a printed page as it is, one whole page. How much text fits when you change an e-book’s font size is not tested.&lt;/p&gt;
&lt;p&gt;On the 8-inch class (8-8.7 in), a bunko page shows at about 102-110% of paper size. The smallest, 8.0 inches, shows it at about 102%, which is borderline. The 10-11-inch class shows it at about 129-151%, larger than the printed book.&lt;/p&gt;
&lt;p&gt;A shinsho manga page shows at about 93-101% of paper size on the 8-inch class. That is close to paper size but borderline: an 8.0-inch screen, or a view that keeps the top and bottom bars, shows it slightly smaller.&lt;/p&gt;
&lt;p&gt;A B6 manga page shows at about 84-90% on the 8-inch class, smaller than paper. The 10-11-inch class shows it at about 106-123%, at paper size or larger. The smallest, 10.1 inches, is only slightly larger than paper, so borderline.&lt;/p&gt;
&lt;p&gt;Reading manga as two-page spreads is covered in what size tablet for manga spreads.&lt;/p&gt;
&lt;h2 id=&quot;how-big-a-screen-pdfs-and-magazines-need&quot;&gt;How big a screen PDFs and magazines need&lt;/h2&gt;
&lt;p&gt;Showing one page in portrait, a whole A4 page shows at about 51-55% of paper size on the 8-inch class and about 64-75% on the 10-11-inch class. Models from 12.9 inches up reach 80% or more; the 13-inch class shows it at about 83-88%. Among the models checked, none shows it at full paper size.&lt;/p&gt;
&lt;p&gt;Going by assumed paper text sizes, a whole A4 page on the 8-inch class shows its text much smaller than a bunko paperback’s. On a small screen you zoom in as you read PDFs.&lt;/p&gt;
&lt;p&gt;The PDF figures are for A4. US Letter wasn’t calculated.&lt;/p&gt;
&lt;p&gt;A B5 magazine page (Japanese JIS B5 size) shows at about 74-87% of paper size on the 10-11-inch class. A 13-inch 4:3 screen shows it at about 98-102%, right at paper size but borderline. A 13-inch 16:10 screen shows about 96%, slightly smaller than paper.&lt;/p&gt;
&lt;p&gt;For an A4-size magazine, use the PDF (A4) column of the table.&lt;/p&gt;
&lt;h2 id=&quot;portrait-or-landscape-which-is-better-for-reading&quot;&gt;Portrait or landscape: which is better for reading?&lt;/h2&gt;
&lt;p&gt;Books that fill one page, such as bunko paperbacks and manga, read best in portrait. For PDFs, turning the tablet sideways and fitting the page width makes the text bigger.&lt;/p&gt;
&lt;p&gt;Held sideways, on the 10-11-inch class, fitting the A4 width shows text at about 103-119% of paper size. One screen then holds only about 42-50% of the page, so you scroll as you read.&lt;/p&gt;
&lt;p&gt;On an 11-inch screen with a changed aspect ratio, an A4 PDF shows at about 75% of paper size on a 10:7 screen versus about 70% on 16:10. A4, B5, bunko and B6 pages get bigger on screens closer to their own shape, 10:7 to 4:3, while shinsho manga is bigger on 3:2 to 16:10.&lt;/p&gt;
&lt;h2 id=&quot;weight-difference-and-eye-comfort&quot;&gt;Weight difference and eye comfort&lt;/h2&gt;
&lt;p&gt;Per the makers’ specs as of October 2026, weights run about 293-337 g, or 10.3-11.9 oz, for the 8-inch class. The 10-11-inch class is 433-650 g, or 15.3-22.9 oz, and the 12-13-inch class 530-775 g, or 18.7-27.3 oz. Every 8-inch model is lighter than the lightest 10-11-inch model.&lt;/p&gt;
&lt;p&gt;An official comparison of eye strain by screen size alone wasn’t found. Some tablets can warm the screen color at night (Apple’s Night Shift, Samsung’s Eye comfort shield).&lt;/p&gt;
&lt;p&gt;For holding one in one hand or reading lying down, see how to choose a tablet for one-handed reading in bed. For e-readers, see tablet or Kindle if you also watch video.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-what-you-read&quot;&gt;Picks by what you read&lt;/h2&gt;
&lt;p&gt;Here, the PDF pick comes from 10-11-inch-class models that show a whole A4 page at 72% of paper size or more, whether the bars are 0 or 8 mm. The 72% line leaves out the cheaper 16:10 models, which fall short of it.&lt;/p&gt;
&lt;p&gt;The picks are new, with 100+ Amazon.com ratings, 4.0+ stars and Amazon or the maker as the seller. Each is the cheapest that meets its condition, shipping included. Check the price on Amazon.com before you buy.&lt;/p&gt;
&lt;h3 id=&quot;novels-and-shinsho-manga-on-an-8-inch-tablet&quot;&gt;Novels and shinsho manga on an 8-inch tablet&lt;/h3&gt;
&lt;p&gt;The Fire HD 8 (8.0 in) shows a bunko page at about 102% of paper size, which is borderline. Shinsho manga shows at about 93-96% and B6 manga at about 84%. It weighs 337 g, or 11.9 oz. Per Amazon’s developer docs, Fire tablets can’t use Google services such as Google Play. Reading apps come from the Amazon Appstore.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Amazon Fire HD 8 (2024) 64GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61hBk5+RW5L._AC_SY300_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Amazon Fire HD 8 (2024) 64GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CVDZ7WYW?q=Amazon+Fire+HD+8+%282024%29+64GB&amp;amp;us=B0CVDZ7WYW&amp;amp;l=en&quot; aria-label=&quot;View Amazon Fire HD 8 (2024) 64GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Whether the rating count is shared with other models on the listing wasn&amp;#39;t checked.&lt;/p&gt;
&lt;h3 id=&quot;b6-manga-at-paper-size-on-a-budget&quot;&gt;B6 manga at paper size on a budget&lt;/h3&gt;
&lt;p&gt;The Fire HD 10 (10.1 in) shows a B6 manga page at about 106% of paper size. It is the smallest screen in the 10-11-inch class, so the page is only slightly larger than paper, which is borderline. Like the Fire HD 8, it can’t use Google Play.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Amazon Fire HD 10 (2023) 32GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61EfgCU1k7L._AC_SY300_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Amazon Fire HD 10 (2023) 32GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C2XN8HKD?q=Amazon+Fire+HD+10+%282023%29+32GB&amp;amp;us=B0GVTPKJVT&amp;amp;l=en&quot; aria-label=&quot;View Amazon Fire HD 10 (2023) 32GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;a4-pdfs-on-one-portrait-page-on-a-10-11-inch-tablet&quot;&gt;A4 PDFs on one portrait page, on a 10-11-inch tablet&lt;/h3&gt;
&lt;p&gt;Its screen is a bit squarer than most tablets (about 10:7), and it shows A4 at about 74% of paper size.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Apple iPad (A16) 11-inch 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61aPY8odPSL._AC_SY300_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Apple iPad (A16) 11-inch 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ7WF87P?q=Apple+iPad+%28A16%29+11-inch+128GB+Wi-Fi&amp;amp;us=B0DZ75TN5F&amp;amp;l=en&quot; aria-label=&quot;View Apple iPad (A16) 11-inch 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h3 id=&quot;a4-pdfs-and-magazines-near-paper-size&quot;&gt;A4 PDFs and magazines near paper size&lt;/h3&gt;
&lt;p&gt;The Galaxy Tab S10 FE+ (13.1 in) shows a whole A4 page at about 83% of paper size and a B5 magazine page at about 96%. It is the cheapest 12-13-inch tablet that meets the rating and seller conditions. It weighs 664 g, or 23.4 oz.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung Galaxy Tab S10 FE+ 13.1-inch 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61ITFWcX02L._AC_SY300_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung Galaxy Tab S10 FE+ 13.1-inch 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DVZSB68P?q=Samsung+Galaxy+Tab+S10+FE%2B+13.1-inch+128GB+Wi-Fi&amp;amp;us=B0DVZSB68P&amp;amp;l=en&quot; aria-label=&quot;View Samsung Galaxy Tab S10 FE+ 13.1-inch 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;what-size-tablet-is-best-for-reading&quot;&gt;What size tablet is best for reading?&lt;/h3&gt;
&lt;p&gt;Calculated for tablets on Amazon.com, showing one whole page in portrait, Japanese bunko paperbacks (4.1 x 5.8 in) fit on an 8-inch tablet, though 8.0 inches is borderline. B6 manga (5.0 x 7.2 in) needs 10 inches or more; none of the tablets checked shows an A4 PDF at full paper size.&lt;/p&gt;
&lt;h3 id=&quot;is-an-8-inch-tablet-big-enough-for-novels&quot;&gt;Is an 8-inch tablet big enough for novels?&lt;/h3&gt;
&lt;p&gt;Showing one page in portrait, on the 8-inch class, a fixed Japanese bunko page shows at about 102-110% of paper size, only slightly larger (borderline) on the smallest 8.0-inch screen. Changing the font size isn’t tested.&lt;/p&gt;
&lt;h3 id=&quot;how-big-does-a-tablet-need-to-be-for-manga&quot;&gt;How big does a tablet need to be for manga?&lt;/h3&gt;
&lt;p&gt;Showing manga one page at a time, aim for 10 inches or more for B6 manga. The 10-11-inch class shows a page at paper size or larger, with 10.1 inches borderline.&lt;/p&gt;
&lt;p&gt;Shinsho manga on the 8-inch class comes out about paper size or slightly smaller, depending on the model.&lt;/p&gt;
&lt;h3 id=&quot;what-size-tablet-can-read-pdf-textbooks-and-papers&quot;&gt;What size tablet can read PDF textbooks and papers?&lt;/h3&gt;
&lt;p&gt;Showing a whole A4 page in portrait, among the models checked, none shows it at full paper size, and even the 12.9-13.1-inch models in the table reach only about 83-88%. Held sideways and fit to width, the 10-11-inch class shows it larger than paper.&lt;/p&gt;
&lt;h3 id=&quot;is-a-cheap-android-tablet-fine-for-reading&quot;&gt;Is a cheap Android tablet fine for reading?&lt;/h3&gt;
&lt;p&gt;For page size, yes: size depends only on the screen’s dimensions, and the table includes budget Android models. But most budget Android models on Amazon.com have too few reviews or are sold by third-party sellers, so none is a pick.&lt;/p&gt;
&lt;p&gt;Sharpness, brightness and glare aren’t compared here.&lt;/p&gt;
&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Screen sizes are worked out from the makers’ official diagonal and resolution as of October 2026. The formulas, assumptions and page-size sources are in the data and formulas at the end of the article. Sources for the night-screen features:. &lt;a href=&quot;https://support.apple.com/en-us/118583&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Apple’s explanation&lt;/a&gt;. &lt;a href=&quot;https://www.samsung.com/us/support/answer/ANS10002537/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Samsung’s explanation&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Covers the official specifications of tablets listed on Amazon.com (Apple, Samsung, Amazon, Lenovo, Xiaomi and others) as of October 14, 2026. Nothing was tested on real devices. Only models with both an official screen size and resolution were calculated.&lt;/li&gt;
&lt;li&gt;Screen width and height come from the official diagonal (inches x 25.4 mm) and the aspect ratio of the resolution: short side = diagonal / sqrt(1 + ratio^2), long side = short side x ratio. Rounded corners are ignored.&lt;/li&gt;
&lt;li&gt;Scale of one whole page in portrait = min(screen short side / page width, (screen long side - bars) / page height). 100% means the same size as paper. Bars are assumed 0-8 mm; each range covers every model of that size class across this assumption.&lt;/li&gt;
&lt;li&gt;Page sizes: bunko (the Japanese paperback size, A6) = 4.1 x 5.8 in, or 105 x 148 mm; shinsho manga volume (the size of Japanese Jump Comics, two Shueisha listings) = 4.4 x 6.9 in, or 112 x 176 mm; B6 manga volume (one Japanese B6 book listing, same as JIS B6) = 5.0 x 7.2 in, or 128 x 182 mm; magazine = JIS B5 = 7.2 x 10.1 in, or 182 x 257 mm; PDF = A4 = 8.3 x 11.7 in, or 210 x 297 mm. bunko, shinsho, B6 and JIS B5 are Japanese book and paper sizes. Only these listings were checked for shinsho and B6; other publishers were not. A4-size magazines are read from the PDF (A4) column. Letter-size PDFs are not calculated.&lt;/li&gt;
&lt;li&gt;Landscape fit-to-width scale = screen long side / page width. Share of the page on one screen = screen short side / (page height x scale).&lt;/li&gt;
&lt;li&gt;Text size on screen = text size on paper (assumed: A4 body 10-11 pt, paperback body 8-9.5 pt; 1 pt is about 0.35 mm) x scale. A whole A4 page on the 8-inch class puts A4 body text at about 5.1-6.2 pt, smaller than paperback body text at 8-9.5 pt (estimate).&lt;/li&gt;
&lt;li&gt;Size classes: 8-inch class = 8-8.7 in, 10-11-inch class = 10.1-11.5 in, 12-13-inch class = 11.95-13.1 in (range of the Amazon.com models checked). The 14.6-inch Galaxy Tab S Ultra models are sold on Amazon.com but are not put in any class or compared for the picks; for reference, A4 would show at about 93% of paper size and B5 at about 107%. Weights are official Wi-Fi model figures. Two 13.4-inch models are not calculated: the TECLAST T65 has no official maker spec page (only Amazon listings), and the DOOGEE Tab G6 Max has no official resolution.&lt;/li&gt;
&lt;li&gt;That Fire tablets can’t use Google Play or other Google services comes from Amazon’s developer documentation; no consumer help page stating it was found.&lt;/li&gt;
&lt;li&gt;PDF pick (10-11-inch class, A4 shown at 72% or more of paper on one portrait page), excluded models: every 10-11-inch model listed cheaper than the iPad (A16) 11-inch on Amazon.com, and meeting the rating and seller conditions, falls short. Formula: min(short screen side / 210, (long side - bar) / 297). Fire HD 10 (10.1-inch 16:10) about 64.7%; Galaxy Tab S10 Lite (10.9-inch 16:10) about 69.9%; Galaxy Tab A11+ (11-inch 16:10) about 70.5%. Checked 2026-10-15.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Assumptions&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Reading apps hide the top and bottom bars in full screen, but some views keep them. The article subtracts 0-8 mm from the long side in portrait (no official figure; roughly one thin bar at the top and bottom).: 0 (0–8)&lt;/li&gt;
&lt;li&gt;Body text size of A4 documents and papers. There is no fixed standard; the article assumes the common 10-11 pt.: 10.5 (10–11)&lt;/li&gt;
&lt;li&gt;Body text size of a Japanese paperback (bunko). It varies by publisher and no official standard was found, so the article holds 8-9.5 pt.: 8.75 (8–9.5)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;
































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;A4 page size&lt;/td&gt;&lt;td&gt;width: 210 / height: 297 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://kikakurui.com/p/P0138-1998-01.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;kikakurui.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-14&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;JIS B5 page size (Japanese)&lt;/td&gt;&lt;td&gt;width: 182 / height: 257 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nipponpapergroup.com/products/information/ppc/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nipponpapergroup.com&lt;/a&gt; ‘B5 182mm×257mm’&lt;/td&gt;&lt;td&gt;2026-10-14&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bunko paperback size (Japanese, A6)&lt;/td&gt;&lt;td&gt;width: 105 / height: 148 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.shinchosha.co.jp/bunko/index.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;shinchosha.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-14&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;JIS B6 page size (Japanese)&lt;/td&gt;&lt;td&gt;width: 128 / height: 182 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.kaunet.com/kaunet/column/000004.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;kaunet.com&lt;/a&gt; ‘A5 148 x 210mm B5 182 x 257mm A6 105 x 148mm B6 128 x 182mm’&lt;/td&gt;&lt;td&gt;2026-10-14&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B6 manga volume size (Japanese)&lt;/td&gt;&lt;td&gt;height: 182 / width: 128 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hanmoto.com/bd/isbn/9784408177397&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hanmoto.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-14&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Shinsho manga volume size (Japanese Jump Comics)&lt;/td&gt;&lt;td&gt;height: 176 / width: 112 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hanmoto.com/bd/isbn/9784088820545&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hanmoto.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-14&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Fire tablets and Google services&lt;/td&gt;&lt;td&gt;can’t use Google services on Amazon Fire devices statement&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.amazon.com/docs/fire-tablets/fire-os-8.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.amazon.com&lt;/a&gt; ‘you can’t use Google services on Amazon Fire devices’&lt;/td&gt;&lt;td&gt;2026-10-14&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Apple Night Shift&lt;/td&gt;&lt;td&gt;Warmer display colors after sunset; scheduled or manual feature&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/en-us/118583&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt; ‘Night Shift automatically adjusts the colors of your display to the warmer end&lt;/td&gt;&lt;td&gt;2026-10-14&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung Eye comfort shield and Extra dim&lt;/td&gt;&lt;td&gt;Eye comfort shield (limit blue light) and Extra dim (dim the screen) feature&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/support/answer/ANS10002537/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; ‘You can also use Eye comfort shield to limit the screen’s blue light, and Extra&lt;/td&gt;&lt;td&gt;2026-10-14&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;See how big a book page shows on a tablet: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result and a matching product for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;




















































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Novels (paperback, A6), 8-inch class (8-8.7 in)&lt;/td&gt;&lt;td&gt;✓ 8-inch class: a Japanese paperback (bunko, A6) page at paper size or larger. One Japanese paperback (bunko, A6) page (105 x 148 mm) in portrait shows at about 102-110% of paper size on the 8-inch class. Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=bunko&amp;amp;reading-tablet-page-size-size=s8#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Manga (shinsho), 8-inch class (8-8.7 in)&lt;/td&gt;&lt;td&gt;△ 8-inch class: a Shinsho manga volume page reaches paper size on some models and is smaller on others. One Shinsho manga volume page (112 x 176 mm) in portrait shows at about 93-101% of paper size on the 8-inch class. Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=shinsho&amp;amp;reading-tablet-page-size-size=s8#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Manga (B6), 8-inch class (8-8.7 in)&lt;/td&gt;&lt;td&gt;✕ 8-inch class: a B6 manga volume page smaller than paper. One B6 manga volume page (128 x 182 mm) in portrait shows at about 84-90% of paper size on the 8-inch class. Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=b6&amp;amp;reading-tablet-page-size-size=s8#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Magazines (B5), 8-inch class (8-8.7 in)&lt;/td&gt;&lt;td&gt;✕ 8-inch class: a Magazine (B5) page smaller than paper. One Magazine (B5) page (182 x 257 mm) in portrait shows at about 59-63% of paper size on the 8-inch class. Sideways and fit to width, it shows at about 94-104% of paper size, but one screen holds only about 42-47% of the page. Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=b5&amp;amp;reading-tablet-page-size-size=s8#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PDFs (A4), 8-inch class (8-8.7 in)&lt;/td&gt;&lt;td&gt;✕ 8-inch class: a PDF (A4) page smaller than paper. One PDF (A4) page (210 x 297 mm) in portrait shows at about 51-55% of paper size on the 8-inch class. Sideways and fit to width, it shows at about 82-90% of paper size, but one screen holds only about 42-47% of the page. A4 body text (assumed 10-11 pt) shows at about 5.1-6 pt (estimate). Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=a4&amp;amp;reading-tablet-page-size-size=s8#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Novels (paperback, A6), 10-11-inch class (10.1-11.5 in)&lt;/td&gt;&lt;td&gt;✓ 10-11-inch class: a Japanese paperback (bunko, A6) page at paper size or larger. One Japanese paperback (bunko, A6) page (105 x 148 mm) in portrait shows at about 129-151% of paper size on the 10-11-inch class. Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=bunko&amp;amp;reading-tablet-page-size-size=m11#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Manga (shinsho), 10-11-inch class (10.1-11.5 in)&lt;/td&gt;&lt;td&gt;✓ 10-11-inch class: a Shinsho manga volume page at paper size or larger. One Shinsho manga volume page (112 x 176 mm) in portrait shows at about 119-134% of paper size on the 10-11-inch class. Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=shinsho&amp;amp;reading-tablet-page-size-size=m11#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Manga (B6), 10-11-inch class (10.1-11.5 in)&lt;/td&gt;&lt;td&gt;✓ 10-11-inch class: a B6 manga volume page at paper size or larger. One B6 manga volume page (128 x 182 mm) in portrait shows at about 106-123% of paper size on the 10-11-inch class. Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=b6&amp;amp;reading-tablet-page-size-size=m11#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Magazines (B5), 10-11-inch class (10.1-11.5 in)&lt;/td&gt;&lt;td&gt;✕ 10-11-inch class: a Magazine (B5) page smaller than paper. One Magazine (B5) page (182 x 257 mm) in portrait shows at about 74-87% of paper size on the 10-11-inch class. Sideways and fit to width, it shows at about 119-137% of paper size, but one screen holds only about 42-50% of the page. Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=b5&amp;amp;reading-tablet-page-size-size=m11#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PDFs (A4), 10-11-inch class (10.1-11.5 in)&lt;/td&gt;&lt;td&gt;✕ 10-11-inch class: a PDF (A4) page smaller than paper. One PDF (A4) page (210 x 297 mm) in portrait shows at about 64-75% of paper size on the 10-11-inch class. Sideways and fit to width, it shows at about 103-119% of paper size, but one screen holds only about 42-50% of the page. A4 body text (assumed 10-11 pt) shows at about 6.4-8.3 pt (estimate). Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=a4&amp;amp;reading-tablet-page-size-size=m11#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Novels (paperback, A6), 12-13-inch class (11.95-13.1 in)&lt;/td&gt;&lt;td&gt;✓ 12-13-inch class: a Japanese paperback (bunko, A6) page at paper size or larger. One Japanese paperback (bunko, A6) page (105 x 148 mm) in portrait shows at about 155-178% of paper size on the 12-13-inch class. Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=bunko&amp;amp;reading-tablet-page-size-size=l13#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Manga (shinsho), 12-13-inch class (11.95-13.1 in)&lt;/td&gt;&lt;td&gt;✓ 12-13-inch class: a Shinsho manga volume page at paper size or larger. One Shinsho manga volume page (112 x 176 mm) in portrait shows at about 139-157% of paper size on the 12-13-inch class. Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=shinsho&amp;amp;reading-tablet-page-size-size=l13#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Manga (B6), 12-13-inch class (11.95-13.1 in)&lt;/td&gt;&lt;td&gt;✓ 12-13-inch class: a B6 manga volume page at paper size or larger. One B6 manga volume page (128 x 182 mm) in portrait shows at about 127-145% of paper size on the 12-13-inch class. Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=b6&amp;amp;reading-tablet-page-size-size=l13#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Magazines (B5), 12-13-inch class (11.95-13.1 in)&lt;/td&gt;&lt;td&gt;△ 12-13-inch class: a Magazine (B5) page reaches paper size on some models and is smaller on others. One Magazine (B5) page (182 x 257 mm) in portrait shows at about 89-102% of paper size on the 12-13-inch class. Sideways and fit to width, it shows at about 139-155% of paper size, but one screen holds only about 44-54% of the page. Only 4:3 screens of about 13 inches come close to paper size (about 98-102%). Every other model shows it smaller than paper. Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=b5&amp;amp;reading-tablet-page-size-size=l13#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PDFs (A4), 12-13-inch class (11.95-13.1 in)&lt;/td&gt;&lt;td&gt;✕ 12-13-inch class: a PDF (A4) page smaller than paper. One PDF (A4) page (210 x 297 mm) in portrait shows at about 77-88% of paper size on the 12-13-inch class. Sideways and fit to width, it shows at about 120-134% of paper size, but one screen holds only about 44-54% of the page. A4 body text (assumed 10-11 pt) shows at about 7.7-9.7 pt (estimate). Calculated for every model in this class, allowing 0-8 mm for top and bottom bars&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-15-tablet-size-reading/?reading-tablet-page-size-paper=a4&amp;amp;reading-tablet-page-size-size=l13#reading-tablet-page-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>tablet</category><category>reading</category><category>e-book</category><category>manga</category><category>PDF</category><category>screen size</category></item><item><title>Best Earbuds Mic for a Noisy Office: Look Past ANC</title><link>https://aulvem.com/blog/2026-10-14-earbuds-noisy-office-mic/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-10-14-earbuds-noisy-office-mic/</guid><description>For calls in a noisy office, this guide picks the Bose QuietComfort Ultra Earbuds (2nd Gen), which Bose says reduces office chatter and wind on calls with AI. It lists 8 mics, but Bose doesn&apos;t say how many are for calls. This guide is based on the makers&apos; official pages.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;For calls in a noisy office, this guide picks the Bose QuietComfort Ultra Earbuds (2nd Gen), which Bose says reduces office chatter and wind on calls with AI. It lists 8 mics, but Bose doesn’t say how many are for calls.&lt;/p&gt;
&lt;p&gt;This guide is based on the makers’ official pages. No earbuds were tested in person, so how your voice sounds to the other person isn’t judged.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ANC (active noise cancellation): reduces the noise you hear&lt;/li&gt;
&lt;li&gt;Beamforming: using several mics to pick up sound from your mouth more strongly&lt;/li&gt;
&lt;li&gt;Bone-conduction sensor: tells your voice apart from other sound by the vibration when you speak (also called voice pickup)&lt;/li&gt;
&lt;li&gt;AI noise removal: processing that reduces background noise in the voice it sends&lt;/li&gt;
&lt;li&gt;HFP: the Bluetooth call profile, which is mono&lt;/li&gt;
&lt;li&gt;LE Audio: the newer Bluetooth standard, which can keep stereo during calls when the conditions are met&lt;/li&gt;
&lt;li&gt;Teams certification: Certified for Microsoft Teams, which checks audio quality and Teams call controls&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;anc-and-call-noise-reduction-are-separate&quot;&gt;ANC and call noise reduction are separate&lt;/h2&gt;
&lt;p&gt;Per the makers’ pages as of October 2026, ANC (active noise cancellation) cuts the noise you hear; call noise reduction cuts the noise the other person hears. Sony, Bose and Jabra describe them as separate features, and none says strong ANC keeps background noise out of your calls.&lt;/p&gt;
&lt;p&gt;Among the models checked, none says more mics mean better calls. The Sony WF-1000XM6’s 8 mics are for ANC; calls use 2 mics plus a bone-conduction sensor. Bose doesn’t say whether its 8 mics include the ANC ones.&lt;/p&gt;
&lt;h2 id=&quot;will-it-remove-chatter-keyboards-air-conditioning-street-noise-and-wind&quot;&gt;Will it remove chatter, keyboards, air conditioning, street noise and wind?&lt;/h2&gt;
&lt;p&gt;Among the earbuds compared here, only the Bose QuietComfort Ultra Earbuds (2nd Gen) says it reduces office chatter on calls. Bose describes AI suppression of chatter and wind.&lt;/p&gt;
&lt;p&gt;No page names keyboard clatter or air-conditioning hum as something it removes. Bose names voices and wind, the Technics EAH-AZ100 wind and sudden noises, and no page gives figures.&lt;/p&gt;
&lt;p&gt;Among the models checked, whether train or street noise is removed like office chatter isn’t clear, and this guide hasn’t verified it.&lt;/p&gt;
&lt;p&gt;Every model in the table lists wind measures, and the methods differ. See the Wind measures column.&lt;/p&gt;
&lt;h2 id=&quot;call-features-and-wind-measures-the-makers-publish&quot;&gt;Call features and wind measures the makers publish&lt;/h2&gt;
&lt;p&gt;The table comes from the makers’ official pages. Read the “Call features” and “Wind measures” columns. “Not confirmed” means this guide didn’t check, not that the feature is missing, and the table shows only what is published, not how good it sounds.&lt;/p&gt;



























































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Model&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Call features&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Wind measures&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;ANC&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Sony WF-1000XM6&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 call mics aimed at your mouth, bone-conduction sensor and AI&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Mic-area structure (micro-perforations, streamlined shape) reduces wind noise&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Sony WF-1000XM5&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Voice pickup and bone-conduction sensor (call mic count not listed)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Mic design that reduces wind noise&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Bose QuietComfort Ultra Earbuds (2nd Gen)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 mics and AI noise suppression (unclear whether the 8 include the ANC mics)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;AI suppression said to reduce wind&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Jabra Elite 10 (1st Gen)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;6 mics (one per side picks up your voice by bone conduction)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Wind mode (switches to the in-ear mic)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not confirmed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Google Pixel Buds Pro 2&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 mics per side, voice accelerometer and Clear Calling (how it works isn’t explained)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Wind-blocking mesh covers&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not confirmed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Apple AirPods Pro 3&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Dual beamforming mics, an inward mic and a speech-detecting accelerometer (Voice Isolation)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Voice Isolation removes wind and other noise (calls on iPhone, iPad and Mac)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not confirmed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Technics EAH-AZ100&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 mics per side (6 total) and AI noise reduction&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;AI said to suppress wind and sudden noises&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Poly Voyager Free 60&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 mics per side and AI noise removal (NoiseBlockAI)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;WindSmart&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Among the models checked, the Call features column shows which models publish a voice-pickup method or AI noise removal.&lt;/p&gt;
&lt;p&gt;The Jabra Elite 10 found on Amazon is the first generation. The newer Gen 2 lists 6 mics, but neither their layout nor a Teams certification was found.&lt;/p&gt;
&lt;h2 id=&quot;does-teams-certification-tell-you-how-well-noise-is-removed&quot;&gt;Does Teams certification tell you how well noise is removed?&lt;/h2&gt;
&lt;p&gt;Per Microsoft, no standard for how strongly noise is removed is listed on its pages. Teams certification (Certified for Microsoft Teams) checks audio quality and Teams call controls such as mute sync. Nothing found says earbuds need the certification to work in Teams.&lt;/p&gt;
&lt;p&gt;For earbuds paired straight to the PC, Teams certification covers classic Bluetooth only; LE Audio isn’t certified, and a PC with a separate USB Bluetooth adapter is outside the certification.&lt;/p&gt;
&lt;p&gt;The only Teams certification found here is for the Teams version of the Poly Voyager Free 60. The regular UC version may not be certified, and the Amazon listing is the UC version from a third-party seller, so this guide doesn’t recommend it.&lt;/p&gt;
&lt;h2 id=&quot;why-call-audio-sounds-muffled-on-windows&quot;&gt;Why call audio sounds muffled on Windows&lt;/h2&gt;
&lt;p&gt;Per Microsoft, with classic Bluetooth, Windows switches to the call profile (HFP) when a call app uses the earbuds’ mic, and audio becomes mono. HFP also limits the audio band, which is why call audio sounds muffled. LE Audio is the exception.&lt;/p&gt;
&lt;p&gt;The exception is LE Audio: Windows 11 24H2 or later on a PC with factory LE Audio support, and earbuds that keep stereo during calls. None of the models here officially confirms stereo during calls.&lt;/p&gt;
&lt;p&gt;Per Apple, AirPods Voice Isolation, which removes background noise such as wind during calls, works in calls on an iPhone, iPad or Mac. Apple doesn’t say whether the same processing applies to Windows calls.&lt;/p&gt;
&lt;h2 id=&quot;how-to-check-for-your-own-office&quot;&gt;How to check for your own office&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Decide which noise you want gone, and which call app and PC you use&lt;/li&gt;
&lt;li&gt;In the tool below, see which models publish a feature for that noise, then check the ones you like on the maker’s page&lt;/li&gt;
&lt;li&gt;After buying, ask a coworker how you sound on a call&lt;/li&gt;
&lt;/ol&gt;
&lt;section id=&quot;earbuds-noisy-office-mic-finder&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;earbuds-noisy-office-mic-finder-title&quot;&gt; &lt;h3 id=&quot;earbuds-noisy-office-mic-finder-title&quot;&gt;Check which earbuds publish call features for a noisy office&lt;/h3&gt; &lt;p&gt;Pick the noise around you (voices, typing, air conditioning, wind), your call app (Teams, Zoom or other) and your PC (Windows or Mac). It shows the specs to check, the caveats and the models that publish a call feature for that noise. It doesn&amp;#39;t rate how you sound.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;bose&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Bose QuietComfort Ultra Earbuds (2nd Gen)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/513LCPDEWKL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Bose QuietComfort Ultra Earbuds (2nd Gen)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FCSGGHLL?q=Bose+QuietComfort+Ultra+Earbuds+%282nd+Gen%29&amp;amp;us=B0F7M3HPBD&amp;amp;l=en&quot; aria-label=&quot;View Bose QuietComfort Ultra Earbuds (2nd Gen) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;airpods&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Apple AirPods Pro 3&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61solmQSSlL._AC_SX342_SY445_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Apple AirPods Pro 3&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FQFQDN6K?q=Apple+AirPods+Pro+3&amp;amp;us=B0FQFB8FMG&amp;amp;l=en&quot; aria-label=&quot;View Apple AirPods Pro 3 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This tool needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;noises&quot;:[&quot;voice&quot;,&quot;keyboard&quot;,&quot;hvac&quot;,&quot;wind&quot;],&quot;apps&quot;:[&quot;teams&quot;,&quot;zoom&quot;,&quot;other&quot;],&quot;pcs&quot;:[&quot;win&quot;,&quot;mac&quot;],&quot;order&quot;:[&quot;xm6&quot;,&quot;xm5&quot;,&quot;bose&quot;,&quot;jabra10&quot;,&quot;pixel&quot;,&quot;airpods&quot;,&quot;az100&quot;,&quot;poly60&quot;],&quot;models&quot;:{&quot;xm6&quot;:{&quot;ja&quot;:&quot;Sony WF-1000XM6&quot;,&quot;en&quot;:&quot;Sony WF-1000XM6&quot;,&quot;anc&quot;:true,&quot;pick&quot;:true,&quot;ai&quot;:true,&quot;chatter&quot;:null,&quot;wind&quot;:true,&quot;teams&quot;:null,&quot;cells&quot;:{&quot;mech&quot;:{&quot;ja&quot;:&quot;口元に向けた通話用マイク2個＋骨伝導センサー＋AI&quot;,&quot;en&quot;:&quot;2 call mics aimed at your mouth, bone-conduction sensor and AI&quot;},&quot;wind&quot;:{&quot;ja&quot;:&quot;マイク部の構造（微細孔加工・流線形状）で風ノイズを低減&quot;,&quot;en&quot;:&quot;Mic-area structure (micro-perforations, streamlined shape) reduces wind noise&quot;},&quot;teams&quot;:{&quot;ja&quot;:&quot;記載が見つからない&quot;,&quot;en&quot;:&quot;Not found&quot;},&quot;anc&quot;:{&quot;ja&quot;:&quot;あり&quot;,&quot;en&quot;:&quot;Yes&quot;}}},&quot;xm5&quot;:{&quot;ja&quot;:&quot;Sony WF-1000XM5&quot;,&quot;en&quot;:&quot;Sony WF-1000XM5&quot;,&quot;anc&quot;:true,&quot;pick&quot;:true,&quot;ai&quot;:null,&quot;chatter&quot;:null,&quot;wind&quot;:true,&quot;teams&quot;:null,&quot;cells&quot;:{&quot;mech&quot;:{&quot;ja&quot;:&quot;ボイスピックアップ＋骨伝導センサー（通話用マイクの数は記載なし）&quot;,&quot;en&quot;:&quot;Voice pickup and bone-conduction sensor (call mic count not listed)&quot;},&quot;wind&quot;:{&quot;ja&quot;:&quot;風切り音を減らすマイク構造&quot;,&quot;en&quot;:&quot;Mic design that reduces wind noise&quot;},&quot;teams&quot;:{&quot;ja&quot;:&quot;記載が見つからない&quot;,&quot;en&quot;:&quot;Not found&quot;},&quot;anc&quot;:{&quot;ja&quot;:&quot;あり&quot;,&quot;en&quot;:&quot;Yes&quot;}}},&quot;bose&quot;:{&quot;ja&quot;:&quot;Bose QuietComfort Ultra Earbuds（第2世代）&quot;,&quot;en&quot;:&quot;Bose QuietComfort Ultra Earbuds (2nd Gen)&quot;,&quot;anc&quot;:true,&quot;pick&quot;:null,&quot;ai&quot;:true,&quot;chatter&quot;:true,&quot;wind&quot;:true,&quot;teams&quot;:null,&quot;cells&quot;:{&quot;mech&quot;:{&quot;ja&quot;:&quot;マイク8個＋AI のノイズ抑制（8個が ANC と通話の合計かは不明）&quot;,&quot;en&quot;:&quot;8 mics and AI noise suppression (unclear whether the 8 include the ANC mics)&quot;},&quot;wind&quot;:{&quot;ja&quot;:&quot;AI の抑制で風の音を減らすと説明&quot;,&quot;en&quot;:&quot;AI suppression said to reduce wind&quot;},&quot;teams&quot;:{&quot;ja&quot;:&quot;記載が見つからない&quot;,&quot;en&quot;:&quot;Not found&quot;},&quot;anc&quot;:{&quot;ja&quot;:&quot;あり&quot;,&quot;en&quot;:&quot;Yes&quot;}}},&quot;jabra10&quot;:{&quot;ja&quot;:&quot;Jabra Elite 10（初代）&quot;,&quot;en&quot;:&quot;Jabra Elite 10 (1st Gen)&quot;,&quot;anc&quot;:null,&quot;pick&quot;:true,&quot;ai&quot;:null,&quot;chatter&quot;:null,&quot;wind&quot;:true,&quot;teams&quot;:null,&quot;cells&quot;:{&quot;mech&quot;:{&quot;ja&quot;:&quot;マイク6個（片耳1個は骨伝導で声を拾う）&quot;,&quot;en&quot;:&quot;6 mics (one per side picks up your voice by bone conduction)&quot;},&quot;wind&quot;:{&quot;ja&quot;:&quot;風モード（耳の中のマイクに切り替え）&quot;,&quot;en&quot;:&quot;Wind mode (switches to the in-ear mic)&quot;},&quot;teams&quot;:{&quot;ja&quot;:&quot;記載が見つからない&quot;,&quot;en&quot;:&quot;Not found&quot;},&quot;anc&quot;:{&quot;ja&quot;:&quot;未確認&quot;,&quot;en&quot;:&quot;Not confirmed&quot;}}},&quot;pixel&quot;:{&quot;ja&quot;:&quot;Google Pixel Buds Pro 2&quot;,&quot;en&quot;:&quot;Google Pixel Buds Pro 2&quot;,&quot;anc&quot;:null,&quot;pick&quot;:true,&quot;ai&quot;:null,&quot;chatter&quot;:null,&quot;wind&quot;:true,&quot;teams&quot;:null,&quot;cells&quot;:{&quot;mech&quot;:{&quot;ja&quot;:&quot;片耳3個のマイク＋ボイスアクセラレーター＋Clear Calling（仕組みの説明は記載なし）&quot;,&quot;en&quot;:&quot;3 mics per side, voice accelerometer and Clear Calling (how it works isn&apos;t explained)&quot;},&quot;wind&quot;:{&quot;ja&quot;:&quot;風を防ぐメッシュカバー&quot;,&quot;en&quot;:&quot;Wind-blocking mesh covers&quot;},&quot;teams&quot;:{&quot;ja&quot;:&quot;記載が見つからない&quot;,&quot;en&quot;:&quot;Not found&quot;},&quot;anc&quot;:{&quot;ja&quot;:&quot;未確認&quot;,&quot;en&quot;:&quot;Not confirmed&quot;}}},&quot;airpods&quot;:{&quot;ja&quot;:&quot;Apple AirPods Pro 3&quot;,&quot;en&quot;:&quot;Apple AirPods Pro 3&quot;,&quot;anc&quot;:null,&quot;pick&quot;:true,&quot;ai&quot;:null,&quot;chatter&quot;:null,&quot;wind&quot;:true,&quot;windApple&quot;:true,&quot;teams&quot;:null,&quot;cells&quot;:{&quot;mech&quot;:{&quot;ja&quot;:&quot;ビームフォーミングマイク2基＋内向きマイク＋発話検知の加速度センサー（Voice Isolation）&quot;,&quot;en&quot;:&quot;Dual beamforming mics, an inward mic and a speech-detecting accelerometer (Voice Isolation)&quot;},&quot;wind&quot;:{&quot;ja&quot;:&quot;Voice Isolation で風などを除去（iPhone・iPad・Mac の通話）&quot;,&quot;en&quot;:&quot;Voice Isolation removes wind and other noise (calls on iPhone, iPad and Mac)&quot;},&quot;teams&quot;:{&quot;ja&quot;:&quot;記載が見つからない&quot;,&quot;en&quot;:&quot;Not found&quot;},&quot;anc&quot;:{&quot;ja&quot;:&quot;未確認&quot;,&quot;en&quot;:&quot;Not confirmed&quot;}}},&quot;az100&quot;:{&quot;ja&quot;:&quot;Technics EAH-AZ100&quot;,&quot;en&quot;:&quot;Technics EAH-AZ100&quot;,&quot;anc&quot;:true,&quot;pick&quot;:null,&quot;ai&quot;:true,&quot;chatter&quot;:null,&quot;wind&quot;:true,&quot;teams&quot;:null,&quot;cells&quot;:{&quot;mech&quot;:{&quot;ja&quot;:&quot;片耳3個（計6個）＋AI ノイズリダクション&quot;,&quot;en&quot;:&quot;3 mics per side (6 total) and AI noise reduction&quot;},&quot;wind&quot;:{&quot;ja&quot;:&quot;AI で風や突発音を抑えると説明&quot;,&quot;en&quot;:&quot;AI said to suppress wind and sudden noises&quot;},&quot;teams&quot;:{&quot;ja&quot;:&quot;記載が見つからない&quot;,&quot;en&quot;:&quot;Not found&quot;},&quot;anc&quot;:{&quot;ja&quot;:&quot;あり&quot;,&quot;en&quot;:&quot;Yes&quot;}}},&quot;poly60&quot;:{&quot;ja&quot;:&quot;Poly Voyager Free 60&quot;,&quot;en&quot;:&quot;Poly Voyager Free 60&quot;,&quot;anc&quot;:true,&quot;pick&quot;:null,&quot;ai&quot;:true,&quot;chatter&quot;:null,&quot;wind&quot;:true,&quot;teams&quot;:&quot;teams_only&quot;,&quot;cells&quot;:{&quot;mech&quot;:{&quot;ja&quot;:&quot;片耳3個＋AI のノイズ除去（NoiseBlockAI）&quot;,&quot;en&quot;:&quot;3 mics per side and AI noise removal (NoiseBlockAI)&quot;},&quot;wind&quot;:{&quot;ja&quot;:&quot;WindSmart&quot;,&quot;en&quot;:&quot;WindSmart&quot;},&quot;teams&quot;:{&quot;ja&quot;:&quot;認証あり（Teams 版だけ。UC 版は認証品とは限らない）&quot;,&quot;en&quot;:&quot;Certified (Teams version only; the UC version may not be)&quot;},&quot;anc&quot;:{&quot;ja&quot;:&quot;あり&quot;,&quot;en&quot;:&quot;Yes&quot;}}}},&quot;products&quot;:{&quot;xm6&quot;:{&quot;model&quot;:&quot;xm6&quot;},&quot;xm5&quot;:{&quot;model&quot;:&quot;xm5&quot;},&quot;bose&quot;:{&quot;model&quot;:&quot;bose&quot;},&quot;pixel&quot;:{&quot;model&quot;:&quot;pixel&quot;},&quot;airpods&quot;:{&quot;model&quot;:&quot;airpods&quot;},&quot;az100&quot;:{&quot;model&quot;:&quot;az100&quot;},&quot;jabra10&quot;:{&quot;model&quot;:&quot;jabra10&quot;}},&quot;pickOnlySlots&quot;:true,&quot;buy&quot;:{&quot;bose&quot;:{&quot;type&quot;:&quot;earbuds&quot;,&quot;ja&quot;:&quot;Bose QuietComfort Ultra Earbuds（第2世代）&quot;,&quot;en&quot;:&quot;Bose QuietComfort Ultra Earbuds (2nd Gen)&quot;,&quot;jp&quot;:&quot;B0FCSGGHLL&quot;,&quot;us&quot;:&quot;B0F7M3HPBD&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0FCSGGHLL&quot;,&quot;asinUS&quot;:&quot;B0F7M3HPBD&quot;,&quot;title&quot;:&quot;Bose QuietComfort Ultra Earbuds（第2世代）&quot;,&quot;searchQuery&quot;:&quot;Bose QuietComfort Ultra Earbuds（第2世代）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/513LCPDEWKL._AC_SY300_SX300_QL70_ML2_.jpg&quot;,&quot;jan&quot;:&quot;4969929261113&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0FCSGGHLL&quot;,&quot;asinUS&quot;:&quot;B0F7M3HPBD&quot;,&quot;title&quot;:&quot;Bose QuietComfort Ultra Earbuds (2nd Gen)&quot;,&quot;searchQuery&quot;:&quot;Bose QuietComfort Ultra Earbuds (2nd Gen)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/513LCPDEWKL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot;}},&quot;rank_jp&quot;:0,&quot;rank_us&quot;:1},&quot;airpods&quot;:{&quot;type&quot;:&quot;earbuds&quot;,&quot;ja&quot;:&quot;Apple AirPods Pro 3&quot;,&quot;en&quot;:&quot;Apple AirPods Pro 3&quot;,&quot;jp&quot;:&quot;B0FQFQDN6K&quot;,&quot;us&quot;:&quot;B0FQFB8FMG&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0FQFQDN6K&quot;,&quot;asinUS&quot;:&quot;B0FQFB8FMG&quot;,&quot;title&quot;:&quot;Apple AirPods Pro 3&quot;,&quot;searchQuery&quot;:&quot;Apple AirPods Pro 3&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61kX+MI8wvL._AC_SX342_SY445_QL70_ML2_.jpg&quot;,&quot;jan&quot;:&quot;4549995635232&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0FQFQDN6K&quot;,&quot;asinUS&quot;:&quot;B0FQFB8FMG&quot;,&quot;title&quot;:&quot;Apple AirPods Pro 3&quot;,&quot;searchQuery&quot;:&quot;Apple AirPods Pro 3&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61solmQSSlL._AC_SX342_SY445_QL70_FMwebp_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:0}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;earbuds&quot;:&quot;bose&quot;},&quot;en&quot;:{&quot;earbuds&quot;:&quot;bose&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;earbuds-noisy-office-mic-finder&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 姉妹記事 earbuds-commute-calls・earbuds-windows-android の model.mjs を、この記事の軸（騒がしいオフィスで相手に聞こえる騒音）に直したもの。
// この記事は「相手にどう聞こえるか」を判定しない（実機の録音をしていない）。ここで出すのは「その騒音について、メーカーが仕組みを公表している機種」だけ。
// 機種の値は calc.mjs が data.json の facts と research/products.json から M.models に入れて渡す。
//   pick: 声を選んで拾う仕組みの公表（口元への指向性・骨伝導センサー・加速度センサー・ビームフォーミング）true / null
//   ai: AI のノイズ除去の公表 true / null
//   chatter: 通話で周りの話し声を減らすと公表 true / null
//   wind: 風の対策の記載 true / null（記載が見つからない。無いとはみなさない）
//   windApple: 風の対策が Apple 機器（iPhone・iPad・Mac）での通話の機能（Windows は記載なし）
//   teams: Teams 認証の公式の記載 &quot;teams_only&quot;（Teams 版だけ）/ null（記載が見つからない）

const NOISES = [&quot;voice&quot;, &quot;keyboard&quot;, &quot;hvac&quot;, &quot;wind&quot;]; // 話し声・キーボード・空調・風
const APPS = [&quot;teams&quot;, &quot;zoom&quot;, &quot;other&quot;];
const PCS = [&quot;win&quot;, &quot;mac&quot;];

// 1機種の判定: &quot;hit&quot;（その騒音について、仕組みの公表がある）/ &quot;part&quot;（AI の除去は公表、その騒音を名指しした記載は無い）/ &quot;none&quot;（記載が見つからない）/ &quot;pc&quot;（その PC での記載が無い）
function fitModel(m, s) {
  if (s.noise === &quot;wind&quot;) {
    if (!m.wind) return &quot;none&quot;;
    return m.windApple &amp;&amp; s.pc !== &quot;mac&quot; ? &quot;pc&quot; : &quot;hit&quot;;
  }
  if (s.noise === &quot;voice&quot;) return m.chatter || m.pick ? &quot;hit&quot; : m.ai ? &quot;part&quot; : &quot;none&quot;;
  // キーボード・空調: どの機種も名指しした記載が見つからない。AI の除去を公表している機種だけ &quot;part&quot;
  return m.ai ? &quot;part&quot; : &quot;none&quot;;
}

function matchModels(M, s) {
  const r = { hit: [], part: [], none: [], pc: [] };
  for (const id of M.order) r[fitModel(M.models[id], s)].push(id);
  return r;
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。姉妹記事 earbuds-windows-android の tool.ui.mjs（型 C）を流用。
// 入力: 周りの音（話し声・キーボード・空調・風）・使う通話アプリ（Teams／Zoom／その他）・PC（Windows／Mac）。結果は型 C（比べる表）: 機種×3列。
// 表のセルの文言は calc.mjs が M.models[id].cells に入れたもの（記事の早見表と同じ）。ここでは作らない。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。
// 相手にどう聞こえるかは判定しない。強調するのは「その音について仕組みを公表している機種」で、良いという判定ではない。

const T_ = {
  ja: {
    noise: &quot;周りの音&quot;, app: &quot;通話アプリ&quot;, pc: &quot;PC&quot;,
    ns: { voice: &quot;周りの話し声&quot;, keyboard: &quot;キーボードの音&quot;, hvac: &quot;空調の音&quot;, wind: &quot;風（窓際・屋外）&quot; },
    as: { teams: &quot;Teams&quot;, zoom: &quot;Zoom&quot;, other: &quot;その他&quot; }, ps: { win: &quot;Windows&quot;, mac: &quot;Mac&quot; },
    sh: { voice: &quot;話し声&quot;, keyboard: &quot;キーボード&quot;, hvac: &quot;空調&quot;, wind: &quot;風&quot;, win: &quot;Win&quot; }, key: { app: &quot;アプリ&quot; },
    col: { mech: &quot;通話用の仕組み（公表値）&quot;, wind: &quot;風の対策の記載&quot;, teams: &quot;Teams 認証&quot;, anc: &quot;ANC&quot; },
    lVoice: &quot;話し声には、自分の声を選んで拾う仕組み（骨伝導センサー・加速度センサー・口元に向けたマイク）か、話し声を減らすという記載を見ます&quot;,
    // 機種の名前は M.models の値（chatter・teams）から入れる（2026-10-15: 固定の文に機種名を手で書かない）
    lBose: (l) =&gt; `通話で周りの話し声を減らすとはっきり書いているのは ${l} です`,
    lKey: &quot;キーボードの音や空調の音を名指しして減らすと書いた公式の記載は見つかりませんでした。AI のノイズ除去を公表している機種でも、どの音にどれだけ効くかは書かれていません&quot;,
    lWind: &quot;風には、風の対策の記載（マイクの構造・メッシュ・風モード・AI）を見ます&quot;,
    lAnc: &quot;ANC は自分が聞く騒音を減らす機能で、相手に聞こえる騒音を減らす通話のノイズ除去とは別の機能です&quot;,
    lCount: &quot;マイクの数が多いほど通話がきれいとは言えません（Sony WF-1000XM6 の計8個は ANC 用で、通話用は2個）。Bose の8個は ANC 用と通話用の合計かが書かれていません&quot;,
    lTeams: &quot;Teams 認証は音質と通話操作（ミュートの同期など）の認証で、ノイズ除去の強さの基準は Microsoft の説明に書かれていません&quot;,
    lTeamsBt: &quot;PC に Bluetooth で直接つなぐ場合の認証は従来の Bluetooth（Classic）が対象で、LE Audio と、別売の USB Bluetooth アダプターの構成は対象外です&quot;,
    lPoly: (l, noBuy) =&gt; `認証の記載が見つかったのは ${l} の Teams 版だけです${noBuy ? &quot;。Amazon の出品は UC 版で販売元が第三者のため、勧めていません&quot; : &quot;&quot;}`,
    lZoom: &quot;Teams 認証は Teams 用の認証です。Zoom などほかのアプリでの通話の基準ではありません&quot;,
    lWin: &quot;Windows で通話アプリがマイクを使うと、通話用の方式（HFP）に切り替わり音はモノラルになります。例外は LE Audio（Windows 11 24H2 以降の対応 PC と、通話中のステレオに対応したイヤホン）で、通話中のステレオを公式で確かめた機種はありません&quot;,
    lWinApple: &quot;AirPods Pro 3 の Voice Isolation は iPhone・iPad・Mac の通話の機能で、Windows で使えるかは書かれていません&quot;,
    lMac: &quot;Mac での通話の方式は、この記事では調べていません。AirPods Pro 3 の Voice Isolation は Mac の通話で使えます&quot;,
    // 判定は数だけ（2026-10-15 ツールの UI の点検 C2・C3: 機種名を並べると最大 8 行になっていた）。機種名は下の行と表に
    // 1画面に収める（2026-10-15）: 判定は札の短い名前（sh）で1行に。言っていることは前と同じ
    vHit: (n, k) =&gt; `○ ${n}の仕組みの公表は ${k} 機種`,
    vPart: (n, k) =&gt; `△ ${n}の名指しは無し。AI のノイズ除去の公表は ${k} 機種`,
    pickL: &quot;「公表あり」の機種&quot;,
    vNg: &quot;✕ この条件で仕組みを公表している機種は見つかりませんでした&quot;,
    legend: &quot;強調は「その音について仕組みを公表している」だけで、聞こえ方の良し悪しの判定ではありません。「記載が見つからない」は無いという意味ではありません。&quot;,
    best: &quot;公表あり&quot;,
    note: &quot;メーカーと Microsoft の公式の説明（2026年10月の確認）だけで、実機の録音はしていません。相手にどう聞こえるかは判定していません。&quot;,
    sep: &quot;、&quot;,
  },
  en: {
    noise: &quot;Noise around you&quot;, app: &quot;Call app&quot;, pc: &quot;PC&quot;,
    ns: { voice: &quot;Coworkers talking&quot;, keyboard: &quot;Keyboard typing&quot;, hvac: &quot;Air conditioning&quot;, wind: &quot;Wind (window or outdoors)&quot; },
    as: { teams: &quot;Teams&quot;, zoom: &quot;Zoom&quot;, other: &quot;Other&quot; }, ps: { win: &quot;Windows&quot;, mac: &quot;Mac&quot; },
    sh: { voice: &quot;Voices&quot;, keyboard: &quot;Typing&quot;, hvac: &quot;A/C&quot;, wind: &quot;Wind&quot;, win: &quot;Win&quot; }, key: { noise: &quot;Noise&quot;, app: &quot;App&quot; },
    col: { mech: &quot;Call features (published)&quot;, wind: &quot;Wind measures&quot;, teams: &quot;Teams certified&quot;, anc: &quot;ANC&quot; },
    lVoice: &quot;For voices around you, look for a way of picking out your own voice (bone-conduction or motion sensors, mics aimed at your mouth) or a stated reduction of nearby speech&quot;,
    lBose: (l) =&gt; `The ${l} are the ones that clearly say they cut coworkers&apos; voices in calls`,
    lKey: &quot;No official page checked names keyboard clatter or air-conditioning hum as something it removes. Even models with AI noise removal don&apos;t say which sounds it handles or how well&quot;,
    lWind: &quot;For wind, look for a stated wind measure (mic design, mesh, wind mode, AI)&quot;,
    lAnc: &quot;ANC cuts the noise you hear; the noise the other person hears is handled by a separate call feature&quot;,
    lCount: &quot;More mics don&apos;t mean clearer calls (the Sony WF-1000XM6&apos;s 8 mics are for ANC; calls use 2). Bose doesn&apos;t say whether its 8 mics include the ANC ones&quot;,
    lTeams: &quot;Teams certification covers audio quality and call controls such as mute sync; Microsoft&apos;s pages don&apos;t list a standard for noise removal&quot;,
    lTeamsBt: &quot;For earbuds paired straight to the PC, certification covers classic Bluetooth only; LE Audio and setups with a separate USB Bluetooth adapter are outside it&quot;,
    lPoly: (l, noBuy) =&gt; `The only certification found is for the Teams version of the ${l}${noBuy ? &quot;. The Amazon listing is the UC version from a third-party seller, so it isn&apos;t recommended&quot; : &quot;&quot;}`,
    lZoom: &quot;Teams certification is for Teams; it isn&apos;t a standard for calls in Zoom or other apps&quot;,
    lWin: &quot;On Windows, once a call app uses the mic, audio switches to the call profile (HFP) and turns mono. The exception is LE Audio (an LE Audio PC on Windows 11 24H2 or later and earbuds that keep stereo in calls); no model here officially confirms stereo during calls&quot;,
    lWinApple: &quot;AirPods Pro 3 Voice Isolation works in calls on an iPhone, iPad or Mac; Apple doesn&apos;t say whether it works on Windows&quot;,
    lMac: &quot;How calls work on a Mac wasn&apos;t checked for this guide. AirPods Pro 3 Voice Isolation works in Mac calls&quot;,
    vHit: (n, k) =&gt; `✓ ${k} ${k === 1 ? &quot;model publishes&quot; : &quot;models publish&quot;} a feature for ${n.toLowerCase()}`,
    vPart: (n, k) =&gt; `△ None names ${n.toLowerCase()}. ${k} ${k === 1 ? &quot;model publishes&quot; : &quot;models publish&quot;} AI noise removal`,
    vNg: &quot;✕ No model publishes a feature for this combination&quot;,
    legend: &quot;Highlighting means a feature for that noise is published, not that it sounds better. \&quot;Not found\&quot; doesn&apos;t mean the feature is missing.&quot;,
    best: &quot;Published&quot;, pickL: &quot;The \&quot;Published\&quot; model&quot;,
    note: &quot;Based only on the makers&apos; and Microsoft&apos;s official pages (checked October 2026). Nothing was recorded on real units, and how you sound isn&apos;t rated.&quot;,
    sep: &quot;, &quot;,
  },
};

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;noise&quot;, type: &quot;select&quot;, label: t.noise, short: t.key.noise, value: &quot;voice&quot;, options: M.noises.map((x) =&gt; ({ value: x, label: t.ns[x], short: t.sh[x] })) },
    { name: &quot;app&quot;, type: &quot;select&quot;, label: t.app, short: t.key.app, value: &quot;teams&quot;, options: M.apps.map((x) =&gt; ({ value: x, label: t.as[x] })) },
    { name: &quot;pc&quot;, type: &quot;select&quot;, label: t.pc, value: &quot;win&quot;, options: M.pcs.map((x) =&gt; ({ value: x, label: t.ps[x], short: t.sh[x] })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const s = { noise: v.noise, app: v.app, pc: v.pc };
  if (!M.noises.includes(s.noise) || !M.apps.includes(s.app) || !M.pcs.includes(s.pc)) return { status: &quot;error&quot;, lines: [] };
  const r = matchModels(M, s);
  const name = (id) =&gt; M.models[id][lang];
  const list = (ids) =&gt; ids.map(name).join(t.sep);
  const lines = [];
  const chatter = M.order.filter((id) =&gt; M.models[id].chatter === true), teamsOnly = M.order.filter((id) =&gt; M.models[id].teams === &quot;teams_only&quot;);
  if (s.noise === &quot;voice&quot;) { lines.push(t.lVoice); if (chatter.length) lines.push(t.lBose(list(chatter))); }
  else if (s.noise === &quot;wind&quot;) lines.push(t.lWind);
  else lines.push(t.lKey);
  lines.push(t.lAnc, t.lCount);
  // Teams 版だけ認証の機種。その機種が記事の候補（M.buy）に無いときだけ、勧めない理由の文を付ける
  if (s.app === &quot;teams&quot;) { lines.push(t.lTeams, t.lTeamsBt); if (teamsOnly.length) lines.push(t.lPoly(list(teamsOnly), teamsOnly.every((id) =&gt; !Object.keys(M.products).some((pid) =&gt; M.products[pid].model === id &amp;&amp; M.buy &amp;&amp; M.buy[pid])))); } else lines.push(t.lZoom);
  if (s.pc === &quot;win&quot;) lines.push(t.lWin, t.lWinApple); else lines.push(t.lMac);

  // カードに出せるのは、その国で本文の枠に選ばれた商品だけ（M.buy。pickOnlySlots）。表の先頭の機種をいつも強調しない（2026-10-14 ユーザー指摘: XM6 しか出ない）
  const mk = lang === &quot;ja&quot; ? &quot;jp&quot; : &quot;us&quot;;
  const pickOf = (id) =&gt; Object.keys(M.products).filter((pid) =&gt; M.products[pid].model === id &amp;&amp; (!M.buy || (M.buy[pid] &amp;&amp; M.buy[pid][mk])));
  const hitIds = r.hit.length ? r.hit : r.part;
  const highlight = hitIds.find((id) =&gt; pickOf(id).length) || hitIds[0] || null;
  const keys = (s.noise === &quot;wind&quot; ? [&quot;wind&quot;, &quot;mech&quot;] : [&quot;mech&quot;, &quot;wind&quot;]).concat(s.app === &quot;teams&quot; ? [&quot;teams&quot;] : [&quot;anc&quot;]);
  const cols = keys.map((key) =&gt; ({ key, label: t.col[key] }));
  const rows = M.order.map((id) =&gt; {
    const m = M.models[id], fit = r.hit.includes(id) ? &quot;hit&quot; : r.part.includes(id) ? &quot;part&quot; : r.pc.includes(id) ? &quot;pc&quot; : &quot;none&quot;;
    const cells = {};
    for (const k of keys) cells[k] = { text: m.cells[k][lang], ok: k === keys[0] &amp;&amp; fit === &quot;hit&quot;, miss: k === keys[0] &amp;&amp; fit === &quot;pc&quot; };
    return { id, label: name(id), short: name(id).replace(/^(Sony|Bose|Jabra|Google|Apple|Technics|Poly) /, &quot;&quot;).replace(/QuietComfort Ultra Earbuds/, &quot;QC Ultra Earbuds&quot;), cells, hit: hitIds.includes(id), pick: pickOf(id) };
  });
  rows.sort((a, b) =&gt; (b.id === highlight) - (a.id === highlight) || b.hit - a.hit);
  // 判定に当てはまる機種の名前は names（表の行と同じなので札は出さない: namesInRows。早見表には全部）。前は lines[0] に並べていた（C4: lines[0] は理由に）
  // 1画面に収める（2026-10-15）: PC は合う行 2 つ・スマホは 2 つで、行の下の「列名: 値」は1つ（残りは行を押すと出る・「すべての機種」）
  const matrix = { cols, rows, highlight, legend: t.legend, bestLabel: t.best, namesInRows: true, showPc: 2, showPhone: 2, subPhone: 1, wrapNames: true };
  const picks = hitIds.flatMap(pickOf);
  const nn = lang === &quot;ja&quot; ? t.sh[s.noise] : t.ns[s.noise];
  if (!hitIds.length) return { status: &quot;ng&quot;, verdict: t.vNg, lines, picks: [], matrix };
  // 結果の行は「根拠と注意」にたたむ（show: 0。表が答え）。商品の言い方は表の札と同じ「公表あり」
  const more = { show: 0, pickLabel: t.pickL };
  if (!r.hit.length) return { status: &quot;cond&quot;, verdict: t.vPart(nn, r.part.length), names: r.part.map(name), lines, picks, matrix, ...more };
  return { status: &quot;ok&quot;, verdict: t.vHit(nn, r.hit.length), names: r.hit.map(name), lines, picks, matrix, ...more };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（周りの音 4通り × Teams・Windows、風は Mac も、話し声は Zoom も）
function presets() {
  const out = [];
  for (const noise of [&quot;voice&quot;, &quot;keyboard&quot;, &quot;hvac&quot;, &quot;wind&quot;]) out.push({ noise, app: &quot;teams&quot;, pc: &quot;win&quot; });
  out.push({ noise: &quot;wind&quot;, app: &quot;teams&quot;, pc: &quot;mac&quot; }, { noise: &quot;voice&quot;, app: &quot;zoom&quot;, pc: &quot;win&quot; });
  return out;
}

// カードに出す仕様（その商品の機種の公式の値。表と同じ文言。記載が見つからない・確かめていない項目は出さない）
function pickSpecs(id, v, M, lang) {
  const p = M.products[id];
  const m = p &amp;&amp; M.models[p.model];
  if (!m) return [];
  const c = T_[lang].col;
  // 1画面に収める（2026-10-15）: カードには、いま選んだ音の列（表の最初の列）の値だけ
  const k0 = v &amp;&amp; v.noise === &quot;wind&quot; ? &quot;wind&quot; : &quot;mech&quot;;
  return [k0].filter((k) =&gt; !/記載が見つからない|確かめていない|未確認|Not found|Not checked|Not confirmed/.test(m.cells[k][lang])).map((k) =&gt; `${c[k]}: ${m.cells[k][lang]}`);
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;matrix&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;p&gt;In the tool, pick the noise around you, your call app and your PC to see what to check and which models publish a feature for that noise. This guide doesn’t judge how you sound to the other person, because no earbuds were recorded and compared. It lists only the call features the makers publish.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-situation&quot;&gt;Picks by situation&lt;/h2&gt;
&lt;p&gt;Per the makers’ pages, candidates here list call features, wind measures and ANC, plus AI noise reduction or reduced chatter. Of those, only listings with 100+ Amazon.com ratings, 4.0+ stars and a seller of Amazon or the maker are considered.&lt;/p&gt;
&lt;h3 id=&quot;for-calls-in-a-noisy-office&quot;&gt;For calls in a noisy office&lt;/h3&gt;
&lt;p&gt;The Bose QuietComfort Ultra Earbuds (2nd Gen) is the only candidate that meets those rating and seller rules, and it says it reduces office chatter and wind.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Bose QuietComfort Ultra Earbuds (2nd Gen)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/513LCPDEWKL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Bose QuietComfort Ultra Earbuds (2nd Gen)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FCSGGHLL?q=Bose+QuietComfort+Ultra+Earbuds+%282nd+Gen%29&amp;amp;us=B0F7M3HPBD&amp;amp;l=en&quot; aria-label=&quot;View Bose QuietComfort Ultra Earbuds (2nd Gen) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Whether the rating count is shared with other models on the listing wasn&amp;#39;t checked.&lt;/p&gt;
&lt;h3 id=&quot;for-calls-on-an-iphone-and-a-mac&quot;&gt;For calls on an iPhone and a Mac&lt;/h3&gt;
&lt;p&gt;This guide picks the AirPods Pro 3 for iPhone and Mac calls. Per Apple, it has Voice Isolation and dual beamforming mics. Apple doesn’t say whether Voice Isolation works in Windows calls.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Apple AirPods Pro 3&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61solmQSSlL._AC_SX342_SY445_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Apple AirPods Pro 3&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FQFQDN6K?q=Apple+AirPods+Pro+3&amp;amp;us=B0FQFB8FMG&amp;amp;l=en&quot; aria-label=&quot;View Apple AirPods Pro 3 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;does-strong-anc-mean-the-earbuds-mic-also-cuts-the-noise-around-me-on-calls&quot;&gt;Does strong ANC mean the earbuds’ mic also cuts the noise around me on calls?&lt;/h3&gt;
&lt;p&gt;No. ANC cuts the noise you hear, while call noise reduction cuts the noise the other person hears. Sony, Bose and Jabra describe them as separate features.&lt;/p&gt;
&lt;h3 id=&quot;do-more-mics-mean-cleaner-calls&quot;&gt;Do more mics mean cleaner calls?&lt;/h3&gt;
&lt;p&gt;No official page among the major makers’ earbuds compared here says that more mics mean better calls. The Sony WF-1000XM6 lists 8 mics for ANC, plus 2 call mics and a bone-conduction sensor.&lt;/p&gt;
&lt;h3 id=&quot;will-earbuds-cut-keyboard-clatter-or-air-conditioning-hum-on-calls&quot;&gt;Will earbuds cut keyboard clatter or air-conditioning hum on calls?&lt;/h3&gt;
&lt;p&gt;No official page among the earbuds compared here names keyboard or air-conditioning noise as something it removes.&lt;/p&gt;
&lt;h3 id=&quot;do-teams-certified-earbuds-also-remove-more-noise&quot;&gt;Do Teams-certified earbuds also remove more noise?&lt;/h3&gt;
&lt;p&gt;Microsoft’s pages don’t list how strongly noise is removed as a Teams certification criterion.&lt;/p&gt;
&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Scope: current earbuds from Sony, Bose, Jabra, Apple, Google, Technics and Poly as of 2026-10-10, plus official Microsoft and Apple documentation. No recordings were made.&lt;/li&gt;
&lt;li&gt;This guide does not judge how a mic sounds. Mic counts, methods and certifications are the makers’ published specs.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;
































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;windows_hfp_mono&lt;/td&gt;&lt;td&gt;When a mic is opened, Windows switches from A2DP (stereo) to HFP (mono, 8 kHz or 16 kHz); only a Bluetooth LE Audio PC plus earbuds can keep stereo during calls&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows-hardware/drivers/bluetooth/bluetooth-classic-audio&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; Microsoft Learn: ‘Bluetooth Classic audio supports stereo audio playback over th&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;windows11_hfp_trigger&lt;/td&gt;&lt;td&gt;Windows 11 picks HFP when an app opens the mic or plays a Communications-category stream&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows-hardware/drivers/bluetooth/bluetooth-classic-audio&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; Microsoft Learn: ‘A2DP only supports audio output from the host to the audio dev&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;windows_le_audio_requirements&lt;/td&gt;&lt;td&gt;Stereo during calls needs Windows 11 24H2+, a PC with factory-integrated Bluetooth LE support, and earbuds that support stereo while the mic is in use&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.microsoft.com/en-us/windows/configuring-bluetooth-le-audio-quality-settings-on-windows-11-b8a78c31-bde9-4443-8c17-8bc0a4d571d0&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sony_video_call_note&lt;/td&gt;&lt;td&gt;Sony tells users to check the PC link is HFP or HSP for video calls&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpguide.sony.net/mdr/2963/v1/en/print.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpguide.sony.net&lt;/a&gt; Sony: ‘When using a video calling application on a computer, check that the head&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;jabra_mics_elite10&lt;/td&gt;&lt;td&gt;6 microphones&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.jabra.com/_/media/Jabra_VXi_Product-Documentation/Jabra-Elite-10/Datasheets/RevA/EN-Jabra-Elite-10-Data-sheet-A4-WEB-090823.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;jabra.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;xm6_anc&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpguide.sony.net/mdr/2985/v1/en/print.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpguide.sony.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;xm5_anc&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpguide.sony.net/mdr/2963/v1/en/print.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpguide.sony.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bose_anc&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.bose.com/p/earbuds/bose-quietcomfort-ultra-earbuds-2nd-gen/QCUE2-HEADPHONEIN.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;bose.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;az100_anc&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://jp.technics.com/products/tws/az100/multi.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;jp.technics.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;anc_vs_call_nr_separate&lt;/td&gt;&lt;td&gt;Makers describe ANC (what you hear) and call microphone noise reduction (what the other person hears) as separate features&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sony.jp/headphone/products/WF-1000XM6/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sony.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bose_anc_vs_call&lt;/td&gt;&lt;td&gt;Bose lists ANC changes and AI call noise suppression as separate items&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.bose.com/pressroom/bose-announces-the-quietcomfort-ultra-earbuds-2nd-gen&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;bose.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;xm6_call_mics&lt;/td&gt;&lt;td&gt;Sony WF-1000XM6: 2 mics for calls (directional toward the mouth) + bone conduction sensor + AI noise reduction; ANC uses a separate 4 mics per earbud (8 total)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sony.jp/headphone/products/WF-1000XM6/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sony.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;xm5_call_mics&lt;/td&gt;&lt;td&gt;Sony WF-1000XM5: wind-reducing mic structure + precision voice pickup technology + bone conduction sensor; 3 ANC mics per earbud (6 total)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sony.jp/headphone/products/WF-1000XM5/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sony.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;bose_qc2_mics&lt;/td&gt;&lt;td&gt;Bose QuietComfort Ultra Earbuds (2nd Gen): 8 microphones; AI noise suppression for calls&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.bose.com/pressroom/bose-announces-the-quietcomfort-ultra-earbuds-2nd-gen&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;bose.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;jabra_elite10g2_mics&lt;/td&gt;&lt;td&gt;Jabra Elite 10 Gen 2: 6 MEMS microphones, noise reduction on calls, HFP v1.8&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.jabra.com/_/media/Jabra_VXi_Product-Documentation/Jabra-Elite-10-Gen2/Technical-specifications/RevA/EN-Jabra-Elite-10-G2-Tech-Specs-A4-WEB-240524.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;jabra.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;jabra_elite10_wind&lt;/td&gt;&lt;td&gt;Jabra Elite 10 (1st gen): a wind mode switches to the in-ear microphone; Jabra says one mic per earbud picks up voice through bone conduction&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.jabra.com/blog/which-elite-is-the-best-for-calls/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;jabra.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;pixel_buds_pro2_mics&lt;/td&gt;&lt;td&gt;Google Pixel Buds Pro 2: three microphones per earbud, voice accelerometer, wind-blocking mesh covers, Clear Calling&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://store.google.com/us/product/pixel_buds_pro_2_specs?hl=en-US&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;store.google.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;airpods_pro3_mics&lt;/td&gt;&lt;td&gt;Apple AirPods Pro 3: dual beamforming microphones, an inward-facing microphone, a speech-detecting accelerometer, Voice Isolation&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/airpods-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;airpods_voice_isolation&lt;/td&gt;&lt;td&gt;AirPods Voice Isolation removes background noise such as wind for the listener; AirPods 4, Pro 2 and Pro 3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/en-qa/guide/airpods/devac96438de/web&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;az100_mics&lt;/td&gt;&lt;td&gt;Technics EAH-AZ100: three microphones per earbud plus AI noise reduction (trained on 500 million audio samples); suppresses wind and sudden noises&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://us.technics.com/pages/2-call-performance&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;us.technics.com&lt;/a&gt; Technics: ‘The AZ100 is equipped with AI trained on 500 million pieces of audio&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;poly_free60_mics&lt;/td&gt;&lt;td&gt;Poly Voyager Free 60: three microphones per earbud, WindSmart wind protection, NoiseBlockAI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hp.com/content/dam/sites/garage-press/press/press-kits/2023/ces-2023/specifications/Poly%20Voyager%20Free%2060%20Series%20Spec%20Sheet.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hp.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;poly_free60_teams&lt;/td&gt;&lt;td&gt;Poly Voyager Free 60 is Microsoft Teams Certified (Teams version only), so the plain UC model is not necessarily certified&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hp.com/content/dam/sites/garage-press/press/press-kits/2023/ces-2023/specifications/Poly%20Voyager%20Free%2060%20Series%20Spec%20Sheet.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hp.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;teams_cert_meaning&lt;/td&gt;&lt;td&gt;Teams certification checks audio quality and Teams call control (e.g. mute sync); Microsoft’s two pages state no noise-removal strength criterion&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/microsoftteams/devices/usb-devices&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;teams_native_bt_limits&lt;/td&gt;&lt;td&gt;Native Bluetooth Teams certification covers Classic Bluetooth only (LE Audio not certified); aftermarket USB Bluetooth adapters are not certified&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/microsoftteams/devices/bluetooth-devices&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; Microsoft Learn: ‘This certification is currently for Classic Bluetooth devices.&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;xm6_wind_mic&lt;/td&gt;&lt;td&gt;Streamlined body, micro-perforated mic area and an airflow structure to reduce wind noise, which also helps what the caller hears&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sony.jp/headphone/products/WF-1000XM6/feature_4.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sony.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Check which earbuds publish call features for a noisy office: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result and a matching product for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;







































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Coworkers talking, Teams, Windows&lt;/td&gt;&lt;td&gt;✓ 6 models publish a feature for coworkers talking. Sony WF-1000XM6, Sony WF-1000XM5, Bose QuietComfort Ultra Earbuds (2nd Gen), Jabra Elite 10 (1st Gen), Google Pixel Buds Pro 2, Apple AirPods Pro 3. For voices around you, look for a way of picking out your own voice (bone-conduction or motion sensors, mics aimed at your mouth) or a stated reduction of nearby speech. The Bose QuietComfort Ultra Earbuds (2nd Gen) are the ones that clearly say they cut coworkers’ voices in calls. ANC cuts the noise you hear; the noise the other person hears is handled by a separate call feature. More mics don’t mean clearer calls (the Sony WF-1000XM6’s 8 mics are for ANC; calls use 2). Bose doesn’t say whether its 8 mics include the ANC ones. Teams certification covers audio quality and call controls such as mute sync; Microsoft’s pages don’t list a standard for noise removal. For earbuds paired straight to the PC, certification covers classic Bluetooth only; LE Audio and setups with a separate USB Bluetooth adapter are outside it. The only certification found is for the Teams version of the Poly Voyager Free 60. The Amazon listing is the UC version from a third-party seller, so it isn’t recommended. On Windows, once a call app uses the mic, audio switches to the call profile (HFP) and turns mono. The exception is LE Audio (an LE Audio PC on Windows 11 24H2 or later and earbuds that keep stereo in calls); no model here officially confirms stereo during calls. AirPods Pro 3 Voice Isolation works in calls on an iPhone, iPad or Mac; Apple doesn’t say whether it works on Windows&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-14-earbuds-noisy-office-mic/?earbuds-noisy-office-mic-finder-noise=voice&amp;amp;earbuds-noisy-office-mic-finder-app=teams&amp;amp;earbuds-noisy-office-mic-finder-pc=win#earbuds-noisy-office-mic-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Keyboard typing, Teams, Windows&lt;/td&gt;&lt;td&gt;△ None names keyboard typing. 4 models publish AI noise removal. Sony WF-1000XM6, Bose QuietComfort Ultra Earbuds (2nd Gen), Technics EAH-AZ100, Poly Voyager Free 60. No official page checked names keyboard clatter or air-conditioning hum as something it removes. Even models with AI noise removal don’t say which sounds it handles or how well. ANC cuts the noise you hear; the noise the other person hears is handled by a separate call feature. More mics don’t mean clearer calls (the Sony WF-1000XM6’s 8 mics are for ANC; calls use 2). Bose doesn’t say whether its 8 mics include the ANC ones. Teams certification covers audio quality and call controls such as mute sync; Microsoft’s pages don’t list a standard for noise removal. For earbuds paired straight to the PC, certification covers classic Bluetooth only; LE Audio and setups with a separate USB Bluetooth adapter are outside it. The only certification found is for the Teams version of the Poly Voyager Free 60. The Amazon listing is the UC version from a third-party seller, so it isn’t recommended. On Windows, once a call app uses the mic, audio switches to the call profile (HFP) and turns mono. The exception is LE Audio (an LE Audio PC on Windows 11 24H2 or later and earbuds that keep stereo in calls); no model here officially confirms stereo during calls. AirPods Pro 3 Voice Isolation works in calls on an iPhone, iPad or Mac; Apple doesn’t say whether it works on Windows&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-14-earbuds-noisy-office-mic/?earbuds-noisy-office-mic-finder-noise=keyboard&amp;amp;earbuds-noisy-office-mic-finder-app=teams&amp;amp;earbuds-noisy-office-mic-finder-pc=win#earbuds-noisy-office-mic-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Air conditioning, Teams, Windows&lt;/td&gt;&lt;td&gt;△ None names air conditioning. 4 models publish AI noise removal. Sony WF-1000XM6, Bose QuietComfort Ultra Earbuds (2nd Gen), Technics EAH-AZ100, Poly Voyager Free 60. No official page checked names keyboard clatter or air-conditioning hum as something it removes. Even models with AI noise removal don’t say which sounds it handles or how well. ANC cuts the noise you hear; the noise the other person hears is handled by a separate call feature. More mics don’t mean clearer calls (the Sony WF-1000XM6’s 8 mics are for ANC; calls use 2). Bose doesn’t say whether its 8 mics include the ANC ones. Teams certification covers audio quality and call controls such as mute sync; Microsoft’s pages don’t list a standard for noise removal. For earbuds paired straight to the PC, certification covers classic Bluetooth only; LE Audio and setups with a separate USB Bluetooth adapter are outside it. The only certification found is for the Teams version of the Poly Voyager Free 60. The Amazon listing is the UC version from a third-party seller, so it isn’t recommended. On Windows, once a call app uses the mic, audio switches to the call profile (HFP) and turns mono. The exception is LE Audio (an LE Audio PC on Windows 11 24H2 or later and earbuds that keep stereo in calls); no model here officially confirms stereo during calls. AirPods Pro 3 Voice Isolation works in calls on an iPhone, iPad or Mac; Apple doesn’t say whether it works on Windows&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-14-earbuds-noisy-office-mic/?earbuds-noisy-office-mic-finder-noise=hvac&amp;amp;earbuds-noisy-office-mic-finder-app=teams&amp;amp;earbuds-noisy-office-mic-finder-pc=win#earbuds-noisy-office-mic-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wind (window or outdoors), Teams, Windows&lt;/td&gt;&lt;td&gt;✓ 7 models publish a feature for wind (window or outdoors). Sony WF-1000XM6, Sony WF-1000XM5, Bose QuietComfort Ultra Earbuds (2nd Gen), Jabra Elite 10 (1st Gen), Google Pixel Buds Pro 2, Technics EAH-AZ100, Poly Voyager Free 60. For wind, look for a stated wind measure (mic design, mesh, wind mode, AI). ANC cuts the noise you hear; the noise the other person hears is handled by a separate call feature. More mics don’t mean clearer calls (the Sony WF-1000XM6’s 8 mics are for ANC; calls use 2). Bose doesn’t say whether its 8 mics include the ANC ones. Teams certification covers audio quality and call controls such as mute sync; Microsoft’s pages don’t list a standard for noise removal. For earbuds paired straight to the PC, certification covers classic Bluetooth only; LE Audio and setups with a separate USB Bluetooth adapter are outside it. The only certification found is for the Teams version of the Poly Voyager Free 60. The Amazon listing is the UC version from a third-party seller, so it isn’t recommended. On Windows, once a call app uses the mic, audio switches to the call profile (HFP) and turns mono. The exception is LE Audio (an LE Audio PC on Windows 11 24H2 or later and earbuds that keep stereo in calls); no model here officially confirms stereo during calls. AirPods Pro 3 Voice Isolation works in calls on an iPhone, iPad or Mac; Apple doesn’t say whether it works on Windows&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-14-earbuds-noisy-office-mic/?earbuds-noisy-office-mic-finder-noise=wind&amp;amp;earbuds-noisy-office-mic-finder-app=teams&amp;amp;earbuds-noisy-office-mic-finder-pc=win#earbuds-noisy-office-mic-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wind (window or outdoors), Teams, Mac&lt;/td&gt;&lt;td&gt;✓ 8 models publish a feature for wind (window or outdoors). Sony WF-1000XM6, Sony WF-1000XM5, Bose QuietComfort Ultra Earbuds (2nd Gen), Jabra Elite 10 (1st Gen), Google Pixel Buds Pro 2, Apple AirPods Pro 3, Technics EAH-AZ100, Poly Voyager Free 60. For wind, look for a stated wind measure (mic design, mesh, wind mode, AI). ANC cuts the noise you hear; the noise the other person hears is handled by a separate call feature. More mics don’t mean clearer calls (the Sony WF-1000XM6’s 8 mics are for ANC; calls use 2). Bose doesn’t say whether its 8 mics include the ANC ones. Teams certification covers audio quality and call controls such as mute sync; Microsoft’s pages don’t list a standard for noise removal. For earbuds paired straight to the PC, certification covers classic Bluetooth only; LE Audio and setups with a separate USB Bluetooth adapter are outside it. The only certification found is for the Teams version of the Poly Voyager Free 60. The Amazon listing is the UC version from a third-party seller, so it isn’t recommended. How calls work on a Mac wasn’t checked for this guide. AirPods Pro 3 Voice Isolation works in Mac calls&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-14-earbuds-noisy-office-mic/?earbuds-noisy-office-mic-finder-noise=wind&amp;amp;earbuds-noisy-office-mic-finder-app=teams&amp;amp;earbuds-noisy-office-mic-finder-pc=mac#earbuds-noisy-office-mic-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Coworkers talking, Zoom, Windows&lt;/td&gt;&lt;td&gt;✓ 6 models publish a feature for coworkers talking. Sony WF-1000XM6, Sony WF-1000XM5, Bose QuietComfort Ultra Earbuds (2nd Gen), Jabra Elite 10 (1st Gen), Google Pixel Buds Pro 2, Apple AirPods Pro 3. For voices around you, look for a way of picking out your own voice (bone-conduction or motion sensors, mics aimed at your mouth) or a stated reduction of nearby speech. The Bose QuietComfort Ultra Earbuds (2nd Gen) are the ones that clearly say they cut coworkers’ voices in calls. ANC cuts the noise you hear; the noise the other person hears is handled by a separate call feature. More mics don’t mean clearer calls (the Sony WF-1000XM6’s 8 mics are for ANC; calls use 2). Bose doesn’t say whether its 8 mics include the ANC ones. Teams certification is for Teams; it isn’t a standard for calls in Zoom or other apps. On Windows, once a call app uses the mic, audio switches to the call profile (HFP) and turns mono. The exception is LE Audio (an LE Audio PC on Windows 11 24H2 or later and earbuds that keep stereo in calls); no model here officially confirms stereo during calls. AirPods Pro 3 Voice Isolation works in calls on an iPhone, iPad or Mac; Apple doesn’t say whether it works on Windows&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-14-earbuds-noisy-office-mic/?earbuds-noisy-office-mic-finder-noise=voice&amp;amp;earbuds-noisy-office-mic-finder-app=zoom&amp;amp;earbuds-noisy-office-mic-finder-pc=win#earbuds-noisy-office-mic-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>earbuds</category><category>noise cancelling</category><category>calls</category><category>Teams</category><category>microphone</category><category>remote work</category></item><item><title>What Size Power Bank Do You Need for a 3-Day Trip?</title><link>https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/</guid><description>On a 3-day trip at 60% efficiency, if you can charge at the hotel each night, a phone alone just barely gets by on 10,000mAh. A tablet or handheld console needs 20,000mAh, and a laptop 25,000mAh. With no outlet for 3 days and a phone alone, carry 20,000mAh and 10,000mAh banks.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;On a 3-day trip at 60% efficiency, if you can charge at the hotel each night, a phone alone just barely gets by on 10,000mAh. A tablet or handheld console needs 20,000mAh, and a laptop 25,000mAh. With no outlet for 3 days and a phone alone, carry 20,000mAh and 10,000mAh banks.&lt;/p&gt;
&lt;h2 id=&quot;power-bank-size-for-a-3-day-trip-at-a-glance&quot;&gt;Power bank size for a 3-day trip at a glance&lt;/h2&gt;
&lt;p&gt;Assuming 1 charge a day (half for tablets and laptops) at 60% efficiency, the size you need comes out like this.&lt;/p&gt;






























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;What you carry&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Can charge at the hotel each night&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;No outlet for 3 days&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Phone only&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;10,000mAh (just barely)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Two banks: 20,000mAh and 10,000mAh&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Phone + tablet (iPad Air 11-inch)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;20,000mAh&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Two banks: 25,000mAh and 25,000mAh&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Phone + handheld console (Nintendo Switch 2)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;20,000mAh&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Some models need more than two banks. Charge fewer times or recharge on the way&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Phone + laptop (MacBook Air 13-inch)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;25,000mAh&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Some models need more than two banks. Charge fewer times or recharge on the way&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;5,000mAh may not fill even the iPhone 18 Pro, the smallest battery here, from 0% to 100% once. Use it as a half-day spare, not as your main bank for 3 days.&lt;/p&gt;
&lt;h2 id=&quot;why-a-power-bank-charges-less-than-its-label-says&quot;&gt;Why a power bank charges less than its label says&lt;/h2&gt;
&lt;p&gt;The label shows the battery inside the bank, and some power is lost while charging. Wh (watt-hours) is capacity times voltage, so it compares different devices. Conversion efficiency is the share you can actually use.&lt;/p&gt;
&lt;p&gt;A 10,000mAh power bank holds 37Wh, and about 22-26Wh (60-70%) reaches your device. Power is lost as heat when it is drawn out over USB and again when the device battery charges. The makers’ figure of about 6,000-7,000mAh counts at USB’s 5V (30-35Wh), while this article assumes more loss.&lt;/p&gt;
&lt;p&gt;10,000mAh charges an iPhone 18 Pro about 1.3 to 1.8 times. Dividing 10,000mAh by its 4,056mAh battery gives 2.5, but power is lost along the way, so the real number is lower. The 4,056mAh is an EU-label figure from press reports; Apple does not publish it.&lt;/p&gt;
&lt;p&gt;Per the makers’ figures as of October 2026, wireless charging is less efficient than a cable, so expect fewer charges than the wired figures here..&lt;/p&gt;
&lt;h2 id=&quot;charging-at-the-hotel-and-not-charging&quot;&gt;Charging at the hotel, and not charging&lt;/h2&gt;
&lt;p&gt;If you can charge each night and carry only a phone, 10,000mAh just barely covers a day. The margin is only about 0.8Wh. The Pro Max’s 5,391mAh is an EU-label figure from press reports (Apple does not publish it), and the US models are unchecked, so 20,000mAh is safer for a Pro Max.&lt;/p&gt;
&lt;p&gt;With no outlet for 3 days, a phone alone needs 20,000mAh and 10,000mAh banks. A tablet or console raises the need.&lt;/p&gt;
&lt;p&gt;An iPad Air 11-inch with a Pro Max needs about 105.7Wh; two 25,000mAh banks (about 108Wh) cover it. With a Switch 2, an iPhone 18 Pro needs about 107.2Wh and just barely fits, but a Pro Max needs about 122.6Wh and does not. A Steam Deck or MacBook Air does not fit, so charge fewer times or recharge on the way.&lt;/p&gt;
&lt;p&gt;Per Amtrak’s website, every seat in Amtrak unreserved coach has a 120V outlet, so charging on board lets you carry less. It varies by train and service.&lt;/p&gt;
&lt;h2 id=&quot;how-to-check-your-own-devices&quot;&gt;How to check your own devices&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Find each device’s battery capacity. If it’s listed in Wh, use that. If it’s only in mAh, convert it to Wh in the next step. The table below shows which unit is published.&lt;/li&gt;
&lt;li&gt;Multiply mAh × voltage ÷ 1000 to get Wh. The voltage wasn’t found in the official specs, so use 3.85 V to avoid underestimating.&lt;/li&gt;
&lt;li&gt;Multiply by your charges from the bank: one day’s worth if you can charge each night, all the days if you can’t. A phone is 1 charge a day.&lt;/li&gt;
&lt;li&gt;Multiply the power bank’s Wh by the conversion efficiency from the section above to get what you can actually use. Compare that with your total.&lt;/li&gt;
&lt;/ol&gt;

















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Device&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;What’s published&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;iPad, MacBook&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Wh&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Galaxy, Pixel, Switch 2&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;mAh (voltage not published)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;To share one bank, add each person’s Wh and pick a size from the table. This assumes you can charge each night and each person charges a phone once a day. If both carry only a phone, two of the largest phone here need about 41.6Wh, so 20,000mAh (at least 43.2Wh usable) is the guide.&lt;/p&gt;
&lt;p&gt;With a camera, add its battery Wh: Sony’s NP-FZ100 is 16.4Wh, and the GoPro Enduro is about 7.3Wh at an assumed 3.85V. A phone of about 20.8Wh plus the NP-FZ100 comes to about 37.2Wh, or 28.1Wh with the GoPro. Both fit within 20,000mAh if you charge one camera battery a day; a battery listed only in mAh needs its voltage to get Wh.&lt;/p&gt;
&lt;p&gt;Apple Watch and AirPods don’t publish their Wh, so they aren’t counted.&lt;/p&gt;
&lt;section id=&quot;power-bank-trip-calculator&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;power-bank-trip-calculator-title&quot;&gt; &lt;h3 id=&quot;power-bank-trip-calculator-title&quot;&gt;Calculate the power bank size for your trip&lt;/h3&gt; &lt;p&gt;Pick the devices you bring (phone, tablet, handheld console, laptop), the number of days and whether you can charge at the hotel each night. It shows the Wh you need, which of 5,000, 10,000, 20,000 and 25,000mAh is enough, and how many charges each device gets.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;nano5k&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Anker Nano Power Bank (5000mAh, MagGo, Slim)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61qzh2AHxML._AC_SY300_SX300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Anker Nano Power Bank (5000mAh, MagGo, Slim)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F6LBT3ZX?q=Anker+Nano+Power+Bank+%285000mAh%2C+MagGo%2C+Slim%29&amp;amp;us=B0F8HXYD46&amp;amp;l=en&quot; aria-label=&quot;View Anker Nano Power Bank (5000mAh, MagGo, Slim) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;maggo10k_slim&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Anker MagGo Power Bank (10000mAh, Slim)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/618crocn6IL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Anker MagGo Power Bank (10000mAh, Slim)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DB17C63X?q=Anker+MagGo+Power+Bank+%2810000mAh%2C+Slim%29&amp;amp;us=B0D7DKJ75M&amp;amp;l=en&quot; aria-label=&quot;View Anker MagGo Power Bank (10000mAh, Slim) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;belkin10k&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Belkin BoostCharge 10000mAh 20W BPB021&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/51XEgfFIMbL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Belkin BoostCharge 10000mAh 20W BPB021&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DFYCSRB2?q=Belkin+BoostCharge+10000mAh+20W+BPB021&amp;amp;l=en&quot; aria-label=&quot;View Belkin BoostCharge 10000mAh 20W BPB021 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;anker_a1383&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Anker Power Bank (20000mAh, 87W, Built-In USB-C ケーブル) A1383&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61jWG2JyYNL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Anker Power Bank (20000mAh, 87W, Built-In USB-C ケーブル) A1383&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CXNVT5J4?q=Anker+Power+Bank+%2820000mAh%2C+87W%2C+Built-In+USB-C+%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB%29+A1383&amp;amp;us=B0CXDXP8VR&amp;amp;l=en&quot; aria-label=&quot;View Anker Power Bank (20000mAh, 87W, Built-In USB-C ケーブル) A1383 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;anker_a1695&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Anker Power Bank 25000mAh 165W A1695&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61CF1s8tz1L._AC_SY300_SX300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Anker Power Bank 25000mAh 165W A1695&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DT4RGDSJ?q=Anker+Power+Bank+25000mAh+165W+A1695&amp;amp;us=B0DCBB2YTR&amp;amp;l=en&quot; aria-label=&quot;View Anker Power Bank 25000mAh 165W A1695 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;iniu_p62&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for INIU 20000mAh 65W Laptop Power Bank (P62)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/716OMZE8ogL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;INIU 20000mAh 65W Laptop Power Bank (P62)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DB86W481?q=INIU+20000mAh+65W+Laptop+Power+Bank+%28P62%29&amp;amp;us=B0DB86W481&amp;amp;l=en&quot; aria-label=&quot;View INIU 20000mAh 65W Laptop Power Bank (P62) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;caps&quot;:[5000,10000,20000,25000],&quot;days&quot;:[1,2,3,4,5,6,7],&quot;devices&quot;:{&quot;p18&quot;:{&quot;kind&quot;:&quot;phone&quot;,&quot;mah&quot;:4056,&quot;ja&quot;:&quot;iPhone 18 Pro&quot;,&quot;en&quot;:&quot;iPhone 18 Pro&quot;,&quot;src&quot;:&quot;iphone18pro_battery_mah_eu&quot;,&quot;id&quot;:&quot;p18&quot;},&quot;p18m&quot;:{&quot;kind&quot;:&quot;phone&quot;,&quot;mah&quot;:5391,&quot;ja&quot;:&quot;iPhone 18 Pro Max&quot;,&quot;en&quot;:&quot;iPhone 18 Pro Max&quot;,&quot;src&quot;:&quot;iphone18promax_battery_mah_eu&quot;,&quot;id&quot;:&quot;p18m&quot;},&quot;p17m&quot;:{&quot;kind&quot;:&quot;phone&quot;,&quot;mah&quot;:4823,&quot;ja&quot;:&quot;iPhone 17 Pro Max&quot;,&quot;en&quot;:&quot;iPhone 17 Pro Max&quot;,&quot;src&quot;:&quot;iphone17promax_battery_mah_eu&quot;,&quot;id&quot;:&quot;p17m&quot;},&quot;s26&quot;:{&quot;kind&quot;:&quot;phone&quot;,&quot;mah&quot;:5000,&quot;ja&quot;:&quot;Galaxy S26 Ultra&quot;,&quot;en&quot;:&quot;Galaxy S26 Ultra&quot;,&quot;src&quot;:&quot;galaxy_s26_ultra_typical_mah&quot;,&quot;id&quot;:&quot;s26&quot;},&quot;ipad11&quot;:{&quot;kind&quot;:&quot;tablet&quot;,&quot;wh&quot;:28.93,&quot;ja&quot;:&quot;iPad Air 11インチ&quot;,&quot;en&quot;:&quot;iPad Air 11-inch&quot;,&quot;src&quot;:&quot;ipad_air_11_wh&quot;,&quot;id&quot;:&quot;ipad11&quot;},&quot;ipad13&quot;:{&quot;kind&quot;:&quot;tablet&quot;,&quot;wh&quot;:36.59,&quot;ja&quot;:&quot;iPad Air 13インチ&quot;,&quot;en&quot;:&quot;iPad Air 13-inch&quot;,&quot;src&quot;:&quot;ipad_air_13_wh&quot;,&quot;id&quot;:&quot;ipad13&quot;},&quot;sw2&quot;:{&quot;kind&quot;:&quot;game&quot;,&quot;mah&quot;:5220,&quot;ja&quot;:&quot;Nintendo Switch 2&quot;,&quot;en&quot;:&quot;Nintendo Switch 2&quot;,&quot;src&quot;:&quot;switch2_battery_mah&quot;,&quot;id&quot;:&quot;sw2&quot;},&quot;deck&quot;:{&quot;kind&quot;:&quot;game&quot;,&quot;wh&quot;:50,&quot;ja&quot;:&quot;Steam Deck OLED&quot;,&quot;en&quot;:&quot;Steam Deck OLED&quot;,&quot;src&quot;:&quot;steamdeck_oled_whr&quot;,&quot;id&quot;:&quot;deck&quot;},&quot;mba13&quot;:{&quot;kind&quot;:&quot;laptop&quot;,&quot;wh&quot;:53.8,&quot;ja&quot;:&quot;MacBook Air 13インチ&quot;,&quot;en&quot;:&quot;MacBook Air 13-inch&quot;,&quot;src&quot;:&quot;macbook_air_13_wh&quot;,&quot;id&quot;:&quot;mba13&quot;},&quot;mba15&quot;:{&quot;kind&quot;:&quot;laptop&quot;,&quot;wh&quot;:66.5,&quot;ja&quot;:&quot;MacBook Air 15インチ&quot;,&quot;en&quot;:&quot;MacBook Air 15-inch&quot;,&quot;src&quot;:&quot;macbook_air_15_wh&quot;,&quot;id&quot;:&quot;mba15&quot;}},&quot;A&quot;:{&quot;worst&quot;:{&quot;bankV&quot;:3.6,&quot;eff&quot;:0.6,&quot;devV&quot;:3.85,&quot;window&quot;:1,&quot;daily&quot;:{&quot;phone&quot;:1,&quot;tablet&quot;:0.5,&quot;game&quot;:1,&quot;laptop&quot;:0.5}},&quot;best&quot;:{&quot;bankV&quot;:3.85,&quot;eff&quot;:0.7,&quot;devV&quot;:3.6,&quot;window&quot;:0.8,&quot;daily&quot;:{&quot;phone&quot;:1,&quot;tablet&quot;:0.5,&quot;game&quot;:1,&quot;laptop&quot;:0.5}}},&quot;daily&quot;:{&quot;phone&quot;:1,&quot;tablet&quot;:0.5,&quot;game&quot;:1,&quot;laptop&quot;:0.5},&quot;groups&quot;:{&quot;phone&quot;:[&quot;p18&quot;,&quot;p18m&quot;,&quot;p17m&quot;,&quot;s26&quot;],&quot;tablet&quot;:[&quot;ipad11&quot;,&quot;ipad13&quot;],&quot;game&quot;:[&quot;sw2&quot;,&quot;deck&quot;],&quot;laptop&quot;:[&quot;mba13&quot;,&quot;mba15&quot;]},&quot;limitWh&quot;:100,&quot;products&quot;:{&quot;nano5k&quot;:{&quot;model&quot;:&quot;nano5k&quot;,&quot;cap&quot;:5000,&quot;out&quot;:20,&quot;wh&quot;:18,&quot;ports&quot;:2},&quot;maggo10k_slim&quot;:{&quot;model&quot;:&quot;maggo10k_slim&quot;,&quot;cap&quot;:10000,&quot;out&quot;:30,&quot;wh&quot;:36,&quot;ports&quot;:2},&quot;maggo10k&quot;:{&quot;model&quot;:&quot;maggo10k&quot;,&quot;cap&quot;:10000,&quot;out&quot;:27,&quot;wh&quot;:36,&quot;ports&quot;:2},&quot;ugreen_magflow&quot;:{&quot;model&quot;:&quot;ugreen_magflow&quot;,&quot;cap&quot;:10000,&quot;out&quot;:30,&quot;wh&quot;:36,&quot;ports&quot;:3},&quot;belkin10k&quot;:{&quot;model&quot;:&quot;belkin10k&quot;,&quot;cap&quot;:10000,&quot;out&quot;:20,&quot;wh&quot;:36,&quot;ports&quot;:2},&quot;anker_fusion10k&quot;:{&quot;model&quot;:&quot;anker_fusion10k&quot;,&quot;cap&quot;:10000,&quot;out&quot;:30,&quot;wh&quot;:36,&quot;ports&quot;:2},&quot;anker_a1383&quot;:{&quot;model&quot;:&quot;anker_a1383&quot;,&quot;cap&quot;:20000,&quot;out&quot;:65,&quot;wh&quot;:72,&quot;ports&quot;:3},&quot;ugreen_pb536&quot;:{&quot;model&quot;:&quot;ugreen_pb536&quot;,&quot;cap&quot;:20000,&quot;out&quot;:45,&quot;wh&quot;:72,&quot;ports&quot;:3},&quot;anker_a1695&quot;:{&quot;model&quot;:&quot;anker_a1695&quot;,&quot;cap&quot;:25000,&quot;out&quot;:100,&quot;wh&quot;:90,&quot;ports&quot;:4},&quot;iniu_p62&quot;:{&quot;model&quot;:&quot;iniu_p62&quot;,&quot;cap&quot;:20000,&quot;out&quot;:65,&quot;wh&quot;:72,&quot;ports&quot;:3},&quot;ugreen_165w_20k&quot;:{&quot;model&quot;:&quot;ugreen_165w_20k&quot;,&quot;cap&quot;:20000,&quot;out&quot;:165,&quot;wh&quot;:72,&quot;ports&quot;:2}},&quot;buy&quot;:{&quot;nano5k&quot;:{&quot;type&quot;:&quot;power_bank&quot;,&quot;ja&quot;:&quot;Anker Nano Power Bank (5000mAh, MagGo, Slim)&quot;,&quot;en&quot;:&quot;Anker Nano Power Bank (5000mAh, MagGo, Slim)&quot;,&quot;jp&quot;:&quot;B0F6LBT3ZX&quot;,&quot;us&quot;:&quot;B0F8HXYD46&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0F6LBT3ZX&quot;,&quot;asinUS&quot;:&quot;B0F8HXYD46&quot;,&quot;title&quot;:&quot;Anker Nano Power Bank (5000mAh, MagGo, Slim)&quot;,&quot;searchQuery&quot;:&quot;Anker Nano Power Bank (5000mAh, MagGo, Slim)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51Y308l82nL._AC_SY300_SX300_QL70_ML2_.jpg&quot;,&quot;jan&quot;:&quot;4571651002904&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0F6LBT3ZX&quot;,&quot;asinUS&quot;:&quot;B0F8HXYD46&quot;,&quot;title&quot;:&quot;Anker Nano Power Bank (5000mAh, MagGo, Slim)&quot;,&quot;searchQuery&quot;:&quot;Anker Nano Power Bank (5000mAh, MagGo, Slim)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61qzh2AHxML._AC_SY300_SX300_QL70_FMwebp_.jpg&quot;}},&quot;rank_jp&quot;:2,&quot;rank_us&quot;:2},&quot;maggo10k_slim&quot;:{&quot;type&quot;:&quot;power_bank&quot;,&quot;ja&quot;:&quot;Anker MagGo Power Bank (10000mAh, Slim)&quot;,&quot;en&quot;:&quot;Anker MagGo Power Bank (10000mAh, Slim)&quot;,&quot;jp&quot;:&quot;B0DB17C63X&quot;,&quot;us&quot;:&quot;B0D7DKJ75M&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DB17C63X&quot;,&quot;asinUS&quot;:&quot;B0D7DKJ75M&quot;,&quot;title&quot;:&quot;Anker MagGo Power Bank (10000mAh, Slim)&quot;,&quot;searchQuery&quot;:&quot;Anker MagGo Power Bank (10000mAh, Slim)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/513OxLYzC1L._AC_SY300_SX300_QL70_ML2_.jpg&quot;,&quot;jan&quot;:&quot;4571411223044&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DB17C63X&quot;,&quot;asinUS&quot;:&quot;B0D7DKJ75M&quot;,&quot;title&quot;:&quot;Anker MagGo Power Bank (10000mAh, Slim)&quot;,&quot;searchQuery&quot;:&quot;Anker MagGo Power Bank (10000mAh, Slim)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/618crocn6IL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot;}},&quot;rank_jp&quot;:4,&quot;rank_us&quot;:4},&quot;maggo10k&quot;:{&quot;type&quot;:&quot;power_bank&quot;,&quot;ja&quot;:&quot;Anker MagGo Power Bank (10K) A1654&quot;,&quot;en&quot;:&quot;Anker MagGo Power Bank (10K) A1654&quot;,&quot;jp&quot;:&quot;B0CFTT82RH&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CFTT82RH&quot;,&quot;title&quot;:&quot;Anker MagGo Power Bank (10K) A1654&quot;,&quot;searchQuery&quot;:&quot;Anker MagGo Power Bank (10K) A1654&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/6180rjTFNcL._AC_SY300_SX300_QL70_ML2_.jpg&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:5},&quot;belkin10k&quot;:{&quot;type&quot;:&quot;power_bank&quot;,&quot;ja&quot;:&quot;Belkin BoostCharge モバイルバッテリー 10000mAh 20W（ケーブル内蔵）BPB021&quot;,&quot;en&quot;:&quot;Belkin BoostCharge 10000mAh 20W BPB021&quot;,&quot;jp&quot;:&quot;B0DFYCSRB2&quot;,&quot;us&quot;:&quot;B0DFYCSRB2&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DFYCSRB2&quot;,&quot;title&quot;:&quot;Belkin BoostCharge モバイルバッテリー 10000mAh 20W（ケーブル内蔵）BPB021&quot;,&quot;searchQuery&quot;:&quot;Belkin BoostCharge モバイルバッテリー 10000mAh 20W（ケーブル内蔵）BPB021&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51oLxq7g7-L._AC_SY300_SX300_QL70_ML2_.jpg&quot;,&quot;jan&quot;:&quot;0745883899425&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DFYCSRB2&quot;,&quot;title&quot;:&quot;Belkin BoostCharge 10000mAh 20W BPB021&quot;,&quot;searchQuery&quot;:&quot;Belkin BoostCharge 10000mAh 20W BPB021&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51XEgfFIMbL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot;}},&quot;rank_jp&quot;:0,&quot;rank_us&quot;:0},&quot;anker_fusion10k&quot;:{&quot;type&quot;:&quot;power_bank&quot;,&quot;ja&quot;:&quot;Anker Power Bank (10000mAh, Fusion, Built-In USB-C ケーブル) A1637&quot;,&quot;en&quot;:&quot;Anker Power Bank (10000mAh, Fusion, Built-In USB-C ケーブル) A1637&quot;,&quot;jp&quot;:&quot;B0CX4C1TVK&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CX4C1TVK&quot;,&quot;title&quot;:&quot;Anker Power Bank (10000mAh, Fusion, Built-In USB-C ケーブル) A1637&quot;,&quot;searchQuery&quot;:&quot;Anker Power Bank (10000mAh, Fusion, Built-In USB-C ケーブル) A1637&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51SqoukfllL._AC_SY300_SX300_QL70_ML2_.jpg&quot;,&quot;jan&quot;:&quot;4571411219665&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:3},&quot;anker_a1383&quot;:{&quot;type&quot;:&quot;power_bank&quot;,&quot;ja&quot;:&quot;Anker Power Bank (20000mAh, 87W, Built-In USB-C ケーブル) A1383&quot;,&quot;en&quot;:&quot;Anker Power Bank (20000mAh, 87W, Built-In USB-C ケーブル) A1383&quot;,&quot;jp&quot;:&quot;B0CXNVT5J4&quot;,&quot;us&quot;:&quot;B0CXDXP8VR&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CXNVT5J4&quot;,&quot;asinUS&quot;:&quot;B0CXDXP8VR&quot;,&quot;title&quot;:&quot;Anker Power Bank (20000mAh, 87W, Built-In USB-C ケーブル) A1383&quot;,&quot;searchQuery&quot;:&quot;Anker Power Bank (20000mAh, 87W, Built-In USB-C ケーブル) A1383&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/41nUldy2uhL._AC_SY300_SX300_QL70_ML2_.jpg&quot;,&quot;jan&quot;:&quot;4571411183867&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0CXNVT5J4&quot;,&quot;asinUS&quot;:&quot;B0CXDXP8VR&quot;,&quot;title&quot;:&quot;Anker Power Bank (20000mAh, 87W, Built-In USB-C ケーブル) A1383&quot;,&quot;searchQuery&quot;:&quot;Anker Power Bank (20000mAh, 87W, Built-In USB-C ケーブル) A1383&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61jWG2JyYNL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:3},&quot;anker_a1695&quot;:{&quot;type&quot;:&quot;power_bank&quot;,&quot;ja&quot;:&quot;Anker Power Bank (25000mAh, 165W, Built-In &amp; 巻取り式USB-Cケーブル) A1695&quot;,&quot;en&quot;:&quot;Anker Power Bank 25000mAh 165W A1695&quot;,&quot;jp&quot;:&quot;B0DT4RGDSJ&quot;,&quot;us&quot;:&quot;B0DCBB2YTR&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DT4RGDSJ&quot;,&quot;asinUS&quot;:&quot;B0DCBB2YTR&quot;,&quot;title&quot;:&quot;Anker Power Bank (25000mAh, 165W, Built-In &amp; 巻取り式USB-Cケーブル) A1695&quot;,&quot;searchQuery&quot;:&quot;Anker Power Bank (25000mAh, 165W, Built-In &amp; 巻取り式USB-Cケーブル) A1695&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61QMal+b+SL._AC_SY300_SX300_QL70_ML2_.jpg&quot;,&quot;jan&quot;:&quot;4571411229121&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DT4RGDSJ&quot;,&quot;asinUS&quot;:&quot;B0DCBB2YTR&quot;,&quot;title&quot;:&quot;Anker Power Bank 25000mAh 165W A1695&quot;,&quot;searchQuery&quot;:&quot;Anker Power Bank 25000mAh 165W A1695&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61CF1s8tz1L._AC_SY300_SX300_QL70_FMwebp_.jpg&quot;}},&quot;rank_jp&quot;:6,&quot;rank_us&quot;:5},&quot;iniu_p62&quot;:{&quot;type&quot;:&quot;power_bank&quot;,&quot;ja&quot;:&quot;INIU 20000mAh 65W Laptop Power Bank（P62）&quot;,&quot;en&quot;:&quot;INIU 20000mAh 65W Laptop Power Bank (P62)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DB86W481&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DB86W481&quot;,&quot;asinUS&quot;:&quot;B0DB86W481&quot;,&quot;title&quot;:&quot;INIU 20000mAh 65W Laptop Power Bank (P62)&quot;,&quot;searchQuery&quot;:&quot;INIU 20000mAh 65W Laptop Power Bank (P62)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/716OMZE8ogL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot;}},&quot;rank_us&quot;:1}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;power_bank&quot;:&quot;belkin10k&quot;},&quot;en&quot;:{&quot;power_bank&quot;:&quot;belkin10k&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;power-bank-trip-calculator&quot;;

(function () {
// モバイルバッテリーの容量 → 使える Wh → 機器ごとの充電回数（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 記事に依存しない: 機器の一覧・効率などの仮定・機器ごとの1回の充電量は全部引数で受ける（容量シリーズ5本で同じファイルをコピーして使う）。
//
// 仮定 a = { bankV, eff, devV, window, daily: { &lt;kind&gt;: 回/日 } }
//   bankV  : バッテリーのセルの公称電圧（V）。定格容量 mAh を Wh にする
//   eff    : 変換効率（0〜1）。セルの Wh のうち、機器の電池に入る割合（昇圧・ケーブル・機器側の充電の損失をまとめたもの）
//   devV   : 機器の電池の公称電圧（V）。mAh しか分からない機器の Wh の換算に使う（Wh が分かる機器は Wh をそのまま使う）
//   window : 1回の充電で満たす割合（0.8 = 20%→100%、1.0 = 0%→100%）
//   daily  : 機器の種類ごとの「1日にモバイルバッテリーから充電する回数」
// 機器 d = { id, kind, mah?, wh? }（mah か wh のどちらか）
// 旅程 trip = { days, recharge }（recharge: 毎晩コンセントで充電できるなら true → 1日分だけ持てばよい）

const usableWh = (mah, a) =&gt; (mah * a.bankV * a.eff) / 1000;
const deviceWh = (d, a) =&gt; (d.wh != null ? d.wh : (d.mah * a.devV) / 1000);
const perChargeWh = (d, a) =&gt; deviceWh(d, a) * a.window;
// その容量で、その機器を何回充電できるか（小数のまま。表示の丸めは呼び出し側で切り捨て）
const chargesFrom = (mah, d, a) =&gt; usableWh(mah, a) / perChargeWh(d, a);
// 旅程の間にバッテリーから充電する回数（毎晩充電できるなら1日分）
const tripDays = (trip) =&gt; (trip.recharge ? 1 : trip.days);
const chargesNeeded = (d, trip, a) =&gt; tripDays(trip) * (a.daily[d.kind] ?? 0);

// 旅程に要る Wh（機器の電池に入れる量の合計）。items は機器ごとの回数と Wh
function needWh(devs, trip, a) {
  const items = devs.map((d) =&gt; { const n = chargesNeeded(d, trip, a); return { id: d.id, kind: d.kind, charges: n, wh: n * perChargeWh(d, a) }; });
  return { total: items.reduce((s, x) =&gt; s + x.wh, 0), items };
}
// 要る Wh を定格容量（mAh）に戻す（その仮定のとき、これ以上の定格容量なら足りる）
const needMah = (devs, trip, a) =&gt; (needWh(devs, trip, a).total * 1000) / (a.bankV * a.eff);
const fitsCap = (mah, devs, trip, a) =&gt; usableWh(mah, a) &gt;= needWh(devs, trip, a).total - 1e-9;
// caps（昇順）のうち足りる最小の容量。足りなければ null
const smallestFit = (caps, devs, trip, a) =&gt; caps.find((c) =&gt; fitsCap(c, devs, trip, a)) ?? null;

// 仮定の幅の両端（A = { worst, best }）で判定: &quot;ok&quot;（不利な側でも足りる）/ &quot;cond&quot;（有利な側だけ足りる）/ &quot;ng&quot;（有利な側でも足りない）
function judge(mah, devs, trip, A) {
  if (fitsCap(mah, devs, trip, A.worst)) return &quot;ok&quot;;
  return fitsCap(mah, devs, trip, A.best) ? &quot;cond&quot; : &quot;ng&quot;;
}
// 容量ごとの判定と回数の幅（ツールの表・早見表に使う）
function capTable(caps, devs, trip, A) {
  return caps.map((mah) =&gt; ({
    mah, fit: judge(mah, devs, trip, A),
    usable: [usableWh(mah, A.worst), usableWh(mah, A.best)],
    per: devs.map((d) =&gt; ({ id: d.id, charges: [chargesFrom(mah, d, A.worst), chargesFrom(mah, d, A.best)] })),
  }));
}
// 仮定の幅（ranges: { bankV: [lo, hi], … , daily: { kind: [lo, hi] } }）から、足りるかに不利な側・有利な側の組を作る
function extremes(R) {
  const lo = (k) =&gt; R[k][0], hi = (k) =&gt; R[k][1];
  const d = (f) =&gt; Object.fromEntries(Object.entries(R.daily).map(([k, r]) =&gt; [k, f(r)]));
  return {
    worst: { bankV: lo(&quot;bankV&quot;), eff: lo(&quot;eff&quot;), devV: hi(&quot;devV&quot;), window: hi(&quot;window&quot;), daily: d((r) =&gt; r[1]) },
    best: { bankV: hi(&quot;bankV&quot;), eff: hi(&quot;eff&quot;), devV: lo(&quot;devV&quot;), window: lo(&quot;window&quot;), daily: d((r) =&gt; r[0]) },
  };
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力: スマホの機種の例・タブレット・携帯ゲーム機・ノートPC（なしも選べる）、日数、毎晩充電できるか。
// 結果: stack（積み上げ。2026-10-15 に型 C の比べる表から移した。姉妹記事 power-bank-long-haul-flight と同じ形）。機器ごとの要る Wh を積み、
// 5,000/10,000/20,000/25,000mAh の使える Wh の線と比べる。足りる最小の容量の線を強調する。値は model.mjs の needWh・capTable のまま（並べ替えだけ）。
// 判定は仮定の幅の両端（M.A.worst・M.A.best）: ○ 不利な側でも足りる / △ 有利な側だけ足りる / ✕ 足りない。1日の回数は記事の前提（M.daily）。
// 札: 毎晩充電できるときは日数を出さない（日数にかかわらず1日分。前から計算はそうしていた）
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    phone: &quot;スマホ&quot;, tablet: &quot;タブレット&quot;, game: &quot;ゲーム機&quot;, laptop: &quot;ノートPC&quot;, days: &quot;日数&quot;, recharge: &quot;毎晩の充電&quot;,
    noneOf: { phone: &quot;スマホなし&quot;, tablet: &quot;タブレットなし&quot;, game: &quot;ゲーム機なし&quot;, laptop: &quot;ノートPCなし&quot; }, rc: { yes: &quot;ホテルで充電できる&quot;, no: &quot;充電できない&quot; }, rcShort: { yes: &quot;できる&quot;, no: &quot;できない&quot; }, none: &quot;なし&quot;, rcKey: &quot;毎晩充電&quot;, day: (n) =&gt; `${n}日`,
    cap: (c) =&gt; `${c.toLocaleString(&quot;en-US&quot;)}mAh`,
    vOk: (c) =&gt; `○ ${c}で足ります`, vCond: (c) =&gt; `△ ${c}なら条件しだいで足ります`, vNg: (c) =&gt; `✕ ${c}でも足りません`, vNone: &quot;機器を1つ以上選んでください&quot;,
    need: (lo, hi, d) =&gt; `要る量は ${lo}〜${hi}Wh（${d}日分。機器の電池に入れる量）`,
    hotel: &quot;毎晩ホテルで充電できるので、日数にかかわらず1日分で計算しています&quot;,
    premise: (s) =&gt; `1日にモバイルバッテリーから充電する回数は、${s}として計算しています`,
    kinds: { phone: &quot;スマホ&quot;, tablet: &quot;タブレット&quot;, game: &quot;ゲーム機&quot;, laptop: &quot;ノートPC&quot; }, perDay: (k, n) =&gt; `${k} ${n}回`,
    split: &quot;1台で足りないときは、移動中に充電するか、2台に分けて持ちます（日本の航空会社の機内持ち込みは2個まで・160Wh以下）&quot;,
    wh100: (w) =&gt; `25,000mAh は、セル電圧 3.85V でも ${w}Wh 未満です（機内持ち込みの承認が要らない範囲）`,
    laptopOut: &quot;ノートPCを充電するなら、最大出力の大きい機種を選びます&quot;,
    wireless: &quot;ワイヤレス充電は有線より効率が悪く、回数は表より減ります&quot;,
    note: &quot;変換効率60〜70%（電力量で6〜7割。メーカーは USB の5V で数えて「10,000mAh で約6,000〜7,000mAh」と公表しており、それより余裕を見ています）、セル電圧3.6〜3.85V、1回の充電は20%または0%から100%まで、で計算しています。機器の電池の値はメーカー公表値（2026年10月の確認）です。実機では試していません。&quot;,
    spec: { cap: (c) =&gt; `${c.toLocaleString(&quot;en-US&quot;)}mAh`, out: (w) =&gt; `最大 ${w}W`, ports: (n) =&gt; `出力 ${n}ポート` },
    sep: &quot;・&quot;,
  },
  en: {
    phone: &quot;Phone&quot;, tablet: &quot;Tablet&quot;, game: &quot;Console&quot;, laptop: &quot;Laptop&quot;, days: &quot;Days&quot;, recharge: &quot;Nightly charging&quot;,
    noneOf: { phone: &quot;No phone&quot;, tablet: &quot;No tablet&quot;, game: &quot;No console&quot;, laptop: &quot;No laptop&quot; }, rc: { yes: &quot;Can charge at the hotel&quot;, no: &quot;No outlet&quot; }, rcShort: { yes: &quot;At the hotel&quot;, no: &quot;No outlet&quot; }, none: &quot;None&quot;, rcKey: &quot;Nightly&quot;,  day: (n) =&gt; `${n} day${n &gt; 1 ? &quot;s&quot; : &quot;&quot;}`,
    cap: (c) =&gt; `${c.toLocaleString(&quot;en-US&quot;)}mAh`,
    vOk: (c) =&gt; `✓ ${c} is enough`, vCond: (c) =&gt; `△ ${c} is enough only in some cases`, vNg: (c) =&gt; `✕ Even ${c} isn&apos;t enough`, vNone: &quot;Pick at least one device&quot;,
    need: (lo, hi, d) =&gt; `You need ${lo}–${hi}Wh (${d} day${d &gt; 1 ? &quot;s&quot; : &quot;&quot;}, energy into the device batteries)`,
    hotel: &quot;With hotel charging each night, it counts 1 day whatever the trip length&quot;,
    premise: (s) =&gt; `Charges per day from the bank: ${s}`,
    kinds: { phone: &quot;phone&quot;, tablet: &quot;tablet&quot;, game: &quot;console&quot;, laptop: &quot;laptop&quot; }, perDay: (k, n) =&gt; `${k} ${n}`,
    split: &quot;If 1 bank isn&apos;t enough, charge on the move or carry 2 banks (Japanese airlines allow 2 in the cabin, each 160Wh or less)&quot;,
    wh100: (w) =&gt; `25,000mAh stays under ${w}Wh even at 3.85V, so no airline approval is needed to carry it on`,
    laptopOut: &quot;To charge a laptop, pick a bank with a high maximum output&quot;,
    wireless: &quot;Wireless charging is less efficient than a cable, so you get fewer charges than shown&quot;,
    note: &quot;Calculated with 60-70% conversion efficiency (60-70% of the energy in Wh; makers say about 6,000-7,000mAh counted at USB 5V, and this allows more loss than that), 3.6-3.85V cells, and each charge filling from 20% or 0% to 100%. Device batteries are the makers&apos; published figures (checked October 2026). Not tested in hand.&quot;,
    spec: { cap: (c) =&gt; `${c.toLocaleString(&quot;en-US&quot;)}mAh`, out: (w) =&gt; `Up to ${w}W`, ports: (n) =&gt; `${n} output ports` },
    sep: &quot;, &quot;,
  },
};

const KIND_KEYS_ = [&quot;phone&quot;, &quot;tablet&quot;, &quot;game&quot;, &quot;laptop&quot;];
// 札に出す機種の短い名前（札の名前が種類を言うので、メーカー名と「インチ」は省く）
const SHORT_ = { p18: &quot;18 Pro&quot;, p18m: &quot;18 Pro Max&quot;, p17m: &quot;17 Pro Max&quot;, s26: &quot;S26 Ultra&quot;, ipad11: &quot;Air 11&quot;, ipad13: &quot;Air 13&quot;, sw2: &quot;Switch 2&quot;, deck: &quot;Deck OLED&quot;, mba13: &quot;Air 13&quot;, mba15: &quot;Air 15&quot; };

function fields(M, lang) {
  const t = T_[lang];
  const devOpts = (k) =&gt; [...M.groups[k].map((id) =&gt; ({ value: id, label: M.devices[id][lang], short: SHORT_[id] })), { value: &quot;none&quot;, label: t.noneOf[k], short: t.none }];
  return [
    { name: &quot;phone&quot;, type: &quot;select&quot;, label: t.phone, value: &quot;p18&quot;, options: devOpts(&quot;phone&quot;) },
    { name: &quot;tablet&quot;, type: &quot;select&quot;, label: t.tablet, value: &quot;none&quot;, options: devOpts(&quot;tablet&quot;) },
    { name: &quot;game&quot;, type: &quot;select&quot;, label: t.game, value: &quot;none&quot;, options: devOpts(&quot;game&quot;) },
    { name: &quot;laptop&quot;, type: &quot;select&quot;, label: t.laptop, value: &quot;none&quot;, options: devOpts(&quot;laptop&quot;) },
    // 毎晩充電できるなら日数にかかわらず1日分なので、日数の札は出さない
    { name: &quot;days&quot;, type: &quot;select&quot;, label: t.days, value: &quot;3&quot;, when: (s) =&gt; s.recharge !== &quot;yes&quot;, options: M.days.map((n) =&gt; ({ value: String(n), label: t.day(n) })) },
    { name: &quot;recharge&quot;, type: &quot;select&quot;, label: t.recharge, short: t.rcKey, value: &quot;yes&quot;, options: [&quot;yes&quot;, &quot;no&quot;].map((x) =&gt; ({ value: x, label: t.rc[x], short: t.rcShort[x] })) },
  ];
}

const r1_ = (x) =&gt; Math.round(Math.floor(x * 10 + 1e-9)) / 10;
const c1_ = (x) =&gt; Math.round(Math.ceil(x * 10 - 1e-9)) / 10;

function compute(v, M, lang) {
  const t = T_[lang];
  const days = Number(v.days);
  if (!M.days.includes(days) || ![&quot;yes&quot;, &quot;no&quot;].includes(v.recharge)) return { status: &quot;error&quot;, lines: [] };
  const ids = KIND_KEYS_.map((k) =&gt; v[k]).filter((id) =&gt; id &amp;&amp; id !== &quot;none&quot; &amp;&amp; M.devices[id]);
  if (!ids.length) return { status: &quot;ng&quot;, verdict: t.vNone, lines: [], picks: [] };
  const devs = ids.map((id) =&gt; ({ id, ...M.devices[id] }));
  const trip = { days, recharge: v.recharge === &quot;yes&quot; };
  const rows0 = capTable(M.caps, devs, trip, M.A);
  const nLo = r1_(needWh(devs, trip, M.A.best).total), nHi = c1_(needWh(devs, trip, M.A.worst).total);
  const okRow = rows0.find((r) =&gt; r.fit === &quot;ok&quot;), condRow = rows0.find((r) =&gt; r.fit !== &quot;ng&quot;);
  const hasLaptop = devs.some((d) =&gt; d.kind === &quot;laptop&quot;);
  const pickOf = (mah) =&gt; Object.keys(M.products).filter((pid) =&gt; { const p = M.products[pid]; return p.cap === mah &amp;&amp; (!hasLaptop || (p.out &gt;= 65 &amp;&amp; p.wh &lt; M.limitWh)); });
  // stack（積み上げ）: 機器ごとの要る Wh（model.mjs の needWh().items。有利な側 best 〜 不利な側 worst）を積み、容量ごとの使える Wh（capTable の usable）の線と比べる。
  // 数の書き方は判定の行（need）と同じ: 下の端は切り捨て、上の端は切り上げ（小数1桁）
  const itB = needWh(devs, trip, M.A.best).items, itW = needWh(devs, trip, M.A.worst).items;
  const stack = {
    unit: &quot;Wh&quot;, fmt: (x, side) =&gt; String(side === &quot;lo&quot; ? r1_(x) : c1_(x)),
    parts: devs.map((d, i) =&gt; ({ id: d.id, label: d[lang], short: t.kinds[d.kind], lo: itB[i].wh, hi: itW[i].wh })),
    caps: rows0.map((r) =&gt; ({ id: `c${r.mah}`, label: t.cap(r.mah), short: `${r.mah / 1000}k`, lo: r.usable[0], hi: r.usable[1], hit: r.fit === &quot;ok&quot;, fit: r.fit, pick: pickOf(r.mah) })),
    need: [needWh(devs, trip, M.A.best).total, needWh(devs, trip, M.A.worst).total],
    main: okRow ? `c${okRow.mah}` : condRow ? `c${condRow.mah}` : null,
  };
  const kinds = [...new Set(devs.map((d) =&gt; d.kind))];
  const lines = [t.need(nLo, nHi, tripDays(trip))];
  if (trip.recharge) lines.push(t.hotel);
  lines.push(t.premise(kinds.map((k) =&gt; t.perDay(t.kinds[k], M.daily[k])).join(t.sep)));
  if (!okRow) lines.push(t.split);
  if (hasLaptop) lines.push(t.laptopOut);
  if (okRow &amp;&amp; okRow.mah === M.caps[M.caps.length - 1]) lines.push(t.wh100(M.limitWh));
  lines.push(t.wireless);
  const big = t.cap(M.caps[M.caps.length - 1]);
  if (okRow) return { status: &quot;ok&quot;, verdict: t.vOk(t.cap(okRow.mah)), lines, picks: pickOf(okRow.mah), stack };
  if (condRow) return { status: &quot;cond&quot;, verdict: t.vCond(t.cap(condRow.mah)), lines, picks: pickOf(condRow.mah), stack };
  return { status: &quot;ng&quot;, verdict: t.vNg(big), lines, picks: [], stack };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（機器の組み合わせ × 毎晩の充電、3日）
function presets() {
  const P = (phone, tablet, game, laptop, recharge, days = &quot;3&quot;) =&gt; ({ phone, tablet, game, laptop, days, recharge });
  return [
    P(&quot;p18&quot;, &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;yes&quot;), P(&quot;p18m&quot;, &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;yes&quot;), P(&quot;p18&quot;, &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;no&quot;),
    P(&quot;p18&quot;, &quot;ipad11&quot;, &quot;none&quot;, &quot;none&quot;, &quot;yes&quot;), P(&quot;p18&quot;, &quot;ipad11&quot;, &quot;none&quot;, &quot;none&quot;, &quot;no&quot;),
    P(&quot;p18&quot;, &quot;none&quot;, &quot;sw2&quot;, &quot;none&quot;, &quot;yes&quot;), P(&quot;p18&quot;, &quot;none&quot;, &quot;sw2&quot;, &quot;none&quot;, &quot;no&quot;),
    P(&quot;p18&quot;, &quot;none&quot;, &quot;none&quot;, &quot;mba13&quot;, &quot;yes&quot;), P(&quot;p18&quot;, &quot;none&quot;, &quot;none&quot;, &quot;mba13&quot;, &quot;no&quot;),
    P(&quot;s26&quot;, &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;yes&quot;), P(&quot;p18&quot;, &quot;ipad11&quot;, &quot;sw2&quot;, &quot;none&quot;, &quot;yes&quot;), P(&quot;p18&quot;, &quot;none&quot;, &quot;none&quot;, &quot;none&quot;, &quot;no&quot;, &quot;1&quot;),
  ];
}

// カードに出す仕様（その商品の公式の値。絞り込みの条件は出さない）
function pickSpecs(id, v, M, lang) {
  const p = M.products[id];
  if (!p) return [];
  const sp = T_[lang].spec;
  const out = [sp.cap(p.cap)];
  if (p.out) out.push(sp.out(p.out));
  if (p.ports &gt;= 2) out.push(sp.ports(p.ports));
  return out;
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;stack&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;p&gt;In the calculator, pick your devices, the number of days and whether you can charge each night. It shows the Wh you need, which of 5,000, 10,000, 20,000 and 25,000mAh is enough, and how many charges each device gets.&lt;/p&gt;
&lt;h2 id=&quot;taking-a-power-bank-on-a-plane&quot;&gt;Taking a power bank on a plane&lt;/h2&gt;
&lt;p&gt;Under FAA rules, power banks of 100Wh or less can be carried on without airline approval. Those of 101 to 160Wh need the airline’s approval, and none can go in checked baggage. 25,000mAh is about 96Wh even at 3.85V, inside the 100Wh limit.&lt;/p&gt;
&lt;p&gt;Some airlines, such as Southwest, allow only 1 power bank per person, so check your airline’s rules.&lt;/p&gt;
&lt;p&gt;Under Japan’s rules since April 24, 2026, if you fly a Japanese airline, you may carry up to 2 power banks of 160Wh or less in the cabin. None can go in checked baggage. You may not charge a bank, or charge a device from a bank, on board.&lt;/p&gt;
&lt;p&gt;With no outlet for 3 days, two banks fit Japanese airlines’ limit of 2. An airline that allows only 1 won’t let you carry both.&lt;/p&gt;
&lt;p&gt;Beyond the FAA, Southwest and Japanese airlines, other rules aren’t covered here.&lt;/p&gt;
&lt;h2 id=&quot;picks-for-each-situation&quot;&gt;Picks for each situation&lt;/h2&gt;
&lt;p&gt;Candidates have 100 or more ratings, 4.0 or more stars, a seller that is Amazon or the maker, and no parallel imports.&lt;/p&gt;
&lt;p&gt;Of the products checked here, these are the cheapest that meet the conditions (as of October 2026). If you carry only a phone and can’t charge for 3 days, combine a 20,000mAh pick with a 10,000mAh pick.&lt;/p&gt;
&lt;h3 id=&quot;phone-only-and-you-can-charge-at-the-hotel-each-night&quot;&gt;Phone only, and you can charge at the hotel each night&lt;/h3&gt;
&lt;p&gt;10,000mAh just barely covers a day of phone charging alone, with about 0.8Wh to spare.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Belkin BoostCharge 10000mAh 20W BPB021&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/51XEgfFIMbL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Belkin BoostCharge 10000mAh 20W BPB021&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DFYCSRB2?q=Belkin+BoostCharge+10000mAh+20W+BPB021&amp;amp;l=en&quot; aria-label=&quot;View Belkin BoostCharge 10000mAh 20W BPB021 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;a-tablet-or-handheld-console-besides-your-phone-and-you-can-charge-at-the-hotel-each-night&quot;&gt;A tablet or handheld console besides your phone, and you can charge at the hotel each night&lt;/h3&gt;
&lt;p&gt;20,000mAh with two or more output ports, so it charges two devices at once.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for INIU 20000mAh 65W Laptop Power Bank (P62)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/716OMZE8ogL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;INIU 20000mAh 65W Laptop Power Bank (P62)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DB86W481?q=INIU+20000mAh+65W+Laptop+Power+Bank+%28P62%29&amp;amp;us=B0DB86W481&amp;amp;l=en&quot; aria-label=&quot;View INIU 20000mAh 65W Laptop Power Bank (P62) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;a-laptop-too-and-you-can-charge-at-the-hotel-each-night&quot;&gt;A laptop too, and you can charge at the hotel each night&lt;/h3&gt;
&lt;p&gt;25,000mAh with a maximum output of 65 W or more, so it can charge a laptop too.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Anker Power Bank 25000mAh 165W A1695&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61CF1s8tz1L._AC_SY300_SX300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Anker Power Bank 25000mAh 165W A1695&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DT4RGDSJ?q=Anker+Power+Bank+25000mAh+165W+A1695&amp;amp;us=B0DCBB2YTR&amp;amp;l=en&quot; aria-label=&quot;View Anker Power Bank 25000mAh 165W A1695 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Sold by AnkerDirect, the maker&amp;#39;s official store.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;is-10000mah-enough-for-a-3-day-trip&quot;&gt;Is 10,000mAh enough for a 3-day trip?&lt;/h3&gt;
&lt;p&gt;Assuming 60-70% efficiency and a 0% to 100% charge, if you can charge each night and carry only a phone, 10,000mAh just barely covers a day. The margin is only about 0.8Wh.&lt;/p&gt;
&lt;p&gt;The Pro Max’s 5,391mAh is an EU-label figure from press reports (Apple does not publish it), and the US models are unchecked, so 20,000mAh is safer for a Pro Max.&lt;/p&gt;
&lt;h3 id=&quot;do-i-need-20000mah-for-a-3-day-trip&quot;&gt;Do I need 20,000mAh for a 3-day trip?&lt;/h3&gt;
&lt;p&gt;Assuming 1 charge a day (half for tablets and laptops) at 60% efficiency, with an outlet each night, 20,000mAh covers a phone plus a tablet or console. A phone plus a laptop needs 25,000mAh.&lt;/p&gt;
&lt;h3 id=&quot;what-size-power-bank-do-you-need-if-you-cant-charge-for-3-days&quot;&gt;What size power bank do you need if you can’t charge for 3 days?&lt;/h3&gt;
&lt;p&gt;Assuming 1 charge a day (half for tablets and laptops) at 60% efficiency, with no outlet for 3 days, a phone alone needs 20,000mAh and 10,000mAh banks. A tablet or console raises the need.&lt;/p&gt;
&lt;h3 id=&quot;how-many-times-can-a-10000mah-power-bank-charge-my-phone&quot;&gt;How many times can a 10,000mAh power bank charge my phone?&lt;/h3&gt;
&lt;p&gt;Assuming 60-70% efficiency and a 0% to 100% charge, 10,000mAh charges an iPhone 18 Pro about 1.3 to 1.8 times. Dividing 10,000mAh by its 4,056mAh battery gives 2.5, but power is lost along the way, so the real number is lower.&lt;/p&gt;
&lt;p&gt;The 4,056mAh is an EU-label figure from press reports; Apple does not publish it.&lt;/p&gt;
&lt;h3 id=&quot;what-size-power-bank-should-two-people-share&quot;&gt;What size power bank should two people share?&lt;/h3&gt;
&lt;p&gt;To share one bank, add each person’s Wh and pick a size from the table. This assumes you can charge each night and each person charges a phone once a day.&lt;/p&gt;
&lt;p&gt;If both carry only a phone, two of the largest phone here need about 41.6Wh, so 20,000mAh (at least 43.2Wh usable) is the guide.&lt;/p&gt;
&lt;h3 id=&quot;can-i-bring-a-power-bank-on-a-plane&quot;&gt;Can I bring a power bank on a plane?&lt;/h3&gt;
&lt;p&gt;Under FAA rules as of October 2026, power banks of 100Wh or less can be carried on without airline approval. Those of 101 to 160Wh need the airline’s approval, and none can go in checked baggage.&lt;/p&gt;
&lt;p&gt;25,000mAh is about 96Wh even at 3.85V, inside the 100Wh limit. Some airlines, such as Southwest, allow only 1 power bank per person, so check your airline’s rules.&lt;/p&gt;
&lt;p&gt;Under Japan’s rules since April 24, 2026, if you fly a Japanese airline, you may carry up to 2 power banks of 160Wh or less in the cabin. None can go in checked baggage.&lt;/p&gt;
&lt;p&gt;You may not charge a bank, or charge a device from a bank, on board.&lt;/p&gt;
&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Scope: current power banks from major makers and official specs of phones, tablets, handheld consoles and laptops as of 2026-10-10. No hands-on tests.&lt;/li&gt;
&lt;li&gt;Energy needed = device battery mAh x voltage / 1000 (Wh). Usable bank energy (Wh) = rated mAh x cell voltage x conversion efficiency / 1000.&lt;/li&gt;
&lt;li&gt;Verdict uses the unfavorable end (3.6V cell, 60% efficiency, 3.85V device battery, 0% to 100%): OK if enough there, partial if enough only at the favorable end, not enough otherwise. The iPhone 18 Pro and Pro Max battery sizes are figures from EU energy labels as reported by the press (Apple does not publish them); the US models are unchecked.&lt;/li&gt;
&lt;li&gt;Daily charges from the bank are assumptions: 1 for phones and consoles, half for tablets and laptops. The initial full charge is not counted.&lt;/li&gt;
&lt;li&gt;No published wireless-charging efficiency was found, so counts are calculated for wired charging.&lt;/li&gt;
&lt;li&gt;Needed amounts are rounded up and usable amounts rounded down to one decimal, so the result never errs toward “enough”.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Assumptions&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;60-70% of the energy in Wh (MagGo FAQ cites 30-45% loss). The makers’ 6,000-7,000mAh counts at USB 5V (30-35Wh), a different basis, so this calculation is stricter; it varies with the model, temperature and cable.: 0.65 (0.6–0.7)&lt;/li&gt;
&lt;li&gt;Nominal cell voltage, held between 3.7V (Anker) and 3.85V (Anker MagGo label); the lower 3.6V side is the conservative end.: 3.7 (3.6–3.85)&lt;/li&gt;
&lt;li&gt;No primary source gives a number for wireless vs wired loss, so the article only says wireless is less efficient.: “not found” (0–0)&lt;/li&gt;
&lt;li&gt;Nominal voltage of the device battery, used to turn mAh into Wh for devices that publish only mAh (iPhone, Galaxy, Switch 2). Same 3.6-3.85V span as the bank cell; the high side (more Wh) is the conservative end.: 3.7 (3.6–3.85)&lt;/li&gt;
&lt;li&gt;How much of the battery one charge fills: 20% to 100% (0.8) up to 0% to 100% (1.0). 1.0 is the conservative end.: 0.8 (0.8–1)&lt;/li&gt;
&lt;li&gt;Phone charges per day from the bank. Maps, photos and payments drain more on a trip, so the article assumes the higher side, 1 charge; lighter use is half.: 1 (0.5–1)&lt;/li&gt;
&lt;li&gt;Tablet charges per day. Half a charge for videos on the move is the premise; all-day use is 1.: 0.5 (0.5–1)&lt;/li&gt;
&lt;li&gt;Handheld console charges per day. Consoles drain in a few hours, so 1 charge is the premise; light play is half.: 1 (0.5–1)&lt;/li&gt;
&lt;li&gt;Laptop charges per day. Half a charge for some work on the trip is the premise; all-day use is 1.: 0.5 (0.5–1)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;




































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;cell_nominal_voltage_v&lt;/td&gt;&lt;td&gt;3.7 V&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://service.anker.com/article-description/Why-Is-the-Rated-Capacity-Marked-on-a-Power-Bank-Lower-Than-Expected&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;service.anker.com&lt;/a&gt; ‘which typically operate at a voltage of around 3.7V’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;usb_output_voltage_v&lt;/td&gt;&lt;td&gt;5 V&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://service.anker.com/article-description/Why-Is-the-Rated-Capacity-Marked-on-a-Power-Bank-Lower-Than-Expected&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;service.anker.com&lt;/a&gt; ‘the rated output capacity of the power bank is often calculated at a standard o&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;wh_formula&lt;/td&gt;&lt;td&gt;Wh = mAh x V / 1000 formula&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://service.anker.com/article-description/Why-Is-the-Rated-Capacity-Marked-on-a-Power-Bank-Lower-Than-Expected&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;service.anker.com&lt;/a&gt; ‘Energy in Watt-hours = Capacity in Ampere-hours × Voltage in Volts’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;wh_10000mah_at_3_7v&lt;/td&gt;&lt;td&gt;37 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://service.anker.com/article-description/Why-Is-the-Rated-Capacity-Marked-on-a-Power-Bank-Lower-Than-Expected&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;service.anker.com&lt;/a&gt; ‘10Ah × 3.7V = 37Wh’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;usb_ceiling_10000mah_mah&lt;/td&gt;&lt;td&gt;7400 mAh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://service.anker.com/article-description/Why-Is-the-Rated-Capacity-Marked-on-a-Power-Bank-Lower-Than-Expected&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;service.anker.com&lt;/a&gt; ‘37Wh / 5V = 7.4Ah = 7,400mAh’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;circuit_efficiency_anker&lt;/td&gt;&lt;td&gt;0.82 ratio&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://service.anker.com/article-description/Why-Is-the-Rated-Capacity-Marked-on-a-Power-Bank-Lower-Than-Expected&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;service.anker.com&lt;/a&gt; ‘typically around 82% efficiency’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;circuit_efficiency_anker_uk_range&lt;/td&gt;&lt;td&gt;0.8–0.9 ratio&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.anker.com/uk/blogs/power-banks/10-000mah-power-bank-how-many-charges&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;anker.com&lt;/a&gt; ‘operate at around 80–90% efficiency’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;usable_of_10000mah_wired_mah&lt;/td&gt;&lt;td&gt;6000–7000 mAh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.anker.com/products/a1654-maggo-10000mah-qi2-power-bank-magsafe-compatible&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;anker.com&lt;/a&gt; ‘a fully charged Anker MagGo Power Bank (10K) offers an estimated 6,000mAh to 7,&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;anker_uk_charge_example_iphone14pro&lt;/td&gt;&lt;td&gt;2 times&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.anker.com/uk/blogs/power-banks/10-000mah-power-bank-how-many-charges&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;anker.com&lt;/a&gt; ‘iPhone 14 Pro (3,200mAh) → ~ 2 full charges.‘&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;wireless_5w_when_usbc_in_use&lt;/td&gt;&lt;td&gt;5 W&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.anker.com/products/a1654-maggo-10000mah-qi2-power-bank-magsafe-compatible&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;anker.com&lt;/a&gt; ‘If the USB-C port is charging a device, wireless charging output will be reduce&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;wireless_less_efficient_elecom&lt;/td&gt;&lt;td&gt;Wireless charging is less efficient than wired (it generates power through a magnetic field)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/pickup/column/charger_column/00004/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;qi2_alignment_efficiency_wpc&lt;/td&gt;&lt;td&gt;Qi2 magnet alignment improves efficiency (no numeric loss given) text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.wirelesspowerconsortium.com/knowledge-base/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;wirelesspowerconsortium.com&lt;/a&gt; ‘Qi2 offers greater charging efficiency, faster charging, and greater convenienc&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iphone18pro_wireless_max_w&lt;/td&gt;&lt;td&gt;25 W&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/iphone-18-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt; ‘MagSafe wireless charging up to 25W’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iphone18pro_battery_mah_eu&lt;/td&gt;&lt;td&gt;4056 mAh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.tomsguide.com/phones/iphones/iphone-18-pro-and-pro-max-battery-capacity-confirmed-in-europe-heres-how-they-compare-to-iphone-17-pro&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;tomsguide.com&lt;/a&gt; ‘iPhone 18 Pro will have a 4,056 mAh battery’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iphone18promax_battery_mah_eu&lt;/td&gt;&lt;td&gt;5391 mAh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.tomsguide.com/phones/iphones/iphone-18-pro-and-pro-max-battery-capacity-confirmed-in-europe-heres-how-they-compare-to-iphone-17-pro&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;tomsguide.com&lt;/a&gt; ‘5,391 mAh capacity in the EU’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iphone17promax_battery_mah_eu&lt;/td&gt;&lt;td&gt;4823 mAh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.macrumors.com/2026/09/10/iphone-18-pro-max-battery-capacities-ram/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;macrumors.com&lt;/a&gt; ‘iPhone 17 Pro Max’s 4,823 mAh’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iphone18pro_video_hours&lt;/td&gt;&lt;td&gt;36 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/newsroom/2026/09/apple-debuts-iphone-18-pro-and-iphone-18-pro-max/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt; ‘up to 36 hours of video playback on iPhone 18 Pro’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iphone18promax_video_hours&lt;/td&gt;&lt;td&gt;45 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/newsroom/2026/09/apple-debuts-iphone-18-pro-and-iphone-18-pro-max/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt; ‘up to 45 hours of video playback on iPhone 18 Pro Max’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iphone18pro_release_us&lt;/td&gt;&lt;td&gt;2026-09-18 date&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/newsroom/2026/09/apple-debuts-iphone-18-pro-and-iphone-18-pro-max/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt; ‘Pre-orders begin Saturday, September 12, with availability beginning Friday, Se&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;macbook_air_13_wh&lt;/td&gt;&lt;td&gt;53.8 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt; ‘Built-in 53.8‑watt‑hour lithium‑polymer battery’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;macbook_air_15_wh&lt;/td&gt;&lt;td&gt;66.5 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt; ‘Built-in 66.5‑watt‑hour lithium‑polymer battery’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ipad_air_11_wh&lt;/td&gt;&lt;td&gt;28.93 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt; ‘Built‐in 28.93‐watt‐hour rechargeable lithium‑polymer battery’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ipad_air_13_wh&lt;/td&gt;&lt;td&gt;36.59 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt; ‘Built‐in 36.59‐watt‐hour rechargeable lithium‑polymer battery’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;switch2_battery_mah&lt;/td&gt;&lt;td&gt;5220 mAh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nintendo.com/us/gaming-systems/switch-2/tech-specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nintendo.com&lt;/a&gt; ‘Lithium-ion battery/5220mAh’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;steamdeck_oled_whr&lt;/td&gt;&lt;td&gt;50 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.steamdeck.com/en/tech&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;steamdeck.com&lt;/a&gt; ‘50Whr battery’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;galaxy_s26_ultra_typical_mah&lt;/td&gt;&lt;td&gt;5000 mAh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/smartphones/galaxy-s26-ultra/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; ‘5000 mAh ultra-long lasting battery for all-day performance’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;faa_li_ion_limit_wh&lt;/td&gt;&lt;td&gt;100 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.faa.gov/hazmat/packsafe/lithium-batteries&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;faa.gov&lt;/a&gt; ‘Lithium ion (rechargeable) batteries are limited to a rating of 100 watt hours&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;faa_101_160_wh_approval&lt;/td&gt;&lt;td&gt;101–160 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.faa.gov/hazmat/packsafe/lithium-batteries&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;faa.gov&lt;/a&gt; ‘With airline approval, passengers may also carry up to two spare larger lithium&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;faa_carry_on_only&lt;/td&gt;&lt;td&gt;carry-on only text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.faa.gov/hazmat/packsafe/lithium-batteries&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;faa.gov&lt;/a&gt; ‘Spare (uninstalled) lithium ion and lithium metal batteries, including power ba&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;faa_airline_stricter&lt;/td&gt;&lt;td&gt;airlines may set stricter limits text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.faa.gov/hazmat/packsafe/lithium-batteries&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;faa.gov&lt;/a&gt; ‘Many airlines, both domestic and international, may have stricter quantity and&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;southwest_power_bank_limit&lt;/td&gt;&lt;td&gt;1 units&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.southwest.com/helpcenter/article/Traveling-with-lithium-batteries-e-cigarettes-and-lighters&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.southwest.com&lt;/a&gt; ‘each Customer is limited to one power bank (effective April 20, 2026)‘&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;mlit_carry_on_limit&lt;/td&gt;&lt;td&gt;2 units, 160 Wh or less each (from 2026-04-24)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.mlit.go.jp/report/press/kouku10_hh_000310.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;mlit.go.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;mlit_in_cabin_charging_ban&lt;/td&gt;&lt;td&gt;No charging the power bank or charging other devices from it in flight&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.mlit.go.jp/report/press/kouku10_hh_000310.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;mlit.go.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;mlit_2025_overhead_bin&lt;/td&gt;&lt;td&gt;From 2025-07-08, do not stow power banks in overhead bins; keep them where you can see them&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.mlit.go.jp/report/press/kouku10_hh_000284.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;mlit.go.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;mlit_checked_baggage_ban&lt;/td&gt;&lt;td&gt;Checked baggage is prohibited&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ana.co.jp/ja/jp/special-notice/001379.html?p1=top&amp;amp;p2=ja&amp;amp;p3=global&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ana.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ana_rule_2026&lt;/td&gt;&lt;td&gt;ANA: 2 per person, 160 Wh or less, no checked baggage, no in-flight charging&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ana.co.jp/ja/jp/special-notice/001379.html?p1=top&amp;amp;p2=ja&amp;amp;p3=global&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ana.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;jal_rule_2026&lt;/td&gt;&lt;td&gt;JAL: 2 per person, 160 Wh or less&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://ontrip.jal.co.jp/_ct/17850436&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ontrip.jal.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;jr_n700s_outlets&lt;/td&gt;&lt;td&gt;On the N700S every seat has an outlet; on other cars only window seats and the front/rear seats&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://railway.jr-central.co.jp/s_work/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;railway.jr-central.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;amtrak_coach_outlet&lt;/td&gt;&lt;td&gt;Each unreserved coach seat has a 120V outlet&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.amtrak.com/unreserved-coach-class-seat&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;amtrak.com&lt;/a&gt; ‘There is also a fold-down tray, individual reading light, and a 120v electric o&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sony_np_fz100_wh&lt;/td&gt;&lt;td&gt;16.4 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sony.jp/ichigan/products/NP-FZ100/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sony.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sony_np_fz100_mah&lt;/td&gt;&lt;td&gt;2280 mAh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sony.jp/ichigan/products/NP-FZ100/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sony.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;gopro_enduro_hero13_mah&lt;/td&gt;&lt;td&gt;1900 mAh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://gopro.com/en/us/shop/mounts-accessories/enduro-battery/AEBAT-001.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;gopro.com&lt;/a&gt; ‘Advanced 1900 mAh battery delivers longer runtimes in a wide variety of tempera&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;canon_lp_e6p_mah&lt;/td&gt;&lt;td&gt;2130 mAh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://faq.canon.jp/app/answers/detail/a_id/105156/~/%E3%80%90%E3%82%AB%E3%83%A1%E3%83%A9%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B5%E3%83%AA%E3%83%BC%E3%80%91%E3%83%90%E3%83%83%E3%83%86%E3%83%AA%E3%83%BC%E3%83%91%E3%83%83%E3%82%AF-lp-e6p-%E8%A3%BD%E5%93%81%E4%BB%95%E6%A7%98&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;faq.canon.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;apple_watch_series_11_battery_hours&lt;/td&gt;&lt;td&gt;24 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/watch/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt; Apple Watch Series 11: ‘Up to 24 hours’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;apple_watch_ultra_3_battery_hours&lt;/td&gt;&lt;td&gt;42 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/watch/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt; Apple Watch Ultra 3: ‘Up to 42 hours’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;airpods_pro_3_case_listening_hours&lt;/td&gt;&lt;td&gt;24 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/airpods-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt; ‘Up to 24 hours of listening time with Active Noise Cancellation enabled’&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;pixel_10_pro_battery_mah&lt;/td&gt;&lt;td&gt;4870 mAh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://store.google.com/product/pixel_10_pro_specs?hl=en-US&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;store.google.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Calculate the power bank size for your trip: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result and a matching product for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;





































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;iPhone 18 Pro, No tablet, No console, No laptop, Can charge at the hotel&lt;/td&gt;&lt;td&gt;✓ 10,000mAh is enough. You need 11.6–15.7Wh (1 day, energy into the device batteries). With hotel charging each night, it counts 1 day whatever the trip length. Charges per day from the bank: phone 1. Wireless charging is less efficient than a cable, so you get fewer charges than shown&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/?power-bank-trip-calculator-phone=p18&amp;amp;power-bank-trip-calculator-tablet=none&amp;amp;power-bank-trip-calculator-game=none&amp;amp;power-bank-trip-calculator-laptop=none&amp;amp;power-bank-trip-calculator-recharge=yes#power-bank-trip-calculator&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPhone 18 Pro Max, No tablet, No console, No laptop, Can charge at the hotel&lt;/td&gt;&lt;td&gt;✓ 10,000mAh is enough. You need 15.5–20.8Wh (1 day, energy into the device batteries). With hotel charging each night, it counts 1 day whatever the trip length. Charges per day from the bank: phone 1. Wireless charging is less efficient than a cable, so you get fewer charges than shown&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/?power-bank-trip-calculator-phone=p18m&amp;amp;power-bank-trip-calculator-tablet=none&amp;amp;power-bank-trip-calculator-game=none&amp;amp;power-bank-trip-calculator-laptop=none&amp;amp;power-bank-trip-calculator-recharge=yes#power-bank-trip-calculator&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPhone 18 Pro, No tablet, No console, No laptop, 3 days, No outlet&lt;/td&gt;&lt;td&gt;✓ 25,000mAh is enough. You need 35–46.9Wh (3 days, energy into the device batteries). Charges per day from the bank: phone 1. 25,000mAh stays under 100Wh even at 3.85V, so no airline approval is needed to carry it on. Wireless charging is less efficient than a cable, so you get fewer charges than shown&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/?power-bank-trip-calculator-phone=p18&amp;amp;power-bank-trip-calculator-tablet=none&amp;amp;power-bank-trip-calculator-game=none&amp;amp;power-bank-trip-calculator-laptop=none&amp;amp;power-bank-trip-calculator-days=3&amp;amp;power-bank-trip-calculator-recharge=no#power-bank-trip-calculator&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPhone 18 Pro, iPad Air 11-inch, No console, No laptop, Can charge at the hotel&lt;/td&gt;&lt;td&gt;✓ 20,000mAh is enough. You need 23.2–30.1Wh (1 day, energy into the device batteries). With hotel charging each night, it counts 1 day whatever the trip length. Charges per day from the bank: phone 1, tablet 0.5. Wireless charging is less efficient than a cable, so you get fewer charges than shown&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/?power-bank-trip-calculator-phone=p18&amp;amp;power-bank-trip-calculator-tablet=ipad11&amp;amp;power-bank-trip-calculator-game=none&amp;amp;power-bank-trip-calculator-laptop=none&amp;amp;power-bank-trip-calculator-recharge=yes#power-bank-trip-calculator&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPhone 18 Pro, iPad Air 11-inch, No console, No laptop, 3 days, No outlet&lt;/td&gt;&lt;td&gt;✕ Even 25,000mAh isn’t enough. You need 69.7–90.3Wh (3 days, energy into the device batteries). Charges per day from the bank: phone 1, tablet 0.5. If 1 bank isn’t enough, charge on the move or carry 2 banks (Japanese airlines allow 2 in the cabin, each 160Wh or less). Wireless charging is less efficient than a cable, so you get fewer charges than shown&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/?power-bank-trip-calculator-phone=p18&amp;amp;power-bank-trip-calculator-tablet=ipad11&amp;amp;power-bank-trip-calculator-game=none&amp;amp;power-bank-trip-calculator-laptop=none&amp;amp;power-bank-trip-calculator-days=3&amp;amp;power-bank-trip-calculator-recharge=no#power-bank-trip-calculator&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPhone 18 Pro, No tablet, Nintendo Switch 2, No laptop, Can charge at the hotel&lt;/td&gt;&lt;td&gt;✓ 20,000mAh is enough. You need 26.7–35.8Wh (1 day, energy into the device batteries). With hotel charging each night, it counts 1 day whatever the trip length. Charges per day from the bank: phone 1, console 1. Wireless charging is less efficient than a cable, so you get fewer charges than shown&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/?power-bank-trip-calculator-phone=p18&amp;amp;power-bank-trip-calculator-tablet=none&amp;amp;power-bank-trip-calculator-game=sw2&amp;amp;power-bank-trip-calculator-laptop=none&amp;amp;power-bank-trip-calculator-recharge=yes#power-bank-trip-calculator&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPhone 18 Pro, No tablet, Nintendo Switch 2, No laptop, 3 days, No outlet&lt;/td&gt;&lt;td&gt;✕ Even 25,000mAh isn’t enough. You need 80.1–107.2Wh (3 days, energy into the device batteries). Charges per day from the bank: phone 1, console 1. If 1 bank isn’t enough, charge on the move or carry 2 banks (Japanese airlines allow 2 in the cabin, each 160Wh or less). Wireless charging is less efficient than a cable, so you get fewer charges than shown&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/?power-bank-trip-calculator-phone=p18&amp;amp;power-bank-trip-calculator-tablet=none&amp;amp;power-bank-trip-calculator-game=sw2&amp;amp;power-bank-trip-calculator-laptop=none&amp;amp;power-bank-trip-calculator-days=3&amp;amp;power-bank-trip-calculator-recharge=no#power-bank-trip-calculator&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPhone 18 Pro, No tablet, No console, MacBook Air 13-inch, Can charge at the hotel&lt;/td&gt;&lt;td&gt;✓ 20,000mAh is enough. You need 33.2–42.6Wh (1 day, energy into the device batteries). With hotel charging each night, it counts 1 day whatever the trip length. Charges per day from the bank: phone 1, laptop 0.5. To charge a laptop, pick a bank with a high maximum output. Wireless charging is less efficient than a cable, so you get fewer charges than shown&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/?power-bank-trip-calculator-phone=p18&amp;amp;power-bank-trip-calculator-tablet=none&amp;amp;power-bank-trip-calculator-game=none&amp;amp;power-bank-trip-calculator-laptop=mba13&amp;amp;power-bank-trip-calculator-recharge=yes#power-bank-trip-calculator&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPhone 18 Pro, No tablet, No console, MacBook Air 13-inch, 3 days, No outlet&lt;/td&gt;&lt;td&gt;✕ Even 25,000mAh isn’t enough. You need 99.6–127.6Wh (3 days, energy into the device batteries). Charges per day from the bank: phone 1, laptop 0.5. If 1 bank isn’t enough, charge on the move or carry 2 banks (Japanese airlines allow 2 in the cabin, each 160Wh or less). To charge a laptop, pick a bank with a high maximum output. Wireless charging is less efficient than a cable, so you get fewer charges than shown&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/?power-bank-trip-calculator-phone=p18&amp;amp;power-bank-trip-calculator-tablet=none&amp;amp;power-bank-trip-calculator-game=none&amp;amp;power-bank-trip-calculator-laptop=mba13&amp;amp;power-bank-trip-calculator-days=3&amp;amp;power-bank-trip-calculator-recharge=no#power-bank-trip-calculator&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Galaxy S26 Ultra, No tablet, No console, No laptop, Can charge at the hotel&lt;/td&gt;&lt;td&gt;✓ 10,000mAh is enough. You need 14.4–19.3Wh (1 day, energy into the device batteries). With hotel charging each night, it counts 1 day whatever the trip length. Charges per day from the bank: phone 1. Wireless charging is less efficient than a cable, so you get fewer charges than shown&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/?power-bank-trip-calculator-phone=s26&amp;amp;power-bank-trip-calculator-tablet=none&amp;amp;power-bank-trip-calculator-game=none&amp;amp;power-bank-trip-calculator-laptop=none&amp;amp;power-bank-trip-calculator-recharge=yes#power-bank-trip-calculator&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPhone 18 Pro, iPad Air 11-inch, Nintendo Switch 2, No laptop, Can charge at the hotel&lt;/td&gt;&lt;td&gt;✓ 25,000mAh is enough. You need 38.2–50.2Wh (1 day, energy into the device batteries). With hotel charging each night, it counts 1 day whatever the trip length. Charges per day from the bank: phone 1, tablet 0.5, console 1. 25,000mAh stays under 100Wh even at 3.85V, so no airline approval is needed to carry it on. Wireless charging is less efficient than a cable, so you get fewer charges than shown&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/?power-bank-trip-calculator-phone=p18&amp;amp;power-bank-trip-calculator-tablet=ipad11&amp;amp;power-bank-trip-calculator-game=sw2&amp;amp;power-bank-trip-calculator-laptop=none&amp;amp;power-bank-trip-calculator-recharge=yes#power-bank-trip-calculator&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPhone 18 Pro, No tablet, No console, No laptop, 1 day, No outlet&lt;/td&gt;&lt;td&gt;✓ 10,000mAh is enough. You need 11.6–15.7Wh (1 day, energy into the device batteries). Charges per day from the bank: phone 1. Wireless charging is less efficient than a cable, so you get fewer charges than shown&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-12-power-bank-3-day-trip/?power-bank-trip-calculator-phone=p18&amp;amp;power-bank-trip-calculator-tablet=none&amp;amp;power-bank-trip-calculator-game=none&amp;amp;power-bank-trip-calculator-laptop=none&amp;amp;power-bank-trip-calculator-days=1&amp;amp;power-bank-trip-calculator-recharge=no#power-bank-trip-calculator&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>power bank</category><category>capacity</category><category>travel</category><category>mAh</category><category>Wh</category></item><item><title>What Monitor Does VALORANT Need? 144Hz vs 240Hz vs 360Hz</title><link>https://aulvem.com/blog/2026-10-10-valorant-monitor/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-10-10-valorant-monitor/</guid><description>In this guide&apos;s method, pick a VALORANT monitor by your average in-match fps (frames the game draws per second). For refresh rate (how often the monitor redraws per second), 144Hz is enough at an average of 144 fps or less. Per Riot&apos;s official pages, the top spec target is 144 fps, and the in-game Stats display shows your fps. Checked against official pages and third-party data as of October 2026.</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In this guide’s method, pick a VALORANT monitor by your average in-match fps (frames the game draws per second). For refresh rate (how often the monitor redraws per second), 144Hz is enough at an average of 144 fps or less.&lt;/p&gt;
&lt;p&gt;Per Riot’s official pages, the top spec target is 144 fps, and the in-game Stats display shows your fps. A monitor is fully used only when your average fps reaches its refresh rate: 240 fps for 240Hz, 300 fps for 300Hz, 360 fps for 360Hz.&lt;/p&gt;
&lt;p&gt;Checked as of October 2026. No monitor was tested in person.&lt;/p&gt;
&lt;h2 id=&quot;new-frames-on-screen-by-average-fps-and-hz&quot;&gt;New frames on screen, by average fps and Hz&lt;/h2&gt;
&lt;p&gt;Assumption: the math assumes a steady fps. Real fps moves up and down, so an average is a guide. Input lag is not included.&lt;/p&gt;
&lt;p&gt;“Step” means the common refresh rates 144, 165, 180, 200, 240, 280, 300 and 360Hz.&lt;/p&gt;





























































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Average fps&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;144Hz&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;240Hz&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;360Hz&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Lowest step that shows the most new frames&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;60 fps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;60&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;60&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;60&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144Hz&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;144 fps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144Hz&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;200 fps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;200&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;200&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;200Hz&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;240 fps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;240&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;240&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;240Hz&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;300 fps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;240&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;300&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;300Hz&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;360 fps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;240&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;360&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;360Hz&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;400 fps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;240&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;360&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;360Hz (shows 360 of 400)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;In this guide’s grouping, casual play is 144–200Hz, ranked play is 240–280Hz, and competitive play is 300Hz and up. This isn’t an official standard.&lt;/p&gt;
&lt;h3 id=&quot;what-the-pros-use&quot;&gt;What the pros use&lt;/h3&gt;
&lt;p&gt;According to ProSettings, a third-party site, every VALORANT pro it analyzed uses a monitor of at least 240Hz (article updated 2026-01-21). That’s a pro trend, so a normal player should go by their own measured average fps.&lt;/p&gt;
&lt;p&gt;In its table updated 2026-10-08, the most-used model among 700 players (24.5-inch, 1080p, 360Hz, TN) has 23.29%. It isn’t a pick: Amazon.com searches on 2026-10-09 found no listing.&lt;/p&gt;
&lt;span id=&quot;measure-fps&quot;&gt;&lt;/span&gt;
&lt;h2 id=&quot;how-to-measure-your-fps-in-valorant&quot;&gt;How to measure your fps in VALORANT&lt;/h2&gt;
&lt;p&gt;In this guide’s method, go by your average fps in normal matches. Stats shows the current fps, so watch where it settles. For a number, use FrameView, which shows Average FPS.&lt;/p&gt;
&lt;p&gt;Per Riot’s official pages, Settings &amp;gt; Video &amp;gt; Stats shows Client FPS and other stats as numbers or graphs (2021 article). It doesn’t say it shows an average.&lt;/p&gt;
&lt;p&gt;Per NVIDIA’s FrameView user guide, FrameView shows Average FPS on screen. Press Scroll Lock to start and stop a capture and it shows a summary, on any GPU brand.&lt;/p&gt;
&lt;p&gt;VALORANT’s spec table (dated 2026-05-21) has three targets, 30, 60 and 144 fps, and lists no spec for 240 or 360 fps. For the 144 fps (high-end) tier, Riot lists the GTX 1050 Ti, Radeon R7 370 and Arc A310 as GPUs.&lt;/p&gt;
&lt;p&gt;There’s no per-GPU VALORANT fps with test conditions. Fps depends on your PC, so measure it yourself.&lt;/p&gt;
&lt;p&gt;In Riot’s crash-troubleshooting article, if the game crashes, set the frame cap (LIMIT FPS ALWAYS) below your average in-match fps.&lt;/p&gt;
&lt;section id=&quot;valorant-monitor-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;valorant-monitor-calc-title&quot;&gt; &lt;h3 id=&quot;valorant-monitor-calc-title&quot;&gt;VALORANT fps-to-monitor calculator&lt;/h3&gt; &lt;p&gt;Pick your measured VALORANT fps (or don&amp;#39;t know), how seriously you play and your eye-to-screen distance to see the refresh rate that adds frames, the size and resolution, plus a matching pick.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;msi_pro_mp243l_e14&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MSI PRO MP243L E14&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81Y+vuCf9jL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MSI PRO MP243L E14&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FG5XLWNV?q=MSI+PRO+MP243L+E14&amp;amp;us=B0FG5XLWNV&amp;amp;l=en&quot; aria-label=&quot;View MSI PRO MP243L E14 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;PRO MP243L E14&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MSI PRO MP243L E14&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81Y+vuCf9jL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MSI PRO MP243L E14&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FG5XLWNV?q=MSI+PRO+MP243L+E14&amp;amp;us=B0FG5XLWNV&amp;amp;l=en&quot; aria-label=&quot;View MSI PRO MP243L E14 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;dell_se2426hg&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell SE2426HG&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81cKk5KQOFL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell SE2426HG&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GKFLQ9SW?q=Dell+SE2426HG&amp;amp;us=B0GKFLQ9SW&amp;amp;l=en&quot; aria-label=&quot;View Dell SE2426HG on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;SE2426HG&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell SE2426HG&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81cKk5KQOFL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell SE2426HG&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GKFLQ9SW?q=Dell+SE2426HG&amp;amp;us=B0GKFLQ9SW&amp;amp;l=en&quot; aria-label=&quot;View Dell SE2426HG on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;asus_vg259qmr5a&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG259QMR5A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/712YWC65LDL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG259QMR5A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F72R4KLC?q=ASUS+TUF+Gaming+VG259QMR5A&amp;amp;us=B0F72R4KLC&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG259QMR5A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;VG259QMR5A&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG259QMR5A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/712YWC65LDL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG259QMR5A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F72R4KLC?q=ASUS+TUF+Gaming+VG259QMR5A&amp;amp;us=B0F72R4KLC&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG259QMR5A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the fps table above and the &amp;quot;smaller of fps and Hz&amp;quot; rule.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;base&quot;:50,&quot;baseW&quot;:52.704,&quot;w27&quot;:59.789,&quot;steps&quot;:[144,165,180,200,240,280,300,360],&quot;bands&quot;:{&quot;casual&quot;:{&quot;min&quot;:144,&quot;max&quot;:200},&quot;serious&quot;:{&quot;min&quot;:240,&quot;max&quot;:280},&quot;competitive&quot;:{&quot;min&quot;:300,&quot;max&quot;:9999}},&quot;bandOrder&quot;:[&quot;casual&quot;,&quot;serious&quot;,&quot;competitive&quot;],&quot;playCap&quot;:{&quot;casual&quot;:&quot;casual&quot;,&quot;serious&quot;:&quot;serious&quot;,&quot;competitive&quot;:&quot;competitive&quot;},&quot;riotHigh&quot;:144,&quot;models&quot;:[{&quot;id&quot;:&quot;asus_vg259qm&quot;,&quot;hz&quot;:280,&quot;res&quot;:&quot;1920x1080&quot;,&quot;sync&quot;:true,&quot;width&quot;:54.3744,&quot;size&quot;:24.5,&quot;hdmiHz&quot;:240},{&quot;id&quot;:&quot;asus_vg259q5a&quot;,&quot;hz&quot;:200,&quot;res&quot;:&quot;1920x1080&quot;,&quot;sync&quot;:true,&quot;width&quot;:54.3744,&quot;size&quot;:24.5,&quot;hdmiHz&quot;:200},{&quot;id&quot;:&quot;msi_pro_mp243l_e14&quot;,&quot;hz&quot;:144,&quot;res&quot;:&quot;1920x1080&quot;,&quot;sync&quot;:true,&quot;width&quot;:52.704,&quot;size&quot;:23.8,&quot;hdmiHz&quot;:144},{&quot;id&quot;:&quot;dell_se2426hg&quot;,&quot;hz&quot;:240,&quot;res&quot;:&quot;1920x1080&quot;,&quot;sync&quot;:true,&quot;width&quot;:52.704,&quot;size&quot;:23.8,&quot;hdmiHz&quot;:240},{&quot;id&quot;:&quot;asus_vg259qmr5a&quot;,&quot;hz&quot;:310,&quot;res&quot;:&quot;1920x1080&quot;,&quot;sync&quot;:true,&quot;width&quot;:54.3744,&quot;size&quot;:24.5,&quot;hdmiHz&quot;:240}],&quot;t25&quot;:51.58469945355192,&quot;t27&quot;:56.72150121432909,&quot;dists&quot;:[50,55,60,65,70,75,80,85,90],&quot;fpsOptions&quot;:[&quot;unknown&quot;,60,90,120,144,165,180,200,240,280,300,360,400],&quot;tightRatio&quot;:0.1,&quot;rel&quot;:{&quot;f27&quot;:1.1344262295081966,&quot;q27&quot;:0.8491803278688524},&quot;pxRatio&quot;:1.7777777777777777,&quot;measureAnchor&quot;:&quot;#measure-fps&quot;,&quot;specs&quot;:{&quot;asus_vg259qm&quot;:{&quot;size&quot;:24.5,&quot;hz&quot;:280,&quot;hdmiHz&quot;:240},&quot;asus_vg259q5a&quot;:{&quot;size&quot;:24.5,&quot;hz&quot;:200,&quot;hdmiHz&quot;:200},&quot;msi_pro_mp243l_e14&quot;:{&quot;size&quot;:23.8,&quot;hz&quot;:144,&quot;hdmiHz&quot;:144},&quot;dell_se2426hg&quot;:{&quot;size&quot;:23.8,&quot;hz&quot;:240,&quot;hdmiHz&quot;:240},&quot;asus_vg259qmr5a&quot;:{&quot;size&quot;:24.5,&quot;hz&quot;:310,&quot;hdmiHz&quot;:240}},&quot;buy&quot;:{&quot;asus_vg259qm&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG259QM&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG259QM&quot;,&quot;jp&quot;:&quot;B08GJ4413W&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B08GJ4413W&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG259QM&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG259QM&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81gT8OwXysL._AC_SX679_.jpg&quot;,&quot;jan&quot;:&quot;4718017571302&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1},&quot;VG259QM&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG259QM&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG259QM&quot;,&quot;jp&quot;:&quot;B08GJ4413W&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B08GJ4413W&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG259QM&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG259QM&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81gT8OwXysL._AC_SX679_.jpg&quot;,&quot;jan&quot;:&quot;4718017571302&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1},&quot;asus_vg259q5a&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;jp&quot;:&quot;B0F9WJLW45&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0F9WJLW45&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71hhyOqLuZL._AC_SX679_.jpg&quot;,&quot;jan&quot;:&quot;4711387918951&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;VG259Q5A&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;jp&quot;:&quot;B0F9WJLW45&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0F9WJLW45&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71hhyOqLuZL._AC_SX679_.jpg&quot;,&quot;jan&quot;:&quot;4711387918951&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;msi_pro_mp243l_e14&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;en&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FG5XLWNV&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FG5XLWNV&quot;,&quot;asinUS&quot;:&quot;B0FG5XLWNV&quot;,&quot;title&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;searchQuery&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81Y+vuCf9jL._AC_SX679_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;PRO MP243L E14&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;en&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FG5XLWNV&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FG5XLWNV&quot;,&quot;asinUS&quot;:&quot;B0FG5XLWNV&quot;,&quot;title&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;searchQuery&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81Y+vuCf9jL._AC_SX679_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;dell_se2426hg&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell SE2426HG&quot;,&quot;en&quot;:&quot;Dell SE2426HG&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GKFLQ9SW&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GKFLQ9SW&quot;,&quot;asinUS&quot;:&quot;B0GKFLQ9SW&quot;,&quot;title&quot;:&quot;Dell SE2426HG&quot;,&quot;searchQuery&quot;:&quot;Dell SE2426HG&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81cKk5KQOFL._AC_SX679_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;SE2426HG&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell SE2426HG&quot;,&quot;en&quot;:&quot;Dell SE2426HG&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GKFLQ9SW&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GKFLQ9SW&quot;,&quot;asinUS&quot;:&quot;B0GKFLQ9SW&quot;,&quot;title&quot;:&quot;Dell SE2426HG&quot;,&quot;searchQuery&quot;:&quot;Dell SE2426HG&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81cKk5KQOFL._AC_SX679_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;asus_vg259qmr5a&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG259QMR5A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG259QMR5A&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F72R4KLC&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F72R4KLC&quot;,&quot;asinUS&quot;:&quot;B0F72R4KLC&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG259QMR5A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG259QMR5A&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/712YWC65LDL._AC_SX679_.jpg&quot;}},&quot;rank_us&quot;:2},&quot;VG259QMR5A&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG259QMR5A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG259QMR5A&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F72R4KLC&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F72R4KLC&quot;,&quot;asinUS&quot;:&quot;B0F72R4KLC&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG259QMR5A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG259QMR5A&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/712YWC65LDL._AC_SX679_.jpg&quot;}},&quot;rank_us&quot;:2}},&quot;accessory&quot;:{&quot;ja&quot;:{},&quot;en&quot;:{}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;valorant-monitor-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 1. リフレッシュレート（gaming-monitor・work-and-gaming と同じ式）: 画面に出る新しいコマ = min(fps, Hz)
//    段を上げて増える分 = min(fps, 上のHz) − min(fps, 下のHz)
// 2. サイズ（choose-monitor の方式）: 目安の距離 = m.base（OSHA の下限）× 画面の横幅 ÷ 23.8型の横幅
// 3. Hz の帯（casual / serious / competitive）と遊び方の帯は、この記事で決めた分け方（公的な基準ではない）

function shown(fps, hz) {
  return Math.min(fps, hz);
}

// 下の Hz から上の Hz に上げたとき、1秒に増える新しいコマ
function gain(fps, lo, hi) {
  return shown(fps, hi) - shown(fps, lo);
}

function frameMs(hz) {
  return 1000 / hz;
}

// fps を全部出せる、いちばん低い段（無ければいちばん上の段）
function hzFor(fps, steps) {
  const s = steps.find((x) =&gt; x &gt;= fps);
  return s ?? steps[steps.length - 1];
}

// Hz → この記事の帯
function bandOf(hz, m) {
  return m.bandOrder.find((b) =&gt; hz &gt;= m.bands[b].min &amp;&amp; hz &lt;= m.bands[b].max) || null;
}

function targetDist(screenW, m) {
  return (m.base * screenW) / m.baseW;
}

function meets(distCm, screenW, m) {
  return distCm &gt;= targetDist(screenW, m);
}

// 読者の条件 → 推奨。fps は数値か &quot;unknown&quot;
function recommend({ fps, play, dist }, m) {
  const known = fps !== &quot;unknown&quot; &amp;&amp; Number(fps) &gt; 0;
  const f = known ? Number(fps) : m.riotHigh;
  const hz = hzFor(f, m.steps); // コマが増える（fps を全部出せる）いちばん低い段
  const fpsBand = bandOf(hz, m);
  const cap = m.playCap[play];
  const ri = (b) =&gt; m.bandOrder.indexOf(b);
  const band = ri(fpsBand) &lt;= ri(cap) ? fpsBand : cap; // 商品を出す帯 = fps の帯と遊び方の帯の低いほう
  const capped = band !== fpsBand;
  const d = Number(dist);
  const fits27 = meets(d, m.w27, m);
  // 27型を候補にするのは、目安の距離を満たし、競技・大会でないとき（この記事の分け方）
  const size = fits27 &amp;&amp; play !== &quot;competitive&quot; ? &quot;24or27&quot; : &quot;24&quot;;
  return { known, fps: f, hz, fpsBand, band, capped, shown: shown(f, hz), size, fits27, dist: d };
}

// 商品が推奨を満たすか（公式仕様の値だけ）: 帯の Hz、フルHD、可変リフレッシュレート、サイズの目安の距離
function matches(p, r, m) {
  const b = m.bands[r.band];
  if (!(p.hz &gt;= b.min &amp;&amp; p.hz &lt;= b.max)) return false;
  if (p.res !== &quot;1920x1080&quot; || !p.sync) return false;
  return meets(r.dist, p.width, m);
}

function picksFor(r, m) {
  return r ? m.models.filter((p) =&gt; matches(p, r, m)).map((p) =&gt; p.id) : [];
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。
// 入力は条件だけ（VALORANTで測ったfps〈分からないを含む〉・遊び方・目から画面まで）。機種は選ばせない。
// 出力: コマが増えるHz、サイズ、解像度と、条件に合う買える商品（picks）。帯はこの記事の分け方。

const T_ = {
  ja: {
    fps: &quot;試合中の平均fps&quot;, unknown: &quot;分からない&quot;, fpsTop: (x) =&gt; `${x}fps以上`,
    play: &quot;遊び方&quot;, casual: &quot;気軽に遊ぶ&quot;, serious: &quot;ランクを本気で&quot;, competitive: &quot;競技・大会&quot;,
    dist: &quot;目から画面まで&quot;,
    vOk: (h) =&gt; `○ ${h}Hz級でfpsを全部出せます`, vTop: (h) =&gt; `○ ${h}Hzで、fpsのうち${h}まで出せます`, vCap: (h, b) =&gt; `○ この遊び方なら${b}で十分（${h}Hzならコマが増える）`,
    vUnknown: &quot;△ まずfpsを測りましょう&quot;,
    measure: { text: &quot;平均fpsの測り方（StatsとFrameView）を見る&quot;, },
    unknownHz: (h) =&gt; `測るまでは、Riotのハイエンドの目標（${h}fps）に合う${h}Hz級を基準にします`,
    hz: (h, f, n) =&gt; `コマが増えるHz: ${h}Hz級（${f}fpsなら、1秒に出る新しいコマは${n}）`,
    hzTop: (h, f) =&gt; `${f}fpsのうち、${h}を超える分は画面に出ません`,
    more: (lo, hi, g) =&gt; `${lo}Hzから${hi}Hzにすると、1秒に${g}コマ増えます`,
    same: (h) =&gt; `${h}Hzより上にしても、新しいコマは増えません`,
    cap: (b) =&gt; `候補は、遊び方の目安（${b}）までにしています（この記事の分け方）`,
    band: (b) =&gt; `候補の帯: ${b}`,
    size24: (t) =&gt; `サイズ: 24〜25型（27型の目安の距離${t}cmより近いため）`,
    size24c: &quot;サイズ: 24〜25型（競技・大会では距離に関係なく。この記事の分け方）&quot;,
    size27: (t, m) =&gt; `サイズ: 24〜25型か27型（27型の目安の距離${t}cm以上。余裕${m}cm）`,
    size27t: (t, m) =&gt; `サイズ: 24〜25型か27型（27型の目安の距離${t}cm以上。余裕${m}cmのぎりぎり）`,
    near245: (t) =&gt; `24.5型の目安の距離は${t}cmで、この距離では23.8型が目安です`,
    res24: &quot;解像度: フルHD（1920×1080）&quot;,
    res27: (q, f, x) =&gt; `解像度: 24〜25型はフルHD。27型ならWQHD（画素は23.8型フルHDの${q}倍）。27型フルHDは画素が${f}倍で粗くなります。WQHDは描く画素がフルHDの${x}倍なので、解像度を変えてStatsで測り、狙うHz以上のfpsが出るときだけにします`,
    tight: (h) =&gt; `候補の最大は${h}Hzで、帯の下限に近いぎりぎりです`,
    under: (h, f) =&gt; `候補の最大は${h}Hzで、${f}fpsのうち${h}まで出せます`,
    hdmi: (h, d) =&gt; `${h}HzはDisplayPortのとき（HDMIでは${d}Hz）`,
    hzS: (h) =&gt; `最大${h}Hz`, sizeS: (z) =&gt; `${z}型・1920×1080`,
    mYou: (x) =&gt; `あなた ${x}fps`, mOk: (h) =&gt; `${h}Hzで全部出せる 〜${h}fps`,
    note: &quot;結果は計算の目安です。fpsは一定とした計算で、操作の遅れや体感の差は含みません。Hzの帯と遊び方の分け方はこの記事で決めたもので、公的な基準ではありません。&quot;,
    bandName: { casual: &quot;144〜200Hz&quot;, serious: &quot;240〜280Hz&quot;, competitive: &quot;300Hz以上&quot; },
  },
  en: {
    fps: &quot;Average in-match fps&quot;, unknown: &quot;Don&apos;t know&quot;, fpsTop: (x) =&gt; `${x} fps or more`,
    play: &quot;How you play&quot;, casual: &quot;Casual&quot;, serious: &quot;Ranked, seriously&quot;, competitive: &quot;Competitive / tournaments&quot;,
    dist: &quot;Eyes to screen&quot;,
    vOk: (h) =&gt; `✓ A ${h}Hz monitor shows all your fps`, vTop: (h) =&gt; `✓ ${h}Hz shows up to ${h} of your fps`, vCap: (h, b) =&gt; `✓ For how you play, ${b} is enough (${h}Hz would add frames)`,
    vUnknown: &quot;△ Measure your fps first&quot;,
    measure: { text: &quot;How to measure average fps (Stats and FrameView)&quot; },
    unknownHz: (h) =&gt; `Until you measure, start from a ${h}Hz monitor, matching Riot&apos;s high-end target of ${h} fps`,
    hz: (h, f, n) =&gt; `Refresh rate that adds frames: ${h}Hz class (at ${f} fps, ${n} new frames per second)`,
    hzTop: (h, f) =&gt; `Of your ${f} fps, anything above ${h} isn&apos;t shown`,
    more: (lo, hi, g) =&gt; `Going from ${lo}Hz to ${hi}Hz adds ${g} frames per second`,
    same: (h) =&gt; `Going above ${h}Hz adds no new frames`,
    cap: (b) =&gt; `Picks stay within your play style&apos;s band (${b}), this guide&apos;s own split`,
    band: (b) =&gt; `Pick band: ${b}`,
    size24: (t) =&gt; `Size: 24–25 inch (closer than the 27-inch target of ${t} cm)`,
    size24c: &quot;Size: 24–25 inch (for competitive play at any distance, this guide&apos;s own split)&quot;,
    size27: (t, m) =&gt; `Size: 24–25 inch or 27-inch (27-inch target ${t} cm or more; ${m} cm to spare)`,
    size27t: (t, m) =&gt; `Size: 24–25 inch or 27-inch (27-inch target ${t} cm or more; borderline, ${m} cm to spare)`,
    near245: (t) =&gt; `The 24.5-inch target is ${t} cm, so at this distance a 23.8-inch is the target`,
    res24: &quot;Resolution: 1080p (1920×1080)&quot;,
    res27: (q, f, x) =&gt; `Resolution: 1080p at 24–25 inch. On a 27-inch, 1440p (pixels ${q}× a 23.8-inch 1080p). 27-inch 1080p pixels are ${f}×, so coarser. 1440p has ${x}× the pixels to draw, so switch resolution, measure with Stats, and use it only if fps still reaches your target`,
    tight: (h) =&gt; `The pick tops out at ${h}Hz, borderline at the low end of the band`,
    under: (h, f) =&gt; `The pick tops out at ${h}Hz, so it shows up to ${h} of your ${f} fps`,
    hdmi: (h, d) =&gt; `${h}Hz over DisplayPort (${d}Hz over HDMI)`,
    hzS: (h) =&gt; `Up to ${h}Hz`, sizeS: (z) =&gt; `${z}-inch 1920×1080`,
    mYou: (x) =&gt; `You: ${x} fps`, mOk: (h) =&gt; `${h}Hz shows all up to ${h} fps`,
    note: &quot;This is a calculated estimate. It assumes a steady fps and leaves out input lag and how it feels. The refresh-rate bands and play-style split are this guide&apos;s own choice, not an official standard.&quot;,
    bandName: { casual: &quot;144–200Hz&quot;, serious: &quot;240–280Hz&quot;, competitive: &quot;300Hz and up&quot; },
  },
};

function fields(M, lang) {
  const t = T_[lang];
  const top = M.fpsOptions[M.fpsOptions.length - 1];
  return [
    // gauge: 型 E のスライダー（止まる値は記事の fps の選択肢だけ）。リフレッシュレートの段（M.steps）と同じ値は区切りの目盛り
    { name: &quot;fps&quot;, type: &quot;select&quot;, label: t.fps, value: &quot;144&quot;, ui: &quot;chips&quot;, gauge: true,
      options: M.fpsOptions.map((x) =&gt; ({ value: String(x), label: x === &quot;unknown&quot; ? t.unknown : x === top ? t.fpsTop(x) : lang === &quot;ja&quot; ? `${x}fps` : `${x} fps`,
        ...(x === &quot;unknown&quot; ? { major: lang === &quot;ja&quot; ? &quot;?&quot; : &quot;?&quot; } : [60, 144, 240, 400].includes(x) ? { major: String(x) } : {}),
        ...(M.steps.includes(x) ? { kind: &quot;cut&quot;, tick: `${x}`, minorTick: ![144, 240, 360].includes(x) } : {}) })) },
    { name: &quot;play&quot;, type: &quot;select&quot;, label: t.play, value: &quot;casual&quot;, options: [&quot;casual&quot;, &quot;serious&quot;, &quot;competitive&quot;].map((x) =&gt; ({ value: x, label: t[x] })) },
    // 目から画面までは5cm刻み（この記事の仮定の幅 50〜90cm）
    { name: &quot;dist&quot;, type: &quot;select&quot;, label: t.dist, value: &quot;70&quot;, options: M.dists.map((x) =&gt; ({ value: String(x), label: lang === &quot;ja&quot; ? `${x}cm` : `${x} cm (${Math.round(x / 2.54)} in)` })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const dist = Number(v.dist);
  if (!(dist &gt; 0) || !M.playCap[v.play]) return { status: &quot;error&quot;, lines: [] };
  const r = recommend({ fps: v.fps, play: v.play, dist }, M);
  const lines = [];
  const bn = t.bandName;
  let verdict, status = &quot;ok&quot;;
  if (!r.known) {
    verdict = t.vUnknown; status = &quot;cond&quot;;
    lines.push({ text: t.measure.text, href: M.measureAnchor });
    lines.push(t.unknownHz(M.riotHigh));
  } else {
    const topHz = M.steps[M.steps.length - 1];
    verdict = r.capped ? t.vCap(r.hz, bn[r.band]) : r.fps &gt; topHz ? t.vTop(r.hz) : t.vOk(r.hz);
    lines.push(t.hz(r.hz, r.fps, r.shown));
    if (r.fps &gt; r.hz) lines.push(t.hzTop(r.hz, r.fps));
    if (r.hz &gt; 144) lines.push(t.more(144, r.hz, gain(r.fps, 144, r.hz)));
    if (r.hz &lt; topHz) lines.push(t.same(r.hz));
    if (r.capped) lines.push(t.cap(bn[r.band]));
  }
  lines.push(t.band(bn[r.band]));
  const t27 = Math.ceil(M.t27 * 100 - 1e-9) / 100;
  if (v.play === &quot;competitive&quot;) lines.push(t.size24c);
  else if (r.size === &quot;24or27&quot;) {
    const mg = Math.floor((dist - M.t27) * 100 + 1e-9) / 100;
    const tightD = dist - M.t27 &lt; 1;
    lines.push(tightD ? t.size27t(t27, mg) : t.size27(t27, mg));
    if (tightD) status = &quot;cond&quot;;
  } else lines.push(t.size24(t27));
  if (dist &lt; M.t25) lines.push(t.near245(Math.ceil(M.t25 * 100 - 1e-9) / 100));
  if (r.size !== &quot;24or27&quot;) lines.push(t.res24);
  else lines.push(t.res27(M.rel.q27.toFixed(2), M.rel.f27.toFixed(2), M.pxRatio.toFixed(2)));
  const picks = picksFor(r, M);
  const lowest = M.bands[r.band].min;
  // 記事のツールが出すのは、その国で買える候補のうち安い順の1つ（build-tool と同じ選び方）。その商品で注記を決める
  const mk = lang === &quot;ja&quot; ? &quot;jp&quot; : &quot;us&quot;, rk = &quot;rank_&quot; + mk;
  const shownPick = picks.filter((id) =&gt; M.buy &amp;&amp; M.buy[id] &amp;&amp; M.buy[id][mk]).sort((x, y) =&gt; M.buy[x][rk] - M.buy[y][rk])[0];
  if (shownPick) {
    const ph = M.specs[shownPick].hz;
    if (r.known &amp;&amp; ph &lt; r.fps) lines.push(t.under(ph, r.fps));
    else if ((ph - lowest) / lowest &lt; M.tightRatio) lines.push(t.tight(ph));
  }
  const meter = r.known ? { min: 0, max: 420, value: Math.min(r.fps, 420), ok: [0, r.hz], unit: &quot;fps&quot;, valueLabel: t.mYou(r.fps), okLabel: t.mOk(r.hz) } : undefined;
  // 型 E の目盛り: リフレッシュレートの段（M.steps）ごとの帯と、測った fps（分からないときは出さない）
  const topStep = M.steps[M.steps.length - 1];
  const gauge = r.known ? { cuts: M.steps.map((h) =&gt; ({ id: `${h}Hz`, min: h })), value: r.fps, valueLabel: t.mYou(r.fps), status, tightRatio: 0, overLabel: lang === &quot;ja&quot; ? `${topStep}Hz 超` : `Over ${topStep}Hz` } : undefined;
  return { status, verdict, lines, picks, meter, gauge };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（fps × 遊び方 × 距離）
function presets() {
  const out = [];
  for (const fps of [&quot;unknown&quot;, &quot;120&quot;, &quot;144&quot;, &quot;200&quot;, &quot;240&quot;, &quot;300&quot;, &quot;360&quot;, &quot;400&quot;]) out.push({ fps, play: &quot;casual&quot;, dist: &quot;70&quot; });
  for (const fps of [&quot;240&quot;, &quot;300&quot;]) out.push({ fps, play: &quot;serious&quot;, dist: &quot;70&quot; });
  for (const fps of [&quot;300&quot;, &quot;360&quot;]) out.push({ fps, play: &quot;competitive&quot;, dist: &quot;70&quot; });
  out.push({ fps: &quot;144&quot;, play: &quot;casual&quot;, dist: &quot;50&quot; });
  out.push({ fps: &quot;200&quot;, play: &quot;casual&quot;, dist: &quot;60&quot; });
  return out;
}

// カードに出す仕様（その商品の公式仕様のうち、この計算で使った値）
function pickSpecs(id, v, M, lang) {
  const t = T_[lang], p = M.specs[id];
  if (!p) return [];
  const out = [t.sizeS(p.size)];
  out.push(p.hdmiHz != null &amp;&amp; p.hdmiHz &lt; p.hz ? t.hdmi(p.hz, p.hdmiHz) : t.hzS(p.hz));
  return out;
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;gauge&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;where-24-inches-ends-and-27-begins&quot;&gt;Where 24 inches ends and 27 begins&lt;/h2&gt;
&lt;p&gt;Eye-to-screen, a 23.8-inch meets the target from 50 cm, a 24.5-inch from 51.59 cm and a 27-inch from 56.73 cm. Within 1 cm past each distance it’s borderline.&lt;/p&gt;
&lt;p&gt;In this guide’s grouping, for competitive play, put fps first and use 1080p. A 27-inch at 1080p has pixels 1.13× the size of a 23.8-inch’s, so pick 24 to 25 inches.&lt;/p&gt;
&lt;h2 id=&quot;how-to-choose-between-1080p-and-1440p&quot;&gt;How to choose between 1080p and 1440p&lt;/h2&gt;
&lt;p&gt;In this guide’s grouping, go 1440p only with a 27-inch (56.73 cm or more eye-to-screen, not competitive play). Your average fps at 1440p must still reach the monitor’s refresh rate. Within 1 cm past 56.73 cm, it’s borderline.&lt;/p&gt;
&lt;p&gt;1440p has 1.78× the pixels of 1080p to draw. How much fps drops depends on the PC, so measure your average fps at 1440p.&lt;/p&gt;
&lt;h2 id=&quot;response-time-and-panel-type&quot;&gt;Response time and panel type&lt;/h2&gt;
&lt;p&gt;You don’t need 1 ms. A rated GtG shorter than one frame (4.17 ms at 240Hz) is enough. GtG is how long a pixel takes to change from one shade to another.&lt;/p&gt;
&lt;p&gt;Per the makers’ official specs, MSI’s MP243L lists 1 ms for MPRT and 4 ms for GtG. MPRT is how long a pixel stays visible, so read the GtG line.&lt;/p&gt;
&lt;p&gt;In this guide’s grouping, with ASUS’s official specs as the example, panels aren’t ranked here. Choose by refresh rate and rated GtG. Its OLED example, a 27-inch 4K model, rates 0.03 ms GtG, but 24-to-25-inch OLEDs aren’t covered.&lt;/p&gt;
&lt;p&gt;Per ASUS’s official specs, among its 280Hz models, the TN and the Fast IPS both rate 1 ms (GTG). Viewing angles are 170°/160° for the TN and 178°/178° for the IPS.&lt;/p&gt;
&lt;h2 id=&quot;variable-refresh-rate-and-reflex&quot;&gt;Variable refresh rate and Reflex&lt;/h2&gt;
&lt;p&gt;In this guide’s grouping, picks must support variable refresh (G-SYNC Compatible, FreeSync or similar). When fps falls below the monitor’s maximum Hz, variable refresh matches the refresh to your fps. It helps in heavy scenes, or when a pick’s Hz is close to your average fps.&lt;/p&gt;
&lt;p&gt;In NVIDIA’s own description, G-SYNC Compatible monitors are ones NVIDIA has validated for basic variable refresh rate. They don’t use NVIDIA’s processor.&lt;/p&gt;
&lt;p&gt;In AMD’s own description, FreeSync matches the display’s refresh to the GPU’s frame rate to reduce artifacts such as tearing. If your fps regularly exceeds the refresh rate, turn on V-Sync or cap fps.&lt;/p&gt;
&lt;p&gt;Reflex cuts PC latency by syncing GPU and CPU work, and VALORANT supports it. It’s a PC-side feature, so it isn’t a monitor condition.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-situation&quot;&gt;Picks by situation&lt;/h2&gt;
&lt;p&gt;In this guide’s grouping, picks come from whichever band is lower: the one your fps reaches, or the one for how seriously you play. A 24.5-inch meets the target from 51.59 cm, while at 50 cm a 23.8-inch is the target. Right at 51.59 cm, it’s borderline.&lt;/p&gt;
&lt;p&gt;Rules: sold new by Amazon or the maker, not an import, at least 100 ratings, 4 stars or more, and no warning from Sakura Checker. Check prices on the store.&lt;/p&gt;
&lt;h3 id=&quot;casual-play&quot;&gt;Casual play&lt;/h3&gt;
&lt;p&gt;It’s a 23.8-inch 1080p monitor, up to 144Hz, Adaptive-Sync. Borderline: its 144Hz maximum is the casual band’s floor. The MSI PRO MP243L E14 is in MSI’s business and productivity line. Its inputs are one HDMI 2.0 (144Hz) and one VGA, with no DisplayPort.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MSI PRO MP243L E14&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81Y+vuCf9jL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MSI PRO MP243L E14&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FG5XLWNV?q=MSI+PRO+MP243L+E14&amp;amp;us=B0FG5XLWNV&amp;amp;l=en&quot; aria-label=&quot;View MSI PRO MP243L E14 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;serious-ranked-play&quot;&gt;Serious ranked play&lt;/h3&gt;
&lt;p&gt;It’s a 23.8-inch 1080p IPS monitor, up to 240Hz, FreeSync Premium. Also borderline: its 240Hz maximum is the ranked band’s floor. No Dell US page was found, so these specs, including the 240Hz maximum, come from the UK page.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell SE2426HG&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81cKk5KQOFL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell SE2426HG&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GKFLQ9SW?q=Dell+SE2426HG&amp;amp;us=B0GKFLQ9SW&amp;amp;l=en&quot; aria-label=&quot;View Dell SE2426HG on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;competitive-play-300hz-over-displayport-average-300-fps-from-5159-cm-204-in&quot;&gt;Competitive play, 300Hz+ over DisplayPort, average 300 fps+, from 51.59 cm (20.4 in)&lt;/h3&gt;
&lt;p&gt;It’s a 24.5-inch 1080p monitor, up to 310Hz, Adaptive-Sync. Also borderline, just above the 300Hz floor. The VG259QMR5A’s 310Hz is over DisplayPort; over HDMI it tops out at 240Hz.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG259QMR5A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/712YWC65LDL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG259QMR5A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F72R4KLC?q=ASUS+TUF+Gaming+VG259QMR5A&amp;amp;us=B0F72R4KLC&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG259QMR5A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;is-144hz-enough-for-valorant-does-a-high-hz-monitor-help-if-my-fps-is-low&quot;&gt;Is 144Hz enough for VALORANT? Does a high-Hz monitor help if my fps is low?&lt;/h3&gt;
&lt;p&gt;In this calculation, if your fps stays at 144 fps or below, 240Hz or 360Hz adds no new frames, so 144Hz is enough. At 200 fps, a 144Hz monitor shows 144 new frames a second and a 360Hz one shows 200.&lt;/p&gt;
&lt;p&gt;You only ever see the smaller of your fps and the refresh rate.&lt;/p&gt;
&lt;h3 id=&quot;whats-the-difference-between-240hz-and-360hz-do-you-need-360hz&quot;&gt;What’s the difference between 240Hz and 360Hz? Do you need 360Hz?&lt;/h3&gt;
&lt;p&gt;Working from your measured average fps, 360Hz adds frames only when your average fps is above 240 fps, up to 360 fps. Up to 280 fps, a 280Hz monitor adds just as many, and up to 300 fps, a 300Hz one does.&lt;/p&gt;
&lt;h3 id=&quot;pros-use-360hz-should-regular-players-copy-them&quot;&gt;Pros use 360Hz. Should regular players copy them?&lt;/h3&gt;
&lt;p&gt;According to ProSettings, a third-party site, every VALORANT pro it analyzed uses a monitor of at least 240Hz (article updated 2026-01-21). That’s a pro trend, so a normal player should go by their own measured average fps.&lt;/p&gt;
&lt;h3 id=&quot;should-you-get-a-24-inch-or-a-27-inch-monitor&quot;&gt;Should you get a 24-inch or a 27-inch monitor?&lt;/h3&gt;
&lt;p&gt;In this calculation, from 50 cm to 56.73 cm eye-to-screen, pick 24 to 25 inches. From 56.73 cm, a 27-inch is also an option.&lt;/p&gt;
&lt;p&gt;Within 1 cm past that, it’s borderline. Closer than 51.59 cm, a 23.8-inch rather than a 24.5-inch is the target.&lt;/p&gt;
&lt;p&gt;Right at 51.59 cm the 24.5-inch is borderline.&lt;/p&gt;
&lt;h3 id=&quot;1080p-or-1440p&quot;&gt;1080p or 1440p?&lt;/h3&gt;
&lt;p&gt;In this guide’s grouping, go 1440p only with a 27-inch (56.73 cm or more eye-to-screen, not competitive play). Your average fps at 1440p must still reach the monitor’s refresh rate.&lt;/p&gt;
&lt;p&gt;Within 1 cm past 56.73 cm, it’s borderline. 1440p has 1.78× the pixels of 1080p to draw.&lt;/p&gt;
&lt;p&gt;How much fps drops depends on the PC, so measure your average fps at 1440p.&lt;/p&gt;
&lt;h3 id=&quot;do-you-need-g-sync-freesync-or-nvidia-reflex-what-if-fps-goes-above-the-hz&quot;&gt;Do you need G-SYNC, FreeSync or NVIDIA Reflex? What if fps goes above the Hz?&lt;/h3&gt;
&lt;p&gt;In this guide’s grouping, picks must support variable refresh (G-SYNC Compatible, FreeSync or similar). When fps falls below the monitor’s maximum Hz, variable refresh matches the refresh to your fps.&lt;/p&gt;
&lt;p&gt;It helps in heavy scenes, or when a pick’s Hz is close to your average fps. In AMD’s own description, FreeSync matches the display’s refresh to the GPU’s frame rate to reduce artifacts such as tearing.&lt;/p&gt;
&lt;p&gt;If your fps regularly exceeds the refresh rate, turn on V-Sync or cap fps. In NVIDIA’s own description, Reflex cuts PC latency by syncing GPU and CPU work, and VALORANT supports it.&lt;/p&gt;
&lt;p&gt;It’s a PC-side feature, so it isn’t a monitor condition.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;New frames shown per second = min(your VALORANT fps, the monitor’s refresh rate), the same formula as the sibling 144Hz vs 240Hz guide. Gain from stepping up = min(fps, higher Hz) − min(fps, lower Hz). Going 144Hz → 240Hz adds only the fps above 144Hz, up to 240Hz. Going 240Hz → 360Hz adds only the fps above 240Hz, up to 360Hz. Assumes a steady fps; input lag and feel are not included.&lt;/li&gt;
&lt;li&gt;Frame time (ms) = 1000 ÷ Hz: 6.94 ms at 144Hz, 4.17 ms at 240Hz, 2.78 ms at 360Hz.&lt;/li&gt;
&lt;li&gt;Riot’s official spec table (dated 2026-05-21) targets 30 fps, 60 fps and 144 fps, and lists no spec for 240 or 360 fps. Riot publishes no per-GPU VALORANT fps with test conditions, so none are used. Readers measure their own (Settings &amp;gt; Video &amp;gt; Stats (shows performance stats or graphs)).&lt;/li&gt;
&lt;li&gt;The refresh-rate bands are this guide’s own split, not an official standard: casual = 144–200Hz, ranked = 240–280Hz, competitive = 300Hz and up. The calculator calls the lowest step that shows all your fps (144, 165, 180, 200, 240, 280, 300, 360Hz) the Hz that adds frames, and picks come from the lower of that step’s band and your play style’s band. If you don’t know your fps, it shows how to measure and uses the band for Riot’s high-end target (144 fps).&lt;/li&gt;
&lt;li&gt;Size: target distance = 50 cm (the low end of OSHA’s range) × the screen’s viewable width ÷ the 23.8-inch width (52.704 cm). A 24.5-inch (54.3744 cm) meets it from 51.59 cm (20.4 in) and a 27-inch (59.789 cm) from 56.73 cm (22.4 in), rounded up to two decimals, with no room right at that distance. Same formula as the sibling monitor-size guide. Desk distances 50 cm (19.7 in)–90 cm (35.4 in) in 5 cm steps were all checked.&lt;/li&gt;
&lt;li&gt;Resolution: pixel size ratio = pixel pitch ÷ the 23.8-inch 1080p pitch (0.2745 mm): 1.13× for 27-inch 1080p (0.3114 mm) and 0.85× for 27-inch 1440p (0.2331 mm). 1440p has 1.78× the pixels of 1080p. How much fps drops depends on the PC, so no number is used: switch resolution and measure with Stats.&lt;/li&gt;
&lt;li&gt;Pro usage is from ProSettings (third-party, updated 2026-10-08, 700 players). Only the top model’s share and the page’s own wording are used. Overall shares, such as all 360Hz monitors, aren’t published, so none are given.&lt;/li&gt;
&lt;li&gt;Variable refresh (G-SYNC Compatible, FreeSync, LFC) and Reflex are described in NVIDIA’s and AMD’s own terms. Latency numbers, cross-brand response-time or feel comparisons, and prices are not covered.&lt;/li&gt;
&lt;li&gt;Picks are new Amazon listings with at least 100 ratings and 4 stars, no sakura warning, not an import, and sold by Amazon or a seller confirmed as the maker’s own store, whose official specs meet each band’s condition (23.8 to 24.5 inch, 1080p, variable refresh, max Hz), cheapest with shipping first. Rating counts pooled with other models are not counted. Dell SE2426HG specs come from Dell’s UK page; no US page was found. No unit was tested in person.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Assumptions&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;70 cm: 70 (50–90)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;


















































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Riot minimum-spec target fps&lt;/td&gt;&lt;td&gt;30 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/valorant/support-tools/minimum-recommended-pc-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Riot recommended-spec target fps&lt;/td&gt;&lt;td&gt;60 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/valorant/support-tools/minimum-recommended-pc-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt; Rec Specs (60 FPS)&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Riot high-end-spec target fps&lt;/td&gt;&lt;td&gt;144 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/valorant/support-tools/minimum-recommended-pc-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Riot high-end (144 FPS) CPU&lt;/td&gt;&lt;td&gt;Intel i5-9400F 2.90GHz / AMD Ryzen 5 2600X&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/valorant/support-tools/minimum-recommended-pc-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Riot high-end (144 FPS) GPU&lt;/td&gt;&lt;td&gt;NVIDIA GTX 1050 Ti / AMD Radeon R7 370 / Intel Arc A310&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/valorant/support-tools/minimum-recommended-pc-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt; High-end Specs GPU&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Riot recommended (60 FPS) CPU&lt;/td&gt;&lt;td&gt;Intel i3-4150 / AMD Ryzen 3 1200&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/valorant/support-tools/minimum-recommended-pc-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt; Rec Specs CPU&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Riot recommended (60 FPS) GPU&lt;/td&gt;&lt;td&gt;NVIDIA GeForce GT 730 / AMD Radeon R7 240&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/valorant/support-tools/minimum-recommended-pc-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Riot minimum (30 FPS) CPU&lt;/td&gt;&lt;td&gt;Intel i3-540 / AMD Athlon 200GE&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/valorant/support-tools/minimum-recommended-pc-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt; Min Specs CPU&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Riot minimum (30 FPS) GPU&lt;/td&gt;&lt;td&gt;Intel HD 4000 / AMD Radeon R5 220&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/valorant/support-tools/minimum-recommended-pc-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt; Min Specs GPU&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Riot RAM requirement&lt;/td&gt;&lt;td&gt;4 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/valorant/support-tools/minimum-recommended-pc-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Date shown on Riot spec page&lt;/td&gt;&lt;td&gt;2026-05-21&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/valorant/support-tools/minimum-recommended-pc-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Main 16:9 resolutions VALORANT supports&lt;/td&gt;&lt;td&gt;1920x1080 / 2560x1440 / 3840x2160 (16:9, which Riot recommends)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/en-us/valorant/support-tools/supported-resolutions-in-valorant&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Where Riot says to set the FPS cap&lt;/td&gt;&lt;td&gt;ESC - VIDEO - LIMIT FPS ALWAYS; Riot suggests a value lower than the average FPS you get while playing&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/en-us/valorant/support-tools/troubleshooting-game-crashes-in-valorant&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt; Set a framerate cap in settings … ESC - VIDEO - LIMIT FPS ALWAYS. Try setting&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Where Riot says to show performance stats&lt;/td&gt;&lt;td&gt;Settings Video Stats (shows performance stats or graphs)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://playvalorant.com/en-us/news/game-updates/valorant-game-and-network-instability-basics/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;playvalorant.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Riot on what limits FPS&lt;/td&gt;&lt;td&gt;Lower-spec machines tend to be GPU-bound; mid-to-high-spec machines tend to be CPU-bound&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://playvalorant.com/en-us/news/dev/ask-valorant-may-31/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;playvalorant.com&lt;/a&gt; lower spec machines tend to be GPU bound …, whereas mid to high spec machines&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Riot: refresh rate vs FPS&lt;/td&gt;&lt;td&gt;Refresh rate is how many times the display is illuminated per second; FPS is how often images can change. They are different&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/en-us/valorant/support-tools/refresh-rate-and-vsync&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt; refresh rates determine how many times your display is illuminated per second. T&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Riot Multithreaded Rendering requirements&lt;/td&gt;&lt;td&gt;Multithreaded Rendering is for devices with 8 GB RAM, 2 GB VRAM and a CPU with at least 8 cores (physical and virtual)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.riotgames.com/en-us/valorant/support-tools/multithreaded-rendering&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.riotgames.com&lt;/a&gt; minimum specs: 8 GB RAM, 2 GB VRAM, CPU with at least 8 cores (physical and virt&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ProSettings sample (VALORANT pros)&lt;/td&gt;&lt;td&gt;700 players&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://prosettings.net/guides/valorant-monitor/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;prosettings.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ProSettings: most-used monitor&lt;/td&gt;&lt;td&gt;ZOWIE XL2566K (24.5-inch, 1920x1080, 360 Hz, TN) is used by 23.29% of players (163)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://prosettings.net/guides/valorant-monitor/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;prosettings.net&lt;/a&gt; The most used monitors by VALORANT players: Size 24.5, 1920x1080, 360, TN, ZOWIE&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ProSettings: pro refresh rates&lt;/td&gt;&lt;td&gt;ProSettings writes that all analyzed VALORANT pros use a monitor capable of at least 240 fps, and that 360 Hz is clearly the current standard in top leagues&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://prosettings.net/guides/valorant-monitor/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;prosettings.net&lt;/a&gt; All of our analyzed VALORANT professionals use a monitor that’s capable of displ&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ProSettings: pro resolution&lt;/td&gt;&lt;td&gt;ProSettings writes that the vast majority of pro monitors are 1080p and almost no pro is on a resolution above 1920x1080&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://prosettings.net/guides/valorant-monitor/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;prosettings.net&lt;/a&gt; the vast majority of the monitors in the pro scene are 1080p … Almost no profe&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ProSettings: ZOWIE brand share&lt;/td&gt;&lt;td&gt;74.29 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://prosettings.net/guides/valorant-monitor/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;prosettings.net&lt;/a&gt; Top monitor brands in VALORANT, Based on 700 players, Last updated 8 October, 20&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NVIDIA’s G-SYNC Compatible description&lt;/td&gt;&lt;td&gt;tear-free, stutter-free&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/products/g-sync-monitors/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AMD’s FreeSync description&lt;/td&gt;&lt;td&gt;The display refresh rate is synchronized with the framerate of FreeSync-compatible graphics cards, reducing or eliminating visual artifacts&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.amd.com/en/products/graphics/technologies/freesync.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;amd.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AMD: when FPS exceeds refresh rate&lt;/td&gt;&lt;td&gt;If game FPS regularly exceeds the display’s refresh rate, turn on V-Sync or cap the framerate for the best tear-free visual experience&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.amd.com/en/products/graphics/technologies/freesync.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;amd.com&lt;/a&gt; If your game FPS is regularly exceeding your display’s refresh rate, you can tur&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NVIDIA Reflex description&lt;/td&gt;&lt;td&gt;Reflex Low Latency reduces PC latency through precise synchronization of rendering across GPU and CPU&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/technologies/reflex/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NVIDIA Reflex and VALORANT&lt;/td&gt;&lt;td&gt;VALORANT is listed on NVIDIA’s Reflex-compatible products list&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/technologies/reflex/supported-products/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt; Reflex-Compatible Products from Partners: Valorant (games list)&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AMD LFC description&lt;/td&gt;&lt;td&gt;When framerate drops below the display’s minimum refresh rate, frames are duplicated so the display stays in its range (example: 60-144 Hz display, 40 FPS shown at 80 Hz)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.amd.com/en/products/graphics/technologies/freesync.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;amd.com&lt;/a&gt; FAQ: What is Low Framerate Compensation? … 40 FPS … doubling them … 80 Hz&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG258QM (TN) maker claim&lt;/td&gt;&lt;td&gt;TN panel, 1 ms (GTG), up to 280 Hz, 170/160 degree viewing angle&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg258qm/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Panel Type: TN / Viewing Angle (CR≧10, H/V): 170°/160° / 1ms(GTG) / 280Hz&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG259QM (IPS) maker claim&lt;/td&gt;&lt;td&gt;Fast IPS, 24.5-inch, 1920x1080, 1 ms (GTG), up to 280 Hz, 178/178 degree viewing angle&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/jp/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg259qm/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG259QMR5A (IPS) maker claim&lt;/td&gt;&lt;td&gt;Fast IPS, 24.5-inch, 1920x1080, 1 ms (GTG) / 0.3 ms (min), up to 310 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg259qmr5a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Panel Type: Fast IPS / Response Time: 1ms(GTG), 0.3ms(min.) / Refresh Rate (Max)&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS ROG Swift OLED PG27UCDM GTG claim (OLED example)&lt;/td&gt;&lt;td&gt;0.03 ms&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://rog.asus.com/us/monitors/27-to-31-5-inches/rog-swift-oled-pg27ucdm/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;rog.asus.com&lt;/a&gt; 0.03ms gray-to-gray (GTG) response time&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ: MPRT floor at 144 Hz&lt;/td&gt;&lt;td&gt;6.9 ms&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-ca/knowledge-center/knowledge/gaming-monitor-response-time.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ViewSonic: frame time at 240 Hz&lt;/td&gt;&lt;td&gt;4.17 ms&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.viewsonic.com/library/gaming/oled-gaming-monitor-response-time/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;viewsonic.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;fps-to-Hz model (calculation premise)&lt;/td&gt;&lt;td&gt;New frames shown per second = min(fps, refresh rate)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;guides/2021-03-20-gaming-monitor/model.mjs&quot;&gt;source&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lower end of OSHA’s preferred range&lt;/td&gt;&lt;td&gt;50 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;osha.gov&lt;/a&gt; 20 to 40 inches (50 to 100 cm)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Upper end of OSHA’s preferred range&lt;/td&gt;&lt;td&gt;100 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;osha.gov&lt;/a&gt; 20 to 40 inches (50 to 100 cm)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;23.8-inch viewable width&lt;/td&gt;&lt;td&gt;52.704 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2425H Active Area Horizontal 527.04 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch viewable width&lt;/td&gt;&lt;td&gt;59.789 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2725H Active Area Horizontal 597.89 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;23.8-inch 1080p pixel pitch&lt;/td&gt;&lt;td&gt;0.2745 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; Dell S2425H pixel pitch&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 1080p pixel pitch&lt;/td&gt;&lt;td&gt;0.3114 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; Dell S2725H pixel pitch&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 1440p pixel pitch&lt;/td&gt;&lt;td&gt;0.2331 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2537948-dell-s2725ds-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; Dell S2725DS pixel pitch&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;24.5-inch viewable width&lt;/td&gt;&lt;td&gt;54.3744 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg259qm/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Panel Size (inch) : 24.5 / Display Viewing Area (H x V) : 543.744 x 302.616 mm /&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG259QM max over DisplayPort&lt;/td&gt;&lt;td&gt;280 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg259qm/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Digital Signal Frequency : DisplayPort: 255&lt;del&gt;255 KHz (H) / 48&lt;/del&gt;280 Hz (V) / HDMI:&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG259QM max over HDMI&lt;/td&gt;&lt;td&gt;240 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/jp/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg259qm/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; HDMI: 30&lt;del&gt;255 KHz (H) / 48&lt;/del&gt;240 Hz (V)&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG259QMR5A max over DisplayPort&lt;/td&gt;&lt;td&gt;310 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg259qmr5a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Refresh Rate (Max) : 310Hz / Digital Signal Frequency : DisplayPort: 344~344 KHz&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG259QMR5A max over HDMI&lt;/td&gt;&lt;td&gt;240 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg259qmr5a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; HDMI: 31&lt;del&gt;255 KHz (H) / 48&lt;/del&gt;240 Hz (V)&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MSI PRO MP243L E14 inputs and category&lt;/td&gt;&lt;td&gt;One HDMI 2.0 (FHD@144Hz) and one D-Sub (VGA); no DisplayPort. MSI files it under Business &amp;amp; Productivity monitors&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://us.msi.com/Business-Productivity-Monitor/PRO-MP243L-E14/Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;us.msi.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MSI PRO MP243L E14 max refresh rate&lt;/td&gt;&lt;td&gt;144 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://us.msi.com/Business-Productivity-Monitor/PRO-MP243L-E14/Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;us.msi.com&lt;/a&gt; Refresh Rate 144Hz / HDMI 2.0 (FHD@144Hz)&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell SE2426HG max refresh rate (Dell UK page)&lt;/td&gt;&lt;td&gt;240 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/en-gb/shop/monitors/apd/dell-24-240hz-monitor-se2426hg/se2426hg/-&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ProSettings table update date&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://prosettings.net/guides/valorant-monitor/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;prosettings.net&lt;/a&gt; Top monitor brands in VALORANT, Based on 700 players, Last updated 8 October, 20&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ProSettings: share of the most-used monitor (ZOWIE XL2566K)&lt;/td&gt;&lt;td&gt;23.29 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://prosettings.net/guides/valorant-monitor/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;prosettings.net&lt;/a&gt; ZOWIE XL2566K, 23.29% of players (163)&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ProSettings: lowest refresh rate among analyzed pros&lt;/td&gt;&lt;td&gt;240 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://prosettings.net/guides/valorant-monitor/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;prosettings.net&lt;/a&gt; All of our analyzed VALORANT professionals use a monitor that’s capable of displ&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ProSettings article last-updated date&lt;/td&gt;&lt;td&gt;2026-01-21&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://prosettings.net/guides/valorant-monitor/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;prosettings.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MSI PRO MP243L E14 response time as listed&lt;/td&gt;&lt;td&gt;1ms (MPRT) / 4ms (GtG)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://us.msi.com/Business-Productivity-Monitor/PRO-MP243L-E14/Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;us.msi.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;How NVIDIA FrameView measures average fps&lt;/td&gt;&lt;td&gt;FrameView: overlay shows Average FPS; Scroll Lock / F10 starts and stops a benchmark capture; works across GPU vendors&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://images.nvidia.com/content/geforce/technologies/frameview/frameview-1-4-user-guide-web-version.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;images.nvidia.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NVIDIA app overlay fps display&lt;/td&gt;&lt;td&gt;NVIDIA app overlay: frame rates, clock speeds, GPU temperatures; Alt+R toggles; no average stated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://nvidia.custhelp.com/app/answers/detail/a_id/5084/~/nvidia-app-in-game-performance-and-latency-overlay&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.custhelp.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AMD Software fps metrics&lt;/td&gt;&lt;td&gt;AMD Software Performance Metrics: Frame Rate, Frame Time, 99th% FPS; logging; no average stated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.amd.com/en/resources/support-articles/faqs/DH3-038.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;amd.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ: what GtG means&lt;/td&gt;&lt;td&gt;GtG: how long a pixel takes to change from one grey value to another&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-ca/knowledge-center/knowledge/gaming-monitor-response-time.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ: what MPRT means&lt;/td&gt;&lt;td&gt;MPRT: how long a pixel remains apparent or visible on the screen&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-ca/knowledge-center/knowledge/gaming-monitor-response-time.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;VALORANT fps-to-monitor calculator: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;















































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Don’t know, Casual, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;△ Measure your fps first. How to measure average fps (Stats and FrameView). Until you measure, start from a 144Hz monitor, matching Riot’s high-end target of 144 fps. Pick band: 144–200Hz. Size: 24–25 inch or 27-inch (27-inch target 56.73 cm or more; 13.27 cm to spare). Resolution: 1080p at 24–25 inch. On a 27-inch, 1440p (pixels 0.85× a 23.8-inch 1080p). 27-inch 1080p pixels are 1.13×, so coarser. 1440p has 1.78× the pixels to draw, so switch resolution, measure with Stats, and use it only if fps still reaches your target. The pick tops out at 144Hz, borderline at the low end of the band&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=unknown&amp;amp;valorant-monitor-calc-play=casual&amp;amp;valorant-monitor-calc-dist=70#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;120 fps, Casual, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✓ A 144Hz monitor shows all your fps. Refresh rate that adds frames: 144Hz class (at 120 fps, 120 new frames per second). Going above 144Hz adds no new frames. Pick band: 144–200Hz. Size: 24–25 inch or 27-inch (27-inch target 56.73 cm or more; 13.27 cm to spare). Resolution: 1080p at 24–25 inch. On a 27-inch, 1440p (pixels 0.85× a 23.8-inch 1080p). 27-inch 1080p pixels are 1.13×, so coarser. 1440p has 1.78× the pixels to draw, so switch resolution, measure with Stats, and use it only if fps still reaches your target. The pick tops out at 144Hz, borderline at the low end of the band&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=120&amp;amp;valorant-monitor-calc-play=casual&amp;amp;valorant-monitor-calc-dist=70#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;144 fps, Casual, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✓ A 144Hz monitor shows all your fps. Refresh rate that adds frames: 144Hz class (at 144 fps, 144 new frames per second). Going above 144Hz adds no new frames. Pick band: 144–200Hz. Size: 24–25 inch or 27-inch (27-inch target 56.73 cm or more; 13.27 cm to spare). Resolution: 1080p at 24–25 inch. On a 27-inch, 1440p (pixels 0.85× a 23.8-inch 1080p). 27-inch 1080p pixels are 1.13×, so coarser. 1440p has 1.78× the pixels to draw, so switch resolution, measure with Stats, and use it only if fps still reaches your target. The pick tops out at 144Hz, borderline at the low end of the band&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=144&amp;amp;valorant-monitor-calc-play=casual&amp;amp;valorant-monitor-calc-dist=70#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;200 fps, Casual, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✓ A 200Hz monitor shows all your fps. Refresh rate that adds frames: 200Hz class (at 200 fps, 200 new frames per second). Going from 144Hz to 200Hz adds 56 frames per second. Going above 200Hz adds no new frames. Pick band: 144–200Hz. Size: 24–25 inch or 27-inch (27-inch target 56.73 cm or more; 13.27 cm to spare). Resolution: 1080p at 24–25 inch. On a 27-inch, 1440p (pixels 0.85× a 23.8-inch 1080p). 27-inch 1080p pixels are 1.13×, so coarser. 1440p has 1.78× the pixels to draw, so switch resolution, measure with Stats, and use it only if fps still reaches your target. The pick tops out at 144Hz, so it shows up to 144 of your 200 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=200&amp;amp;valorant-monitor-calc-play=casual&amp;amp;valorant-monitor-calc-dist=70#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;240 fps, Casual, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✓ For how you play, 144–200Hz is enough (240Hz would add frames). Refresh rate that adds frames: 240Hz class (at 240 fps, 240 new frames per second). Going from 144Hz to 240Hz adds 96 frames per second. Going above 240Hz adds no new frames. Picks stay within your play style’s band (144–200Hz), this guide’s own split. Pick band: 144–200Hz. Size: 24–25 inch or 27-inch (27-inch target 56.73 cm or more; 13.27 cm to spare). Resolution: 1080p at 24–25 inch. On a 27-inch, 1440p (pixels 0.85× a 23.8-inch 1080p). 27-inch 1080p pixels are 1.13×, so coarser. 1440p has 1.78× the pixels to draw, so switch resolution, measure with Stats, and use it only if fps still reaches your target. The pick tops out at 144Hz, so it shows up to 144 of your 240 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=240&amp;amp;valorant-monitor-calc-play=casual&amp;amp;valorant-monitor-calc-dist=70#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;300 fps, Casual, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✓ For how you play, 144–200Hz is enough (300Hz would add frames). Refresh rate that adds frames: 300Hz class (at 300 fps, 300 new frames per second). Going from 144Hz to 300Hz adds 156 frames per second. Going above 300Hz adds no new frames. Picks stay within your play style’s band (144–200Hz), this guide’s own split. Pick band: 144–200Hz. Size: 24–25 inch or 27-inch (27-inch target 56.73 cm or more; 13.27 cm to spare). Resolution: 1080p at 24–25 inch. On a 27-inch, 1440p (pixels 0.85× a 23.8-inch 1080p). 27-inch 1080p pixels are 1.13×, so coarser. 1440p has 1.78× the pixels to draw, so switch resolution, measure with Stats, and use it only if fps still reaches your target. The pick tops out at 144Hz, so it shows up to 144 of your 300 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=300&amp;amp;valorant-monitor-calc-play=casual&amp;amp;valorant-monitor-calc-dist=70#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;360 fps, Casual, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✓ For how you play, 144–200Hz is enough (360Hz would add frames). Refresh rate that adds frames: 360Hz class (at 360 fps, 360 new frames per second). Going from 144Hz to 360Hz adds 216 frames per second. Picks stay within your play style’s band (144–200Hz), this guide’s own split. Pick band: 144–200Hz. Size: 24–25 inch or 27-inch (27-inch target 56.73 cm or more; 13.27 cm to spare). Resolution: 1080p at 24–25 inch. On a 27-inch, 1440p (pixels 0.85× a 23.8-inch 1080p). 27-inch 1080p pixels are 1.13×, so coarser. 1440p has 1.78× the pixels to draw, so switch resolution, measure with Stats, and use it only if fps still reaches your target. The pick tops out at 144Hz, so it shows up to 144 of your 360 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=360&amp;amp;valorant-monitor-calc-play=casual&amp;amp;valorant-monitor-calc-dist=70#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;400 fps or more, Casual, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✓ For how you play, 144–200Hz is enough (360Hz would add frames). Refresh rate that adds frames: 360Hz class (at 400 fps, 360 new frames per second). Of your 400 fps, anything above 360 isn’t shown. Going from 144Hz to 360Hz adds 216 frames per second. Picks stay within your play style’s band (144–200Hz), this guide’s own split. Pick band: 144–200Hz. Size: 24–25 inch or 27-inch (27-inch target 56.73 cm or more; 13.27 cm to spare). Resolution: 1080p at 24–25 inch. On a 27-inch, 1440p (pixels 0.85× a 23.8-inch 1080p). 27-inch 1080p pixels are 1.13×, so coarser. 1440p has 1.78× the pixels to draw, so switch resolution, measure with Stats, and use it only if fps still reaches your target. The pick tops out at 144Hz, so it shows up to 144 of your 400 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=400&amp;amp;valorant-monitor-calc-play=casual&amp;amp;valorant-monitor-calc-dist=70#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;240 fps, Ranked, seriously, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✓ A 240Hz monitor shows all your fps. Refresh rate that adds frames: 240Hz class (at 240 fps, 240 new frames per second). Going from 144Hz to 240Hz adds 96 frames per second. Going above 240Hz adds no new frames. Pick band: 240–280Hz. Size: 24–25 inch or 27-inch (27-inch target 56.73 cm or more; 13.27 cm to spare). Resolution: 1080p at 24–25 inch. On a 27-inch, 1440p (pixels 0.85× a 23.8-inch 1080p). 27-inch 1080p pixels are 1.13×, so coarser. 1440p has 1.78× the pixels to draw, so switch resolution, measure with Stats, and use it only if fps still reaches your target. The pick tops out at 240Hz, borderline at the low end of the band&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=240&amp;amp;valorant-monitor-calc-play=serious&amp;amp;valorant-monitor-calc-dist=70#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;300 fps, Ranked, seriously, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✓ For how you play, 240–280Hz is enough (300Hz would add frames). Refresh rate that adds frames: 300Hz class (at 300 fps, 300 new frames per second). Going from 144Hz to 300Hz adds 156 frames per second. Going above 300Hz adds no new frames. Picks stay within your play style’s band (240–280Hz), this guide’s own split. Pick band: 240–280Hz. Size: 24–25 inch or 27-inch (27-inch target 56.73 cm or more; 13.27 cm to spare). Resolution: 1080p at 24–25 inch. On a 27-inch, 1440p (pixels 0.85× a 23.8-inch 1080p). 27-inch 1080p pixels are 1.13×, so coarser. 1440p has 1.78× the pixels to draw, so switch resolution, measure with Stats, and use it only if fps still reaches your target. The pick tops out at 240Hz, so it shows up to 240 of your 300 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=300&amp;amp;valorant-monitor-calc-play=serious&amp;amp;valorant-monitor-calc-dist=70#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;300 fps, Competitive / tournaments, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✓ A 300Hz monitor shows all your fps. Refresh rate that adds frames: 300Hz class (at 300 fps, 300 new frames per second). Going from 144Hz to 300Hz adds 156 frames per second. Going above 300Hz adds no new frames. Pick band: 300Hz and up. Size: 24–25 inch (for competitive play at any distance, this guide’s own split). Resolution: 1080p (1920×1080). The pick tops out at 310Hz, borderline at the low end of the band&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=300&amp;amp;valorant-monitor-calc-play=competitive&amp;amp;valorant-monitor-calc-dist=70#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;360 fps, Competitive / tournaments, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✓ A 360Hz monitor shows all your fps. Refresh rate that adds frames: 360Hz class (at 360 fps, 360 new frames per second). Going from 144Hz to 360Hz adds 216 frames per second. Pick band: 300Hz and up. Size: 24–25 inch (for competitive play at any distance, this guide’s own split). Resolution: 1080p (1920×1080). The pick tops out at 310Hz, so it shows up to 310 of your 360 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=360&amp;amp;valorant-monitor-calc-play=competitive&amp;amp;valorant-monitor-calc-dist=70#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;144 fps, Casual, 50 cm (20 in)&lt;/td&gt;&lt;td&gt;✓ A 144Hz monitor shows all your fps. Refresh rate that adds frames: 144Hz class (at 144 fps, 144 new frames per second). Going above 144Hz adds no new frames. Pick band: 144–200Hz. Size: 24–25 inch (closer than the 27-inch target of 56.73 cm). The 24.5-inch target is 51.59 cm, so at this distance a 23.8-inch is the target. Resolution: 1080p (1920×1080). The pick tops out at 144Hz, borderline at the low end of the band&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=144&amp;amp;valorant-monitor-calc-play=casual&amp;amp;valorant-monitor-calc-dist=50#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;200 fps, Casual, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;✓ A 200Hz monitor shows all your fps. Refresh rate that adds frames: 200Hz class (at 200 fps, 200 new frames per second). Going from 144Hz to 200Hz adds 56 frames per second. Going above 200Hz adds no new frames. Pick band: 144–200Hz. Size: 24–25 inch or 27-inch (27-inch target 56.73 cm or more; 3.27 cm to spare). Resolution: 1080p at 24–25 inch. On a 27-inch, 1440p (pixels 0.85× a 23.8-inch 1080p). 27-inch 1080p pixels are 1.13×, so coarser. 1440p has 1.78× the pixels to draw, so switch resolution, measure with Stats, and use it only if fps still reaches your target. The pick tops out at 144Hz, so it shows up to 144 of your 200 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2026-10-10-valorant-monitor/?valorant-monitor-calc-fps=200&amp;amp;valorant-monitor-calc-play=casual&amp;amp;valorant-monitor-calc-dist=60#valorant-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>monitor</category><category>gaming</category></item><item><title>My top country in GA4 was a bot — identifying Singapore traffic without ASN data</title><link>https://aulvem.com/blog/2026-10-06-ga4-singapore-bot-traffic/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-10-06-ga4-singapore-bot-traffic/</guid><description>GA4 put Singapore at the top of my country report: 210 sessions in 28 days, one engaged, zero seconds of engagement. Cloudflare&apos;s free plan will not show the ASN, so I used what it does show — the screen size GA4 records and the Chrome version that fires the analytics beacon — and compared it with my readers in Japan.</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I was about to add affiliate links to my old gadget reviews. GA4 had them as my most-viewed pages, a mini tripod review on top with a mouse review and a Walkman review close behind, and if anything on this site was going to earn from Amazon, it looked like those.&lt;/p&gt;
&lt;p&gt;Then I sorted GA4 by country. Singapore was first by a wide margin, with 210 sessions in 28 days. Across those 210 sessions GA4 counted one engaged session and zero seconds of engagement.&lt;/p&gt;
&lt;p&gt;Cloudflare’s free plan does not tell you which network a request came from, so I could not look up the ASN and see a data center. This post is how I settled it anyway, using this site’s own data, and what the page ranking looked like once the bot was out.&lt;/p&gt;
&lt;h2 id=&quot;what-ga4-showed&quot;&gt;What GA4 showed&lt;/h2&gt;
&lt;p&gt;GA4 recorded the Singapore traffic as ordinary visits, and the pattern did not look like people. Last 28 days, Singapore only:&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Metric&lt;/th&gt;&lt;th&gt;Singapore&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Sessions&lt;/td&gt;&lt;td&gt;210&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Engaged sessions&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Total engagement time&lt;/td&gt;&lt;td&gt;0 s&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Channel&lt;/td&gt;&lt;td&gt;Direct, all of it&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Pages per session&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Every session was a new user who opened one page and left. That shape, &lt;code&gt;session_start ≈ first_visit ≈ page_view&lt;/code&gt;, is the one I had already learned to distrust &lt;a href=&quot;https://aulvem.com/blog/2026-08-22-ai-crawler-ua-verification/&quot;&gt;when my AI-crawler numbers turned out to be scanners&lt;/a&gt;. Readers in Japan, by contrast, scroll and stay.&lt;/p&gt;
&lt;p&gt;Low engagement alone proves nothing, though. Plenty of people open a page and leave. I wanted something a person would not produce.&lt;/p&gt;
&lt;h2 id=&quot;the-screen-size-gave-it-away&quot;&gt;The screen size gave it away&lt;/h2&gt;
&lt;p&gt;The strongest single signal was in GA4 itself: 201 of the 210 Singapore sessions reported a screen resolution of &lt;code&gt;1280x1200&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;That is an odd display. It is nearly square, matches no common laptop or phone, and real visitors spread across dozens of resolutions. When almost every session from one country reports the same unusual value, you are looking at a configuration rather than an audience.&lt;/p&gt;






























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Dimension (Singapore, 28 days)&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Sessions&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Screen resolution&lt;/td&gt;&lt;td&gt;1280x1200&lt;/td&gt;&lt;td&gt;201 of 210&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Browser / OS&lt;/td&gt;&lt;td&gt;Chrome / Windows&lt;/td&gt;&lt;td&gt;201 of 210&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;City&lt;/td&gt;&lt;td&gt;Singapore&lt;/td&gt;&lt;td&gt;210 of 210&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Landing page&lt;/td&gt;&lt;td&gt;2021–22 review and how-to posts&lt;/td&gt;&lt;td&gt;almost all&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Filtering the whole property on &lt;code&gt;1280x1200&lt;/code&gt; back to May puts the first session on 2026-06-18. It ramped to 17 a day within four days and has run at 5 to 12 a day since, 556 sessions from Singapore with that screen so far. A scattering of sessions with the same resolution came from about twenty other countries, one or two each. Those could be anything, and I left them alone.&lt;/p&gt;
&lt;h2 id=&quot;cloudflares-free-plan-without-asn&quot;&gt;Cloudflare’s free plan without ASN&lt;/h2&gt;
&lt;p&gt;The usual next step is to look up the network. If the requests come from a cloud provider rather than a consumer ISP, you are done. On a free zone that is not available. Asking the GraphQL Analytics API for &lt;code&gt;clientAsn&lt;/code&gt; returns:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;zone &amp;#39;...&amp;#39; does not have access to the field &amp;#39;clientasndescription&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What the free plan does give you is the user agent, path, status and hour of each request group. And if Cloudflare Web Analytics is on, there is one path that only a JavaScript-executing client hits: the beacon at &lt;code&gt;/cdn-cgi/rum&lt;/code&gt;. Grouping that path by user agent shows which clients actually ran the page, which are the same ones that fire a GA4 tag.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;QUERY&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;query($zone: String!, $since: Time!, $until: Time!, $country: String!) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  viewer { zones(filter: { zoneTag: $zone }) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    httpRequestsAdaptiveGroups(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      limit: 5000,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      filter: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;        datetime_geq: $since, datetime_lt: $until,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;        clientCountryName: $country,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;        clientRequestPath: &amp;quot;/cdn-cgi/rum&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    ) { count dimensions { userAgent datetimeHour } }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  } }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The free plan caps each query at one day, so I ran it for seven one-day windows and summed. Then I ran the same query for Japan as a control group.&lt;/p&gt;
&lt;h2 id=&quot;the-beacons-chrome-versions-against-real-readers&quot;&gt;The beacon’s Chrome versions against real readers&lt;/h2&gt;
&lt;p&gt;The control group is what settled it. Seven days of beacons at &lt;code&gt;/cdn-cgi/rum&lt;/code&gt;:&lt;/p&gt;






























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Singapore&lt;/th&gt;&lt;th&gt;Japan (control)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Beacons&lt;/td&gt;&lt;td&gt;147&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OS&lt;/td&gt;&lt;td&gt;Windows, all 147&lt;/td&gt;&lt;td&gt;Windows&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Chrome versions&lt;/td&gt;&lt;td&gt;103 to 133, more than a dozen different majors&lt;/td&gt;&lt;td&gt;153 and 154&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hours (UTC) with a beacon&lt;/td&gt;&lt;td&gt;23 of 24&lt;/td&gt;&lt;td&gt;a few, clustered&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Chrome updates itself, and my readers in Japan are on 153 and 154, the current releases as of October 2026. One browser stuck on 103 would be unusual. A stream of visitors from one city spread evenly across 103, 105, 106, 107, 109, 110, 111, 112, 116, 117, 131 and 133 is a tool picking a user agent from a list.&lt;/p&gt;
&lt;p&gt;The hours point the same way. Singapore’s beacons arrive in 23 of 24 UTC hours with no night-time dip, and a city does not read like that.&lt;/p&gt;
&lt;p&gt;The rest of Singapore’s 845 requests in those seven days fit too. 277 came from &lt;code&gt;Linux x86_64&lt;/code&gt; Chrome 131, a common headless default. 154 were Huawei’s PetalBot. 273 were 403s from my path rule on things like &lt;code&gt;/admin/.env&lt;/code&gt; and &lt;code&gt;/phpinfo.php&lt;/code&gt;, sent under the same rotated Windows Chrome strings.&lt;/p&gt;
&lt;p&gt;None of this directly proves a data center, and I would rather say so than overclaim. But screen size, browser version, hour of day and engagement all point the same way, and no single human explanation covers all four.&lt;/p&gt;
&lt;h2 id=&quot;which-posts-the-bot-was-reading&quot;&gt;Which posts the bot was reading&lt;/h2&gt;
&lt;p&gt;The bot did not spread evenly over the site. It went almost entirely to old review and buying-guide posts. Its pageviews by page over the same 28 days:&lt;/p&gt;

































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Page&lt;/th&gt;&lt;th&gt;Bot pageviews&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Manfrotto PIXI EVO review&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Monitor arm buying guide&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Logitech MX Master 3 review&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sony NW-A105 review&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;microSD buying guide&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI cable buying guide&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Those were exactly the pages that looked like my most-read. With the profile filtered out, the top post on the site is &lt;a href=&quot;https://aulvem.com/blog/2026-07-25-cloudflare-workers-cron-multiplex/&quot;&gt;the Cloudflare Workers cron post&lt;/a&gt;, which the bot never visited. The reviews still have real readers, but they were never the top of the site.&lt;/p&gt;
&lt;p&gt;The affiliate links stay on those reviews, with smaller expectations.&lt;/p&gt;
&lt;p&gt;The bot is not only in Singapore, either. In the same week, 47 beacons from the United States were Chrome 122, all inside a single UTC hour. A country filter takes out the biggest block, but it does not make the rest clean.&lt;/p&gt;
&lt;h2 id=&quot;what-i-changed-and-what-i-left&quot;&gt;What I changed, and what I left&lt;/h2&gt;
&lt;p&gt;I did not block Singapore. The traffic costs nothing beyond inflated counts, its scanning is already stopped by the path rule, and a country block would also turn away real readers there. Blocking is the right tool for protecting the origin and the wrong one for cleaning a metric, the same split I ended up with &lt;a href=&quot;https://aulvem.com/blog/2026-09-06-waf-block-spoofed-ai-ua/&quot;&gt;after a month of WAF rules&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;GA4 cannot filter this for me. It drops bots on its known list automatically, and that list cannot be seen or extended. Its own data filters cover internal and developer traffic only.&lt;/p&gt;
&lt;p&gt;So the fix lives in how I read the numbers:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Read &lt;code&gt;engagedSessions&lt;/code&gt; instead of sessions. The bot produced 1 engaged session in 210.&lt;/li&gt;
&lt;li&gt;Exclude &lt;code&gt;screenResolution = 1280x1200&lt;/code&gt; from Singapore when ranking pages, and recheck the profile now and then. The resolution is the bot’s choice, so it can change.&lt;/li&gt;
&lt;li&gt;Before acting on a “top page,” check where its views come from.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The last one is the step I almost skipped. A page that looked like my best earner was mostly one machine’s routine, and ten minutes in the country report was enough to see it.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;why-does-ga4-show-so-many-direct-visits-from-singapore&quot;&gt;Why does GA4 show so many direct visits from Singapore?&lt;/h3&gt;
&lt;p&gt;On my site it was an automated browser, not readers. 210 sessions in 28 days produced one engaged session and zero seconds of engagement, 201 of them reported the same &lt;code&gt;1280x1200&lt;/code&gt; screen, and each landed on a single page and left. Singapore hosts a lot of cloud data centers, so a crawler that runs JavaScript there fires your GA4 tag the way a visitor would.&lt;/p&gt;
&lt;h3 id=&quot;doesnt-ga4-exclude-bots-automatically&quot;&gt;Doesn’t GA4 exclude bots automatically?&lt;/h3&gt;
&lt;p&gt;Only known ones. GA4 drops traffic from bots and spiders on its known list, and you cannot see or extend that list. A headless Chrome that sends a normal browser user agent is not on it, so it is recorded as a session. GA4’s own data filters only cover internal and developer traffic, which you define by IP or parameter, so they do not help with someone else’s crawler.&lt;/p&gt;
&lt;h3 id=&quot;can-i-see-the-asn-of-a-visitor-on-cloudflares-free-plan&quot;&gt;Can I see the ASN of a visitor on Cloudflare’s free plan?&lt;/h3&gt;
&lt;p&gt;Not through the GraphQL Analytics API. Asking &lt;code&gt;httpRequestsAdaptiveGroups&lt;/code&gt; for &lt;code&gt;clientAsn&lt;/code&gt; on a free zone returns an authz error saying the zone does not have access to the field. The user agent, path, status and hour are available, and the Web Analytics beacon at &lt;code&gt;/cdn-cgi/rum&lt;/code&gt; tells you which of those user agents actually executed JavaScript.&lt;/p&gt;
&lt;h3 id=&quot;should-i-block-singapore-at-the-waf&quot;&gt;Should I block Singapore at the WAF?&lt;/h3&gt;
&lt;p&gt;I didn’t. The traffic does no damage beyond inflating counts, its credential-scanning requests were already 403s from an existing path rule, and a country block would also turn away the occasional real reader there. I exclude it when reading the numbers instead: look at engaged sessions, and drop the &lt;code&gt;1280x1200&lt;/code&gt; profile when ranking pages.&lt;/p&gt;</content:encoded><category>build</category><category>ga4</category><category>analytics</category><category>cloudflare</category><category>bot-traffic</category></item><item><title>Blocking spoofed AI user agents did not clean my analytics — a month of numbers</title><link>https://aulvem.com/blog/2026-09-06-waf-block-spoofed-ai-ua/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-09-06-waf-block-spoofed-ai-ua/</guid><description>I put two Cloudflare WAF rules in front of credential scanners impersonating AI crawlers. A month later the blocked requests were still in my analytics as 403s, the scan count had gone from 145 to 991, and the scanning had moved onto the names real crawlers use — ChatGPT-User and Amazonbot. What the numbers say and how I split the two jobs.</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;On 8/3 I put two Cloudflare WAF rules in front of this site. One blocks credential-scanning paths like &lt;code&gt;/.env&lt;/code&gt;, the other blocks five user agents that had fetched zero articles and only scanned. The scanners were claiming AI crawler names, which meant my AI traffic numbers were partly a record of someone else’s port sweep. Stopping them at the edge would fix the damage and the measurement at the same time.&lt;/p&gt;
&lt;p&gt;The second half of that turned out to be wrong. Over the following month, scans claiming AI user agents went from 145 to 991 in an eight-day window. &lt;code&gt;Perplexity-User&lt;/code&gt;, which the rules were blocking the whole time, still showed up as 595 requests. And the scanning had spread onto &lt;code&gt;Amazonbot&lt;/code&gt; and &lt;code&gt;ChatGPT-User&lt;/code&gt; — names that real crawlers also use.&lt;/p&gt;
&lt;h2 id=&quot;a-blocked-request-is-still-a-counted-request&quot;&gt;A blocked request is still a counted request&lt;/h2&gt;
&lt;p&gt;Cloudflare’s &lt;code&gt;httpRequestsAdaptiveGroups&lt;/code&gt; aggregates what the edge responded, so a rule turns a request into a 403 rather than removing it from the data.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Perplexity-User&lt;/code&gt; shows this cleanly. Before the rule it arrived and got 404s. After the rule it got 403s, and the volume went up.&lt;/p&gt;















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Snapshot&lt;/th&gt;&lt;th&gt;403&lt;/th&gt;&lt;th&gt;404&lt;/th&gt;&lt;th&gt;State&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;08-03 (rules added that day)&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;window is almost entirely pre-rule&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;08-08&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;rules live, scanning still small&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;08-16&lt;/td&gt;&lt;td&gt;297&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;all blocked, all counted&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;08-22&lt;/td&gt;&lt;td&gt;311&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;same&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;08-28&lt;/td&gt;&lt;td&gt;595&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;same&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;09-05&lt;/td&gt;&lt;td&gt;37&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;same&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The rule works. The 404s are gone, so nothing reaches the origin. But as long as “AI crawler traffic” is counted by user agent, those 595 requests sit inside the number. &lt;strong&gt;A WAF protects the origin; it does not correct a metric.&lt;/strong&gt; Those are two jobs and I had merged them.&lt;/p&gt;
&lt;h2 id=&quot;the-setup-and-the-two-rules&quot;&gt;The setup and the two rules&lt;/h2&gt;
&lt;p&gt;A static Astro site on Cloudflare Pages, free plan zone. The rules go in through the API from a script that is idempotent — it matches on &lt;code&gt;description&lt;/code&gt;, updating the rule if it exists and creating it if not.&lt;/p&gt;
&lt;p&gt;The first rule matches on path and ignores the user agent.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;SCAN_PATH_TOKENS&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &amp;quot;/.env&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/.git&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/.aws&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/.svn&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/.ssh&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &amp;quot;/wp-&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;wp-admin&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;wp-login&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;wp-includes&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;wp-config&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &amp;quot;wlwmanifest&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;xmlrpc.php&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &amp;quot;secrets.json&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;service_account&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/actuator/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/api/auth/session&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &amp;quot;phpinfo&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/.npmrc&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/.htpasswd&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;id_rsa&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;config.json&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;scan_expr &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot; or &amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.join(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;(http.request.uri.path contains &amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;)&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; t &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; SCAN_PATH_TOKENS&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;contains&lt;/code&gt; matters here. The zone already had a hand-written rule using &lt;code&gt;starts_with(http.request.uri.path, &amp;quot;/.env&amp;quot;)&lt;/code&gt;, which only matches at the root. The requests actually arriving were &lt;code&gt;/server/.env&lt;/code&gt; (18 of them), &lt;code&gt;/admin/.env&lt;/code&gt; and &lt;code&gt;/app/.git/HEAD&lt;/code&gt;, so a rule existed and caught none of them.&lt;/p&gt;
&lt;p&gt;The second rule matches on user agent, gated on Cloudflare not having verified the client.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;SPOOFED_ONLY_UAS&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &amp;quot;Bytespider&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;cohere-ai&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;anthropic-ai&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;Perplexity-User&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;Google-Extended&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;ua_expr &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;(not cf.client.bot) and (&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot; or &amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.join(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;http.user_agent contains &amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;u&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; u &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; SPOOFED_ONLY_UAS&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Those five were the ones with zero article fetches and a 0% verification rate at the time. &lt;code&gt;CCBot&lt;/code&gt; and &lt;code&gt;PerplexityBot&lt;/code&gt; stayed off the list: both verified at 0% too, but both were fetching real pages with 200s, and cutting off whoever collects training data only reduces the site’s reach.&lt;/p&gt;
&lt;h2 id=&quot;the-blocked-name-was-kept-and-real-names-were-added&quot;&gt;The blocked name was kept, and real names were added&lt;/h2&gt;
&lt;p&gt;The thing that changed over the month was not the rules but what the scanner called itself. Grouping scan-classified requests by claimed user agent:&lt;/p&gt;





























































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Claimed UA&lt;/th&gt;&lt;th&gt;08-08&lt;/th&gt;&lt;th&gt;08-16&lt;/th&gt;&lt;th&gt;08-22&lt;/th&gt;&lt;th&gt;08-28&lt;/th&gt;&lt;th&gt;09-05&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Perplexity-User (blocked by rule 2)&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;147&lt;/td&gt;&lt;td&gt;173&lt;/td&gt;&lt;td&gt;387&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazonbot&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;67&lt;/td&gt;&lt;td&gt;&lt;strong&gt;284&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;119&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ChatGPT-User&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;51&lt;/td&gt;&lt;td&gt;&lt;strong&gt;181&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;67&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OAI-SearchBot&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;74&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GPTBot&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;72&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ClaudeBot&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;70&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PerplexityBot&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;67&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Google-Extended (blocked by rule 2)&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;70&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Others (CCBot, cohere-ai, …)&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;114&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;357&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;991&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;699&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;27&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The blocked name stayed in use, and unblocked names were layered on top of it: &lt;code&gt;Amazonbot&lt;/code&gt; from 67 to 284, &lt;code&gt;ChatGPT-User&lt;/code&gt; from 51 to 181. The paths did not diversify — the same scanning simply arrived under more names.&lt;/p&gt;
&lt;p&gt;Those two names are the problem, because real crawlers send them. In the same eight days &lt;code&gt;Amazonbot&lt;/code&gt; split 135 verified against 489 unverified, and &lt;code&gt;ChatGPT-User&lt;/code&gt; split 211 against 336. Matching the UA string would drop the genuine &lt;code&gt;ChatGPT-User&lt;/code&gt; that fetched 216 articles along with the fake ones. &lt;strong&gt;A blocklist keyed on user agent expires the moment the impersonation moves to a name you need.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Names that cannot exist are a different case. Google’s &lt;a href=&quot;https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;crawler documentation&lt;/a&gt; states that &lt;code&gt;Google-Extended&lt;/code&gt; has no HTTP request user agent — it is a robots.txt control token — so every request claiming it is fake and blocking costs nothing. That is the only shape where a UA rule holds up.&lt;/p&gt;
&lt;h2 id=&quot;a-path-blocklist-is-maintained-after-the-fact&quot;&gt;A path blocklist is maintained after the fact&lt;/h2&gt;
&lt;p&gt;Rule one ignores the user agent, so it stops a match no matter who claims to be sending it. It stops exactly the tokens I wrote down, though.&lt;/p&gt;
&lt;p&gt;The 08-28 snapshot still had 300 requests from AI-claiming UAs ending in 404. They were hitting &lt;code&gt;/secrets.yml&lt;/code&gt;, &lt;code&gt;/.zshrc&lt;/code&gt;, &lt;code&gt;/id_ecdsa&lt;/code&gt; and &lt;code&gt;/@fs/proc/self/environ&lt;/code&gt;, none of which are in the token list. I wrote &lt;code&gt;secrets.json&lt;/code&gt; but not &lt;code&gt;.yml&lt;/code&gt;; I wrote &lt;code&gt;id_rsa&lt;/code&gt; but not &lt;code&gt;id_ecdsa&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The list grows by reading what arrived. &lt;code&gt;config.json&lt;/code&gt; started as an exact &lt;code&gt;eq &amp;quot;/config.json&amp;quot;&lt;/code&gt; match and was walked around with &lt;code&gt;/runtime-config.json&lt;/code&gt; and &lt;code&gt;/api/runtime-config.json&lt;/code&gt;. It only became a &lt;code&gt;contains&lt;/code&gt; after I checked that none of the 164 real paths in the sitemap contain that string.&lt;/p&gt;
&lt;p&gt;Every token you add also widens the chance of catching something you actually serve. Checking new tokens against the sitemap before adding them keeps that from turning into an outage.&lt;/p&gt;
&lt;h2 id=&quot;the-drop-was-not-the-rules&quot;&gt;The drop was not the rules&lt;/h2&gt;
&lt;p&gt;In the 09-05 snapshot, scans claiming AI user agents fell to 27. Total requests from those UAs went from 2,024 to 688, and &lt;code&gt;ChatGPT-User&lt;/code&gt;, &lt;code&gt;Amazonbot&lt;/code&gt;, &lt;code&gt;GPTBot&lt;/code&gt; and &lt;code&gt;OAI-SearchBot&lt;/code&gt; all came back 100% verified. Read on its own, that looks like the mitigation finally landing.&lt;/p&gt;
&lt;p&gt;I changed nothing in those eight days, and these rules do not have a delayed effect.&lt;/p&gt;
&lt;p&gt;Meanwhile zone-wide 403s went from 2,754 to 4,137. The scanning did not stop; it stopped using AI names. I cannot prove that from one snapshot, but writing “the rules brought it down” would be attributing someone else’s decision to my own change.&lt;/p&gt;
&lt;p&gt;When judging a mitigation, put the date you changed something next to the date the number moved. If they do not line up, the cause is outside your change. Here they did not line up.&lt;/p&gt;
&lt;h2 id=&quot;what-i-run-now&quot;&gt;What I run now&lt;/h2&gt;
&lt;p&gt;Blocking and measurement live in separate layers.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;mermaid&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;flowchart TD&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Req[&amp;quot;Request claiming an AI user agent&amp;quot;] --&amp;gt; WAF{&amp;quot;Matches a WAF rule?&amp;quot;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  WAF --&amp;gt;|&amp;quot;match&amp;quot;| B[&amp;quot;403 at the edge, origin untouched&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  WAF --&amp;gt;|&amp;quot;no match&amp;quot;| O[&amp;quot;Origin responds 200 / 404&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  B --&amp;gt; A[&amp;quot;Both are counted in analytics&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  O --&amp;gt; A&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  A --&amp;gt; C{&amp;quot;Classify at collection time&amp;quot;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  C --&amp;gt; Y[&amp;quot;Verified × real path = the number to read&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  C --&amp;gt; N[&amp;quot;Unverified / scan path = discard&amp;quot;]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The WAF is there to keep traffic off the origin and 404s out of the logs. Cleaning the numbers is not its job.&lt;/p&gt;
&lt;p&gt;Collection handles that instead, splitting on two axes: whether &lt;code&gt;verifiedBotCategory&lt;/code&gt; is non-empty, and whether the path exists in the sitemap. &lt;a href=&quot;https://aulvem.com/blog/2026-08-22-ai-crawler-ua-verification/&quot;&gt;The previous post&lt;/a&gt; has that classifier in full. The scan series in this post is just its &lt;code&gt;scan&lt;/code&gt; column lined up across snapshots.&lt;/p&gt;
&lt;p&gt;Keeping the layers apart means editing a WAF rule does not move the measurement series, and changing the classifier does not change what gets blocked. After a month, that independence is the part I would keep.&lt;/p&gt;
&lt;h2 id=&quot;wrapping-up&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;The WAF earns its place: nothing reaches the origin and the 404 pile shrank. The half I got wrong was expecting the analytics to get cleaner. Blocked requests stay in the data as 403s, so contamination has to come out at collection time.&lt;/p&gt;
&lt;p&gt;The other lesson is that user-agent blocking has a short shelf life. Names that cannot exist — &lt;code&gt;Google-Extended&lt;/code&gt;, &lt;code&gt;anthropic-ai&lt;/code&gt; — stay blockable indefinitely. Once the impersonation moves to a name real crawlers share, matching the string is no longer available to you, and judging by the verification result instead is about the only way out.&lt;/p&gt;
&lt;p&gt;For the other side of this — making the site readable to the crawlers I do want — there is &lt;a href=&quot;https://aulvem.com/blog/2026-06-14-aulvem-llms-txt-multilingual/&quot;&gt;the multilingual llms.txt post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The same contamination showed up on the GA4 side as phantom sessions from Singapore; &lt;a href=&quot;https://aulvem.com/blog/2026-10-06-ga4-singapore-bot-traffic/&quot;&gt;telling that bot apart without ASN data&lt;/a&gt; is its own post.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;do-waf-blocked-requests-disappear-from-cloudflare-analytics&quot;&gt;Do WAF-blocked requests disappear from Cloudflare analytics?&lt;/h3&gt;
&lt;p&gt;No. The GraphQL Analytics API (&lt;code&gt;httpRequestsAdaptiveGroups&lt;/code&gt;) aggregates the response the edge returned, so a blocked request stays in the data as a 403. In my logs, a user agent I was actively blocking accounted for 595 requests over eight days, every one of them a 403. Blocking keeps traffic off your origin; it does not remove it from your counts.&lt;/p&gt;
&lt;h3 id=&quot;is-it-safe-to-block-a-spoofed-ai-crawler-by-matching-the-user-agent-string&quot;&gt;Is it safe to block a spoofed AI crawler by matching the User-Agent string?&lt;/h3&gt;
&lt;p&gt;Only for names that cannot exist. &lt;code&gt;Google-Extended&lt;/code&gt; has no HTTP user agent of its own, so every request claiming it is fake and a UA match costs nothing. &lt;code&gt;ChatGPT-User&lt;/code&gt; and &lt;code&gt;Amazonbot&lt;/code&gt; are different: real crawlers send those exact strings, so a UA match would also drop genuine article fetches — and those are precisely the names the scanning moved to once I blocked the others.&lt;/p&gt;
&lt;h3 id=&quot;how-far-does-a-path-blocklist-get-you&quot;&gt;How far does a path blocklist get you?&lt;/h3&gt;
&lt;p&gt;As far as the tokens you wrote. Common ones like &lt;code&gt;/.env&lt;/code&gt; and &lt;code&gt;/wp-&lt;/code&gt; stop, but paths outside the list — &lt;code&gt;/secrets.yml&lt;/code&gt;, &lt;code&gt;/.zshrc&lt;/code&gt;, &lt;code&gt;/id_ecdsa&lt;/code&gt;, &lt;code&gt;/@fs/proc/self/environ&lt;/code&gt; — pass through and become 404s; 300 of them remained in one eight-day window. A path blocklist is maintained after the fact, by reading what actually arrived.&lt;/p&gt;
&lt;h3 id=&quot;if-scans-drop-after-i-add-a-rule-did-the-rule-work&quot;&gt;If scans drop after I add a rule, did the rule work?&lt;/h3&gt;
&lt;p&gt;Not necessarily. Scans claiming AI user agents fell from 699 to 27 in a window where I changed no rules at all, while zone-wide 403s rose from 2,754 to 4,137. The scanning did not stop — it stopped using AI names. Line up when you changed something against when the number moved, and look outside your own changes when the two do not match.&lt;/p&gt;</content:encoded><category>build</category><category>cloudflare</category><category>waf</category><category>ai-crawler</category><category>analytics</category><category>security</category></item><item><title>AI crawler user agents are self-reported: 468 real fetches, 991 fake ones</title><link>https://aulvem.com/blog/2026-08-22-ai-crawler-ua-verification/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-08-22-ai-crawler-ua-verification/</guid><description>Anyone can send a request calling itself GPTBot. Splitting eight days of Cloudflare logs by verifiedBotCategory and by whether the path exists in my sitemap left 468 genuine article fetches against 991 credential-scanning requests. The same UA string splits across verified and unverified rows, and one of the agents in my logs cannot exist at all.</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Every eight days I pull the AI crawler numbers for this site: how many requests from ChatGPT-User, how many from GPTBot, one row per User-Agent. Rising numbers meant the AI systems were picking the site up.&lt;/p&gt;
&lt;p&gt;That reading is gone. In this week’s run, requests that actually fetched an article came to 468, while credential scans came to 991 — more than double. Of the requests calling themselves GPTBot, Cloudflare could verify only 13% as OpenAI. The series I had been watching was tracking attacker volume, not AI interest.&lt;/p&gt;
&lt;h2 id=&quot;check-the-claim-against-a-verification-result&quot;&gt;Check the claim against a verification result&lt;/h2&gt;
&lt;p&gt;A User-Agent is a header. Writing &lt;code&gt;GPTBot/1.2&lt;/code&gt; into it costs nothing, so a table grouped by UA is a table of claims.&lt;/p&gt;
&lt;p&gt;Behind Cloudflare you get two things to check those claims against. The first is &lt;code&gt;verifiedBotCategory&lt;/code&gt;, which carries Cloudflare’s own reverse-DNS verification result and is an empty string when the request could not be verified. The second is whether the requested path exists in your sitemap. Split on both and what remains is “verified bots fetching real pages” — the only figure worth putting in a report.&lt;/p&gt;
&lt;h2 id=&quot;the-setup&quot;&gt;The setup&lt;/h2&gt;
&lt;p&gt;A static Astro site on Cloudflare Pages, free plan zone, queried from Python through the GraphQL Analytics API.&lt;/p&gt;






























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Piece&lt;/th&gt;&lt;th&gt;Purpose&lt;/th&gt;&lt;th&gt;Free plan&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;https://cdn.simpleicons.org/cloudflare/af5d38&quot; width=&quot;16&quot; height=&quot;16&quot; alt style=&quot;vertical-align:middle;margin-right:6px;display:inline-block&quot;/&gt; &lt;code&gt;httpRequestsAdaptiveGroups&lt;/code&gt;&lt;/td&gt;&lt;td&gt;request aggregation&lt;/td&gt;&lt;td&gt;yes (max one day per request)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;verifiedBotCategory&lt;/code&gt;&lt;/td&gt;&lt;td&gt;bot verification result&lt;/td&gt;&lt;td&gt;yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;clientAsn&lt;/code&gt; / &lt;code&gt;botClass&lt;/code&gt;&lt;/td&gt;&lt;td&gt;source ASN, bot classification&lt;/td&gt;&lt;td&gt;not permitted&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;https://cdn.simpleicons.org/python/af5d38&quot; width=&quot;16&quot; height=&quot;16&quot; alt style=&quot;vertical-align:middle;margin-right:6px;display:inline-block&quot;/&gt; &lt;code&gt;requests&lt;/code&gt; + &lt;code&gt;pandas&lt;/code&gt;&lt;/td&gt;&lt;td&gt;fetch and aggregate&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Retention on the free plan is short — daily granularity reaches back about a week. You cannot re-derive the past later, so the script writes a snapshot to disk on every run.&lt;/p&gt;
&lt;h2 id=&quot;one-ua-string-two-rows&quot;&gt;One UA string, two rows&lt;/h2&gt;
&lt;p&gt;Adding &lt;code&gt;verifiedBotCategory&lt;/code&gt; to the dimensions is the whole trick. Eight days of my logs:&lt;/p&gt;

































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Claimed UA&lt;/th&gt;&lt;th&gt;Verified&lt;/th&gt;&lt;th&gt;Unverified&lt;/th&gt;&lt;th&gt;Verified share&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;ChatGPT-User&lt;/td&gt;&lt;td&gt;211 (AI Assistant)&lt;/td&gt;&lt;td&gt;336&lt;/td&gt;&lt;td&gt;39%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazonbot&lt;/td&gt;&lt;td&gt;135 (AI Crawler)&lt;/td&gt;&lt;td&gt;489&lt;/td&gt;&lt;td&gt;22%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ClaudeBot&lt;/td&gt;&lt;td&gt;133 (AI Crawler)&lt;/td&gt;&lt;td&gt;126&lt;/td&gt;&lt;td&gt;51%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OAI-SearchBot&lt;/td&gt;&lt;td&gt;61 (Search Engine Crawler)&lt;/td&gt;&lt;td&gt;132&lt;/td&gt;&lt;td&gt;32%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GPTBot&lt;/td&gt;&lt;td&gt;19 (AI Crawler)&lt;/td&gt;&lt;td&gt;123&lt;/td&gt;&lt;td&gt;13%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;meta-externalagent&lt;/td&gt;&lt;td&gt;209 (AI Crawler)&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;100%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Applebot&lt;/td&gt;&lt;td&gt;56 (AI Search)&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;100%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PerplexityBot&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;144&lt;/td&gt;&lt;td&gt;0%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Perplexity-User&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;311&lt;/td&gt;&lt;td&gt;0%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The same string lands in two rows. Of 547 requests presenting as &lt;code&gt;ChatGPT-User&lt;/code&gt;, 211 came from an address Cloudflare traced back to OpenAI.&lt;/p&gt;
&lt;p&gt;Two agents came through clean: &lt;code&gt;meta-externalagent&lt;/code&gt; and &lt;code&gt;Applebot&lt;/code&gt;, both 100% verified with no impersonation mixed in. Those are the only two rows where the claimed number is usable as-is. At the other end, 455 Perplexity-branded requests were all unverified — not a single confirmed one in the window.&lt;/p&gt;
&lt;p&gt;The query:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;QUERY_BY_UA_VERIFIED&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;query ($zoneTag: String!, $since: Time!, $until: Time!) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  viewer {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    zones(filter: { zoneTag: $zoneTag }) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      httpRequestsAdaptiveGroups(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;        limit: 5000&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;        filter: { datetime_geq: $since, datetime_leq: $until }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;        orderBy: [count_DESC]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      ) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;        count&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;        dimensions { userAgent verifiedBotCategory }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A free zone returns at most one day per request, so the range gets chunked by the caller. Days past the retention window error out, so a failed day is skipped rather than fatal.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; fetch_rows&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(token, query, zone_tag, since, until):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;    # split the range into one-day windows and concatenate the rows&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    all_rows, cursor &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [], since&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    one_day &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; dt.timedelta(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;days&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    while&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; cursor &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; until:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        win_end &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; min&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(cursor &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; one_day, until)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        variables &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;            &amp;quot;zoneTag&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: zone_tag,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;            &amp;quot;since&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: cursor.isoformat() &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;Z&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;            &amp;quot;until&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: win_end.isoformat() &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;Z&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;        try&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;            all_rows.extend(rows_from(gql(token, query, variables, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;exit_on_error&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;False&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;        except&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; RuntimeError&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; as&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; e:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;            print&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;    [skipped] &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;cursor.date()&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;win_end.date()&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;e&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        cursor &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; win_end&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; all_rows&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;one-of-the-agents-in-my-logs-cannot-exist&quot;&gt;One of the agents in my logs cannot exist&lt;/h2&gt;
&lt;p&gt;123 requests claimed &lt;code&gt;Google-Extended&lt;/code&gt;. Verified share 0%, and 70 of them hit paths like &lt;code&gt;.env&lt;/code&gt; or &lt;code&gt;wp-login&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;No inference is needed on this one. Google’s &lt;a href=&quot;https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;crawler documentation&lt;/a&gt; states that &lt;code&gt;Google-Extended&lt;/code&gt; has no separate HTTP request user agent string: crawling happens under the existing Google user agents, and the token exists only to be addressed in robots.txt when you want to control AI training use.&lt;/p&gt;
&lt;p&gt;So every request presenting that UA is, by definition, not Google. The same logic extends to any bot whose operator publishes IP ranges — OpenAI ships &lt;a href=&quot;https://openai.com/gptbot.json&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;gptbot.json&lt;/a&gt;, and a reverse lookup settles the question.&lt;/p&gt;
&lt;p&gt;On my zone all 123 were already stopped with a 403.&lt;/p&gt;
&lt;h2 id=&quot;classify-the-path-not-just-the-client&quot;&gt;Classify the path, not just the client&lt;/h2&gt;
&lt;p&gt;Verification alone is not enough. A verified bot fetching robots.txt has read nothing. Five buckets:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;SCAN_PATTERNS&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &amp;quot;wp-&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;.env&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;.git&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;.aws&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;.svn&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;.ssh&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;secrets&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;credentials&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &amp;quot;config.json&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;service_account&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;actuator&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;api/auth&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;phpinfo&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &amp;quot;.bak&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;.yml&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;.yaml&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;.php&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;.sql&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;id_rsa&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;.npmrc&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;.htpasswd&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;OPS_PREFIXES&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/robots.txt&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/sitemap&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/llms.txt&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/favicon&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/rss&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/feed&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/.well-known/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;ASSET_PREFIXES&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/_astro/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/images/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/assets/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/fonts/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/cdn-cgi/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/_image&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; classify_path&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(path, sitemap_paths):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;    # content = a real page was consumed / ops = crawl bookkeeping&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;    # asset = static file / scan = credential probing / other = path does not exist&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; path:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;other&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    low &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; path.lower()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; any&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(k &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; low &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; k &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; SCAN_PATTERNS&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;scan&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; low.startswith(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;OPS_PREFIXES&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;ops&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; low.startswith(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;ASSET_PREFIXES&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;asset&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; sitemap_paths:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;unknown&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;   # cannot assert existence, so cannot call it content&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;content&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (path.rstrip(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; sitemap_paths &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;other&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Using the sitemap as the source of truth for existence is what makes the classification hold up. Deciding from the response status is the obvious alternative, but redirects and paths that answer 200 without being real pages both leak into it. The set of paths you have declared public is a cleaner definition of “a page of mine”.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;unknown&lt;/code&gt; branch earns its place too. Fold it into &lt;code&gt;content&lt;/code&gt; and the number spikes on any day the sitemap fetch fails, with nothing in the output to explain why.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;mermaid&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;flowchart TD&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Req[&amp;quot;Request claiming an AI bot UA&amp;quot;] --&amp;gt; V{&amp;quot;verifiedBotCategory empty?&amp;quot;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  V --&amp;gt;|&amp;quot;empty = unverified&amp;quot;| Fake[&amp;quot;impersonation, drop from the count&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  V --&amp;gt;|&amp;quot;verified&amp;quot;| P{&amp;quot;path in sitemap?&amp;quot;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  P --&amp;gt;|&amp;quot;exists&amp;quot;| C[&amp;quot;content = the number to report&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  P --&amp;gt;|&amp;quot;robots.txt / sitemap&amp;quot;| O[&amp;quot;ops = crawl bookkeeping&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  P --&amp;gt;|&amp;quot;.env / wp-login&amp;quot;| S[&amp;quot;scan = credential probing&amp;quot;]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;the-result-468-article-fetches-against-991-scans&quot;&gt;The result: 468 article fetches against 991 scans&lt;/h2&gt;
&lt;p&gt;Eight days, both axes applied. The &lt;code&gt;content&lt;/code&gt; column is the one worth reading.&lt;/p&gt;





























































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Claimed UA&lt;/th&gt;&lt;th&gt;content&lt;/th&gt;&lt;th&gt;ops&lt;/th&gt;&lt;th&gt;scan&lt;/th&gt;&lt;th&gt;total&lt;/th&gt;&lt;th&gt;verified&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;ChatGPT-User&lt;/td&gt;&lt;td&gt;216&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;181&lt;/td&gt;&lt;td&gt;547&lt;/td&gt;&lt;td&gt;39%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;meta-externalagent&lt;/td&gt;&lt;td&gt;93&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;209&lt;/td&gt;&lt;td&gt;100%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazonbot&lt;/td&gt;&lt;td&gt;85&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;284&lt;/td&gt;&lt;td&gt;624&lt;/td&gt;&lt;td&gt;22%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Applebot&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;56&lt;/td&gt;&lt;td&gt;100%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OAI-SearchBot&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;43&lt;/td&gt;&lt;td&gt;74&lt;/td&gt;&lt;td&gt;193&lt;/td&gt;&lt;td&gt;32%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PerplexityBot&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;67&lt;/td&gt;&lt;td&gt;144&lt;/td&gt;&lt;td&gt;0%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GPTBot&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;72&lt;/td&gt;&lt;td&gt;142&lt;/td&gt;&lt;td&gt;13%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ClaudeBot&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;129&lt;/td&gt;&lt;td&gt;70&lt;/td&gt;&lt;td&gt;259&lt;/td&gt;&lt;td&gt;51%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Google-Extended&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;70&lt;/td&gt;&lt;td&gt;123&lt;/td&gt;&lt;td&gt;0%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Perplexity-User&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;173&lt;/td&gt;&lt;td&gt;311&lt;/td&gt;&lt;td&gt;0%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;code&gt;content&lt;/code&gt; totals 468 and &lt;code&gt;scan&lt;/code&gt; totals 991. By status code, 403s came to 957 against 705 requests answered with 200 — the WAF is now blocking more than the site serves to these clients.&lt;/p&gt;
&lt;p&gt;Six days earlier the same site read 610 content against 357 scan, so the ratio inverted inside a week. Grouped by UA alone, the story would have been “AI crawler traffic is up”.&lt;/p&gt;
&lt;p&gt;The ClaudeBot row is worth pulling apart as well. Of 133 verified requests, 6 fetched articles and 129 fetched robots.txt and similar. “ClaudeBot sent 259 requests” and “six articles were read” are the same data.&lt;/p&gt;
&lt;h2 id=&quot;what-the-split-still-cannot-tell-me&quot;&gt;What the split still cannot tell me&lt;/h2&gt;
&lt;p&gt;Both axes remove impersonation. Neither resolves this: &lt;code&gt;content&lt;/code&gt; fell from 610 to 468, and I cannot say whether AI-side interest dropped or whether impersonation that used to land in &lt;code&gt;content&lt;/code&gt; got reclassified as &lt;code&gt;scan&lt;/code&gt;. GPTBot went from 85 content fetches to 7 while its verified share fell from 77% to 13%, so “fetched less” and “buried under fakes” are happening at once.&lt;/p&gt;
&lt;p&gt;The aggregate output therefore keeps the verified share as a column, and any series whose share collapses gets marked unreadable for that snapshot. Two numbers side by side — the denominator and the verified share — beat one clean-looking figure.&lt;/p&gt;
&lt;h2 id=&quot;wrapping-up&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;If you are reporting AI crawler numbers, distrust the UA first. One extra dimension splits claim from reality, and the shape of the split also tells you how far to trust that series this week.&lt;/p&gt;
&lt;p&gt;What surprised me is which agents came through clean: &lt;code&gt;meta-externalagent&lt;/code&gt; and &lt;code&gt;Applebot&lt;/code&gt;, and nothing else. The better-known the bot, the more it gets impersonated, and the less usable its row becomes. Reputation of the operator turned out to say nothing about the quality of the data.&lt;/p&gt;
&lt;p&gt;The same measure-first habit shows up in &lt;a href=&quot;https://aulvem.com/blog/2026-08-16-cross-post-duplicate-canonical/&quot;&gt;the post about measuring cross-post overlap&lt;/a&gt;. The other side of this work — making the site legible to AI clients in the first place — is in &lt;a href=&quot;https://aulvem.com/blog/2026-06-14-aulvem-llms-txt-multilingual/&quot;&gt;generating a bilingual llms.txt&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;What came of blocking the impersonators at the edge is in &lt;a href=&quot;https://aulvem.com/blog/2026-09-06-waf-block-spoofed-ai-ua/&quot;&gt;a month of blocking spoofed AI user agents&lt;/a&gt;: the blocked requests stayed in the analytics, and the scanning moved onto names real crawlers use.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;why-cant-i-count-ai-crawler-traffic-by-user-agent&quot;&gt;Why can’t I count AI crawler traffic by User-Agent?&lt;/h3&gt;
&lt;p&gt;The User-Agent is a request header, so anyone can send GPTBot or ChatGPT-User in it. In eight days of my own logs, only 211 of the 547 requests calling themselves ChatGPT-User came from an IP Cloudflare could verify as OpenAI. Amazonbot was 135 verified out of 624. Count by UA alone and those unverified requests become your evidence that AI interest is growing.&lt;/p&gt;
&lt;h3 id=&quot;can-i-separate-impersonators-on-cloudflares-free-plan&quot;&gt;Can I separate impersonators on Cloudflare’s free plan?&lt;/h3&gt;
&lt;p&gt;Yes. In the GraphQL Analytics API, add &lt;code&gt;userAgent&lt;/code&gt; and &lt;code&gt;verifiedBotCategory&lt;/code&gt; to the dimensions of &lt;code&gt;httpRequestsAdaptiveGroups&lt;/code&gt; and you get Cloudflare’s reverse-DNS verification result per row, with an empty string meaning unverified. &lt;code&gt;clientAsn&lt;/code&gt; and &lt;code&gt;botClass&lt;/code&gt; need a paid plan, but &lt;code&gt;verifiedBotCategory&lt;/code&gt; works on a free zone. The one constraint is that a single request covers at most one day, so loop over the range.&lt;/p&gt;
&lt;h3 id=&quot;what-should-i-do-with-requests-claiming-to-be-google-extended&quot;&gt;What should I do with requests claiming to be Google-Extended?&lt;/h3&gt;
&lt;p&gt;Treat every one of them as fake. Google’s crawler documentation states that &lt;code&gt;Google-Extended&lt;/code&gt; has no separate HTTP request user agent string — it is a robots.txt control token, and crawling happens under the regular Google user agents. My logs had 123 requests claiming it, 0% verified, with 70 of them hitting credential-scanning paths.&lt;/p&gt;
&lt;h3 id=&quot;is-a-verified-request-the-same-as-someone-reading-an-article&quot;&gt;Is a verified request the same as someone reading an article?&lt;/h3&gt;
&lt;p&gt;No, and separating the two matters. A verified bot fetching robots.txt, sitemap.xml or llms.txt is doing crawl bookkeeping, not reading. Of ClaudeBot’s 133 verified requests, 6 fetched articles and 129 fetched files like robots.txt. Classifying by whether the path exists in your sitemap splits &lt;code&gt;content&lt;/code&gt; from &lt;code&gt;ops&lt;/code&gt; and leaves only the number worth reading.&lt;/p&gt;</content:encoded><category>build</category><category>cloudflare</category><category>ai-crawler</category><category>gptbot</category><category>analytics</category><category>python</category></item><item><title>Is cross-posting duplicate content? I measured it before deleting anything</title><link>https://aulvem.com/blog/2026-08-16-cross-post-duplicate-canonical/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-08-16-cross-post-duplicate-canonical/</guid><description>I was one command away from unpublishing five cross-posts to fix a suspected duplicate-content problem. Measuring the actual line overlap first killed the plan: 795 of 1,658 lines matched, but 762 of those were inside code fences and only 3 prose lines matched across 22 files. Here is the measurement and the canonical support matrix that replaced the deletion.</description><pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;An AdSense review came back with the “low value content” label and no indication of which pages triggered it. Looking for a plausible cause in my own setup, I landed on the fact that the same articles go out to Zenn, Qiita and dev.to. I wrote a remediation doc: unpublish the five live cross-posts, set canonical everywhere, resubmit.&lt;/p&gt;
&lt;p&gt;Before running any of it, I counted how much text actually overlaps. Across 11 articles and 22 files, three prose lines matched — and two of those were horizontal rules. The remediation doc went in the bin, and the work turned into adding canonical URLs on the platforms that accept them.&lt;/p&gt;
&lt;h2 id=&quot;measure-the-overlap-before-you-delete-a-channel&quot;&gt;Measure the overlap before you delete a channel&lt;/h2&gt;
&lt;p&gt;If you write each syndicated version separately rather than pasting the original, the lines that match will be code, tables and headings. Prose barely survives the rewrite. A single overlap percentage hides that completely, so split the match by line type before drawing any conclusion.&lt;/p&gt;
&lt;p&gt;The fix, when there is one, is a canonical URL rather than a deletion. dev.to, Hashnode and Medium all accept one through their APIs. Qiita, Zenn and note do not, which means the option of pointing at an original was never available there in the first place.&lt;/p&gt;
&lt;h2 id=&quot;what-the-setup-looks-like&quot;&gt;What the setup looks like&lt;/h2&gt;
&lt;p&gt;Aulvem runs a hub-and-spoke layout. The site is the hub; the platforms are spokes that stand on their own and link back. Same subject, different reader and different depth, written from scratch on each side.&lt;/p&gt;

























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Layer&lt;/th&gt;&lt;th&gt;Where&lt;/th&gt;&lt;th&gt;Body file&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Hub&lt;/td&gt;&lt;td&gt;aulvem.com&lt;/td&gt;&lt;td&gt;&lt;code&gt;src/content/blog/{en,ja}/&amp;lt;slug&amp;gt;.mdx&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Spoke&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;https://cdn.simpleicons.org/devdotto/af5d38&quot; width=&quot;16&quot; height=&quot;16&quot; alt style=&quot;vertical-align:middle;margin-right:6px;display:inline-block&quot;/&gt;dev.to / &lt;img src=&quot;https://cdn.simpleicons.org/hashnode/af5d38&quot; width=&quot;16&quot; height=&quot;16&quot; alt style=&quot;vertical-align:middle;margin-right:6px;display:inline-block&quot;/&gt;Hashnode&lt;/td&gt;&lt;td&gt;&lt;code&gt;body.en.md&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Spoke&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;https://cdn.simpleicons.org/zenn/af5d38&quot; width=&quot;16&quot; height=&quot;16&quot; alt style=&quot;vertical-align:middle;margin-right:6px;display:inline-block&quot;/&gt;Zenn / &lt;img src=&quot;https://cdn.simpleicons.org/qiita/af5d38&quot; width=&quot;16&quot; height=&quot;16&quot; alt style=&quot;vertical-align:middle;margin-right:6px;display:inline-block&quot;/&gt;Qiita&lt;/td&gt;&lt;td&gt;&lt;code&gt;body.ja.md&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The measured set covers everything published between 2026-05-17 and 2026-08-08: 11 articles, counted as 22 pairs because English and Japanese are separate files. The syndicated bodies carry no frontmatter and the hub files are MDX, so both sides get their frontmatter stripped before comparison.&lt;/p&gt;
&lt;h2 id=&quot;the-script-is-about-thirty-lines&quot;&gt;The script is about thirty lines&lt;/h2&gt;
&lt;p&gt;Normalize whitespace, drop blank lines, put the hub’s lines in a &lt;code&gt;Set&lt;/code&gt;, and walk the syndicated file. The only part that needs care is the classification.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; fs &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;node:fs&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; norm&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; s.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;\s&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;g&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;trim&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; bodyOf&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;file&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  let&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; t &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; fs.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;readFileSync&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(file, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;utf8&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (t.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;startsWith&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;---&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)) t &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; t.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;slice&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(t.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;indexOf&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;---&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 4&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;); &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// strip frontmatter&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; t;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// Split into [normalized line, kind]. Everything inside a fence is code.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; classify&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;text&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; out&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [];&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  let&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; inFence &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; raw&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; of&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; text.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;split&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; line&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; norm&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(raw);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;```&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;test&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(line)) { inFence &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; !&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;inFence; out.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;([line, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;code&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]); &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;line) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (inFence) { out.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;([line, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;code&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]); &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;{1,6}&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;\s&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;test&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(line)) { out.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;([line, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;heading&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]); &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color:#85E89D;font-weight:bold&quot;&gt;\|&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;test&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(line)) { out.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;([line, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;table&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]); &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    out.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;([line, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;prose&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; out;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; hub&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Set&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;classify&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;bodyOf&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(hubFile)).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;map&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(([&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; l));&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; ext&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; classify&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;bodyOf&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(syndicatedFile));&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; matched&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; ext.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;filter&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(([&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; hub.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;has&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(l));&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Toggling &lt;code&gt;inFence&lt;/code&gt; matters more than it looks. Shell snippets start lines with &lt;code&gt;#&lt;/code&gt;, SQL and YAML samples start lines with &lt;code&gt;|&lt;/code&gt;, and mermaid blocks are full of both. Classify by leading character alone and a large share of the code lands in the prose bucket, which is the exact number you were hoping to trust.&lt;/p&gt;
&lt;p&gt;Dropping blank lines matters too. They always match, so leaving them in inflates both sides of the ratio.&lt;/p&gt;
&lt;h2 id=&quot;479-overlap-and-762-lines-of-it-were-code&quot;&gt;47.9% overlap, and 762 lines of it were code&lt;/h2&gt;









































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Metric&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Lines in syndicated bodies&lt;/td&gt;&lt;td&gt;1,658&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lines matching the hub&lt;/td&gt;&lt;td&gt;795 (47.9%)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;— inside code fences&lt;/td&gt;&lt;td&gt;762&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;— table rows&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;— headings&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;— &lt;strong&gt;prose&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Prose lines in syndicated bodies&lt;/td&gt;&lt;td&gt;393&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Prose overlap&lt;/td&gt;&lt;td&gt;0.8%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Printing those three prose lines took a second: two are &lt;code&gt;---&lt;/code&gt; rules, and the third is a single English bullet from the Zod schema article. Nothing else in 393 lines of prose survived from one version to the other.&lt;/p&gt;
&lt;p&gt;Per article the pattern holds. High overlap tracks code density, not copying.&lt;/p&gt;



































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Article&lt;/th&gt;&lt;th&gt;Overlap&lt;/th&gt;&lt;th&gt;Code&lt;/th&gt;&lt;th&gt;Prose&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;sitemap-lastmod (en)&lt;/td&gt;&lt;td&gt;64.5%&lt;/td&gt;&lt;td&gt;71&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;idempotent-notification-outbox (en)&lt;/td&gt;&lt;td&gt;65.6%&lt;/td&gt;&lt;td&gt;40&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sheets-xlsx-excel-silent-breakage (en)&lt;/td&gt;&lt;td&gt;67.8%&lt;/td&gt;&lt;td&gt;53&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;aulvem-blog-architecture (en)&lt;/td&gt;&lt;td&gt;6.5%&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Code repeats because both versions describe the same implementation. Rewriting &lt;code&gt;CREATE UNIQUE INDEX uq_outbox_dedup&lt;/code&gt; for the syndicated copy would make one of the two articles wrong. Shared snippets are a weak basis for calling your own site a duplicate.&lt;/p&gt;
&lt;h2 id=&quot;where-a-canonical-url-fits-and-where-it-does-not&quot;&gt;Where a canonical URL fits, and where it does not&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;mermaid&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;flowchart LR&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Devto[&amp;quot;dev.to&amp;lt;br/&amp;gt;canonical_url&amp;quot;] --&amp;gt; HP[&amp;quot;aulvem.com&amp;lt;br/&amp;gt;(original)&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Hashnode[&amp;quot;Hashnode&amp;lt;br/&amp;gt;originalArticleURL&amp;quot;] --&amp;gt; HP&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Medium[&amp;quot;Medium&amp;lt;br/&amp;gt;canonicalUrl&amp;quot;] --&amp;gt; HP&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Qiita[&amp;quot;Qiita&amp;lt;br/&amp;gt;not supported&amp;quot;] -.-&amp;gt; HP&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Zenn[&amp;quot;Zenn&amp;lt;br/&amp;gt;not supported&amp;quot;] -.-&amp;gt; HP&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Note[&amp;quot;note&amp;lt;br/&amp;gt;not supported&amp;quot;] -.-&amp;gt; HP&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;








































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Platform&lt;/th&gt;&lt;th&gt;Canonical&lt;/th&gt;&lt;th&gt;Where it goes&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;dev.to&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;code&gt;article.canonical_url&lt;/code&gt; on the articles endpoint&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hashnode&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;code&gt;originalArticleURL&lt;/code&gt; on the &lt;code&gt;publishPost&lt;/code&gt; mutation&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Medium&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;&lt;code&gt;canonicalUrl&lt;/code&gt; on the posts endpoint, or Import from URL&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Qiita&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;no equivalent parameter on the items API&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Zenn&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;no such key in article frontmatter&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;note&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;no field in the editor&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The &lt;a href=&quot;https://developers.forem.com/api/v1&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Forem API&lt;/a&gt; exposes &lt;code&gt;canonical_url&lt;/code&gt; on the article object, so syndicating with an original declared costs one line in the payload.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;JSON&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;stringify&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  article: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    title: fm.title,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    body_markdown: body,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    published: fm.published &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;??&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    tags,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    canonical_url: fm.canonical_url,   &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// here&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}),&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Hashnode has a trap worth knowing about. &lt;code&gt;originalArticleURL&lt;/code&gt; exists on the &lt;code&gt;publishPost&lt;/code&gt; input but not on &lt;code&gt;createDraft&lt;/code&gt;. If your pipeline creates a draft and you press publish in the dashboard, the canonical never gets attached.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; input&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; publish&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  ?&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { title, contentMarkdown, publicationId, tags, originalArticleURL: fm.canonical_url }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  :&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { title, contentMarkdown, publicationId, tags };   &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// no place for it on a draft&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Qiita’s &lt;a href=&quot;https://qiita.com/api/v2/docs&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;API v2 docs&lt;/a&gt; list &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;body&lt;/code&gt;, &lt;code&gt;tags&lt;/code&gt;, &lt;code&gt;private&lt;/code&gt;, &lt;code&gt;tweet&lt;/code&gt; and &lt;code&gt;organization_url_name&lt;/code&gt; for item creation, with nothing that declares an external original. Zenn’s article frontmatter is &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;emoji&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;topics&lt;/code&gt;, &lt;code&gt;published&lt;/code&gt; and &lt;code&gt;publication_name&lt;/code&gt; — same story.&lt;/p&gt;
&lt;p&gt;I added &lt;code&gt;canonical_url: https://aulvem.com/blog/&amp;lt;slug&amp;gt;/&lt;/code&gt; to all 11 &lt;code&gt;dev.yaml&lt;/code&gt; drafts. Because the value is fixed at post time, the five already-published articles do not pick it up; those need &lt;code&gt;PUT /articles/{id}&lt;/code&gt; or a manual edit. That part is still open.&lt;/p&gt;
&lt;h2 id=&quot;temporarily-unpublish-is-not-a-reversible-operation&quot;&gt;”Temporarily unpublish” is not a reversible operation&lt;/h2&gt;
&lt;p&gt;On a platform with no canonical field, the way back from unpublishing is to post again — new URL, views reset, inbound links broken. What reads as a temporary measure is a deletion with extra steps.&lt;/p&gt;
&lt;p&gt;The traffic makes the trade obvious.&lt;/p&gt;

























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Channel&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Qiita, 11 articles, cumulative views&lt;/td&gt;&lt;td&gt;2,240&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;dev.to, cumulative views&lt;/td&gt;&lt;td&gt;309&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Zenn, cumulative impressions&lt;/td&gt;&lt;td&gt;182&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;aulvem.com search clicks (28 days)&lt;/td&gt;&lt;td&gt;7, from 1,335 impressions&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The article I published on 8 August took 196 views on Qiita in its first eight days, with a 221-second average read time. The same article on my own site: 10 page views over the same window. Removing the syndicated copies would have shut down the side where people read, to protect the side where they do not, in exchange for an AdSense placement worth a few hundred yen a month.&lt;/p&gt;
&lt;h2 id=&quot;the-two-things-i-had-conflated&quot;&gt;The two things I had conflated&lt;/h2&gt;
&lt;p&gt;The first was treating an AdSense decision as evidence about search-side duplicate handling. AdSense reviews a site against its &lt;a href=&quot;https://support.google.com/adsense/answer/48182&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;program policies&lt;/a&gt;; search-side &lt;a href=&quot;https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;duplicate URL consolidation&lt;/a&gt; is a normalization step driven by canonical and hreflang. One does not explain the other.&lt;/p&gt;
&lt;p&gt;The second was reading “Qiita’s canonical points at Qiita” as a symptom. Every platform without canonical support emits a self-referencing canonical. It is the default state, not a signal about my site.&lt;/p&gt;
&lt;p&gt;While those two ideas were in play I had also drafted 17 gadget reviews from 2021 out of the site. Those are back. Hiding writing I produced myself is a strange move when the concern on the table is originality.&lt;/p&gt;
&lt;h2 id=&quot;wrapping-up&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;The useful step was counting, not deleting. Thirty lines of script, one run, and the answer — three matching prose lines out of 393 — removed every task that came after it.&lt;/p&gt;
&lt;p&gt;For canonical, the rule I settled on is simple: set it where the platform accepts it, accept its absence where it does not. Qiita, Zenn and note give me no way to point at an original, and that is not a reason to stop syndicating to them.&lt;/p&gt;
&lt;p&gt;What stayed with me is how close I came to running the remediation first. The same instinct — make breakage visible before acting on a hunch — shows up in the &lt;a href=&quot;https://aulvem.com/blog/2026-05-23-aulvem-zod-schema-enforcement/&quot;&gt;Zod schema enforcement post&lt;/a&gt; and in the &lt;a href=&quot;https://aulvem.com/blog/2026-08-08-sheets-xlsx-excel-silent-breakage/&quot;&gt;.xlsx silent breakage post&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;how-do-i-check-whether-my-cross-posts-count-as-duplicate-content&quot;&gt;How do I check whether my cross-posts count as duplicate content?&lt;/h3&gt;
&lt;p&gt;Normalize both bodies line by line, put the canonical article’s lines in a set, and count how many of the syndicated article’s lines are in it. The part that decides the answer is tracking code fences, because a fenced block is full of lines starting with &lt;code&gt;#&lt;/code&gt; or &lt;code&gt;|&lt;/code&gt; that a naive classifier reads as prose. Across my 11 articles and 22 files, 762 of the 795 matching lines sat inside fences and only 3 of 393 prose lines matched.&lt;/p&gt;
&lt;h3 id=&quot;which-platforms-let-me-declare-a-canonical-url&quot;&gt;Which platforms let me declare a canonical URL?&lt;/h3&gt;
&lt;p&gt;dev.to takes &lt;code&gt;article.canonical_url&lt;/code&gt; on the article endpoint, Hashnode takes &lt;code&gt;originalArticleURL&lt;/code&gt; on the &lt;code&gt;publishPost&lt;/code&gt; mutation, and Medium takes &lt;code&gt;canonicalUrl&lt;/code&gt; on the post endpoint. Qiita’s items API has no equivalent parameter, Zenn’s article frontmatter has no such key, and note’s editor has no field for it. On those three the option to point at an original simply does not exist.&lt;/p&gt;
&lt;h3 id=&quot;is-unpublishing-the-syndicated-copies-a-safe-temporary-fix&quot;&gt;Is unpublishing the syndicated copies a safe temporary fix?&lt;/h3&gt;
&lt;p&gt;Not on platforms without canonical support, because the only way back is to post again under a new URL, which drops the views and any inbound links. My syndicated totals are 2,240 views on Qiita, 309 on dev.to and 182 impressions on Zenn, against 7 search clicks to aulvem.com over 28 days. Deleting the copies removes the channel where the readers actually are.&lt;/p&gt;
&lt;h3 id=&quot;does-an-adsense-rejection-tell-me-anything-about-search-duplicate-handling&quot;&gt;Does an AdSense rejection tell me anything about search duplicate handling?&lt;/h3&gt;
&lt;p&gt;No. AdSense reviews a site against its program policies, while search-side duplicate handling is URL consolidation driven by canonical and hreflang signals. Reasoning from one to the other is how I ended up drafting a fix for a problem I had never measured.&lt;/p&gt;</content:encoded><category>build</category><category>canonical</category><category>cross-posting</category><category>seo</category><category>devto</category><category>qiita</category></item><item><title>A Google Sheets .xlsx breaks silently in Excel — rewriting 203 cells without dynamic arrays</title><link>https://aulvem.com/blog/2026-08-08-sheets-xlsx-excel-silent-breakage/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-08-08-sheets-xlsx-excel-silent-breakage/</guid><description>Export a Google Sheet to .xlsx and ARRAYFORMULA / FILTER / SORTN / QUERY survive the trip, even though Excel has none of them. Worse, the IFERROR that was already wrapping them swallows the missing-function error, so the screen shows &apos;no matches&apos; instead of #NAME?. Here&apos;s how I counted the broken cells with openpyxl and rewrote them as helper columns plus INDEX/MATCH so they run on Excel 2016.</description><pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Build something in Google Sheets, export it as &lt;code&gt;.xlsx&lt;/code&gt;, hand it to someone, and they open a different file than the one you tested. The failure is quiet enough that neither of you finds out.&lt;/p&gt;
&lt;p&gt;After putting a &lt;a href=&quot;https://aulvem.com/products/password-sheet-personal/&quot;&gt;password manager sheet&lt;/a&gt; on Booth, I wanted to check that the “works in Excel and Google Sheets” line on the product page was true, so I opened the exported &lt;code&gt;.xlsx&lt;/code&gt; with openpyxl. Every dashboard formula had turned into a function I’d never seen called &lt;code&gt;__xludf.DUMMYFUNCTION&lt;/code&gt;. There were 203 of them. All 203 were wrapped in &lt;code&gt;IFERROR&lt;/code&gt;. This is how I found them and what I rewrote them into.&lt;/p&gt;
&lt;h2 id=&quot;no-error-appears-so-nothing-looks-broken&quot;&gt;No error appears, so nothing looks broken&lt;/h2&gt;
&lt;p&gt;Google-only functions don’t get stripped on export. Excel can’t parse them, so they’re stored as &lt;code&gt;__xludf.DUMMYFUNCTION(&amp;quot;original formula&amp;quot;)&lt;/code&gt; with the original kept as a string argument. Opening that in Excel should give you &lt;code&gt;#NAME?&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It didn’t, because the original formula was already inside an &lt;code&gt;IFERROR&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;=IFERROR(__xludf.DUMMYFUNCTION(&amp;quot;IFERROR(SORTN(FILTER({&amp;#39;パスワード一覧&amp;#39;!A2:A80, …&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That wrapper was there to print an em dash when a query returned nothing. In Excel it also catches “no such function.” What comes back is an empty string or the fallback text, and the cell reads ”— no matches —”. The display for zero results and the display for a formula that never ran are the same.&lt;/p&gt;
&lt;p&gt;Five places in the shipped file were affected.&lt;/p&gt;



































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Location&lt;/th&gt;&lt;th&gt;Functions used&lt;/th&gt;&lt;th&gt;Result in Excel&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Password list, column G (strength)&lt;/td&gt;&lt;td&gt;&lt;code&gt;ARRAYFORMULA&lt;/code&gt; + &lt;code&gt;REGEXMATCH&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Every row blank&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dashboard B10 (top 5 to rotate)&lt;/td&gt;&lt;td&gt;&lt;code&gt;SORTN&lt;/code&gt; + &lt;code&gt;FILTER&lt;/code&gt;&lt;/td&gt;&lt;td&gt;”No matches”&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dashboard B19 (candidates to drop)&lt;/td&gt;&lt;td&gt;&lt;code&gt;FILTER&lt;/code&gt;&lt;/td&gt;&lt;td&gt;”No matches”&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dashboard B28 (reused-password warning)&lt;/td&gt;&lt;td&gt;&lt;code&gt;SORTN&lt;/code&gt; + &lt;code&gt;UNIQUE&lt;/code&gt; + &lt;code&gt;FILTER&lt;/code&gt;&lt;/td&gt;&lt;td&gt;”No matches”&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Subscriptions B10 (listing)&lt;/td&gt;&lt;td&gt;&lt;code&gt;QUERY&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Blank&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;mermaid&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;flowchart TD&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  A[&amp;quot;Sheets formula&amp;lt;br/&amp;gt;ARRAYFORMULA / FILTER / SORTN / QUERY&amp;quot;] --&amp;gt; B[&amp;quot;Opened in Excel&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  B --&amp;gt; C[&amp;quot;Function does not exist&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  C --&amp;gt; D[&amp;quot;The outer IFERROR catches it&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  D --&amp;gt; E[&amp;quot;Empty string returned&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  E --&amp;gt; F[&amp;quot;Screen shows &amp;#39;— no matches —&amp;#39;&amp;quot;]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The reused-password warning read “no matches” not because there were no duplicates, but because the check never ran. That’s a safety-adjacent readout showing a clean bill of health it hadn’t earned.&lt;/p&gt;
&lt;h2 id=&quot;count-the-broken-cells-instead-of-hunting-for-them&quot;&gt;Count the broken cells instead of hunting for them&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;__xludf.DUMMYFUNCTION&lt;/code&gt; persists as text, so walking every sheet with openpyxl gives you an exact count. It beats squinting at the dashboard, and the same code proves the count went to zero after the rewrite.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;KEYS&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;DUMMYFUNCTION&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;REGEXMATCH&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;SORTN&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;        &amp;quot;QUERY(&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;ARRAYFORMULA&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;UNIQUE(&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;FILTER(&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; check_no_google_funcs&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(path):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    wb &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; openpyxl.load_workbook(path)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    bad &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; sh &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; wb.worksheets:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;        for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; row &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; sh.iter_rows():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;            for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; c &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; row:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;                v &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; c.value&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;                txt &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; getattr&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(v, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;None&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (v &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; isinstance&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(v, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;                # formula cells only — the FAQ sheet mentions these names in prose&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;                if&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; txt.startswith(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;=&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;                    continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;                if&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; any&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(k &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; txt &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; k &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; KEYS&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;                    bad.append(&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;sh.title&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;c.coordinate&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; bad&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That &lt;code&gt;txt.startswith(&amp;quot;=&amp;quot;)&lt;/code&gt; line earns its place. The workbook ships with a how-to sheet whose FAQ answers use the word &lt;code&gt;ARRAYFORMULA&lt;/code&gt; in ordinary prose. Without the filter, prose you can’t fix shows up in your list of things to fix.&lt;/p&gt;
&lt;p&gt;The count came to 203: 199 in the password list, 3 on the dashboard, 1 in subscriptions. Nearly all of the 199 were column G, where only G2 held a real formula. G3 downward had become &lt;code&gt;=IFERROR(__xludf.DUMMYFUNCTION(&amp;quot;&amp;quot;&amp;quot;COMPUTED_VALUE&amp;quot;&amp;quot;&amp;quot;),&amp;quot;&amp;quot;)&lt;/code&gt; — 198 placeholder husks where the array formula used to spill.&lt;/p&gt;
&lt;h2 id=&quot;skip-dynamic-arrays--excel-2016-doesnt-have-them&quot;&gt;Skip dynamic arrays — Excel 2016 doesn’t have them&lt;/h2&gt;
&lt;p&gt;Excel 365 ships &lt;code&gt;FILTER&lt;/code&gt;, &lt;code&gt;SORT&lt;/code&gt;, &lt;code&gt;UNIQUE&lt;/code&gt;, and &lt;code&gt;TAKE&lt;/code&gt;. They map closely onto what the Google formulas were doing, which makes them the obvious target. They also don’t exist in Excel 2019 or 2016. I can’t know which version a buyer runs, and quietly amending the product page to say “requires 365” isn’t a fix, it’s a retreat.&lt;/p&gt;
&lt;p&gt;So the rewrite avoids dynamic arrays entirely.&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Approach&lt;/th&gt;&lt;th&gt;Sheets&lt;/th&gt;&lt;th&gt;Excel 365&lt;/th&gt;&lt;th&gt;Excel 2016&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;ARRAYFORMULA&lt;/code&gt; / &lt;code&gt;QUERY&lt;/code&gt; / &lt;code&gt;SORTN&lt;/code&gt;&lt;/td&gt;&lt;td&gt;works&lt;/td&gt;&lt;td&gt;no&lt;/td&gt;&lt;td&gt;no&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;FILTER&lt;/code&gt; / &lt;code&gt;SORT&lt;/code&gt; / &lt;code&gt;UNIQUE&lt;/code&gt; (dynamic arrays)&lt;/td&gt;&lt;td&gt;works&lt;/td&gt;&lt;td&gt;works&lt;/td&gt;&lt;td&gt;no&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Per-row helper columns + &lt;code&gt;INDEX&lt;/code&gt;/&lt;code&gt;MATCH&lt;/code&gt;&lt;/td&gt;&lt;td&gt;works&lt;/td&gt;&lt;td&gt;works&lt;/td&gt;&lt;td&gt;works&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The idea is to split “sort and take the top N” into two steps. Each row computes its own rank into a helper column; the display side just asks for the row whose rank is n. Delete the sorting operation and the need for dynamic arrays goes with it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.simpleicons.org/python/af5d38&quot; width=&quot;16&quot; height=&quot;16&quot; alt style=&quot;vertical-align:middle;margin-right:6px;display:inline-block&quot;/&gt; I generated the replacements row by row from openpyxl. Pasting 200 rows × 4 helper columns by hand isn’t realistic, and when the range needs to change later it’s one constant in the script.&lt;/p&gt;
&lt;h2 id=&quot;write-the-rank-into-a-helper-column-with-sumproduct&quot;&gt;Write the rank into a helper column with SUMPRODUCT&lt;/h2&gt;
&lt;p&gt;“Everything past 90 days since its last update, ordered by days elapsed, descending” becomes a per-row formula. &lt;code&gt;RANK&lt;/code&gt; doesn’t fit because the ranking applies to a filtered subset.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; rank_renew_formula&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(row):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    L, A &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;$L&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;row&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;$A&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;row&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    la, lb &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;$L$2:$L$&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{LAST_ROW}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;$A$2:$A$&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{LAST_ROW}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    rows &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;ROW($L$2:$L$&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{LAST_ROW}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;)&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;        f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;=IF(AND(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;lt;&amp;gt;&amp;quot;&amp;quot;,ISNUMBER(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;L&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;L&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;gt;90),&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;        f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;SUMPRODUCT((&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;lb&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;lt;&amp;gt;&amp;quot;&amp;quot;)*ISNUMBER(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;la&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;)*(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;la&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;gt;90)*&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;        f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;((&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;la&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;L&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;)+((&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;la&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;L&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;)*(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;rows&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;lt;ROW(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;L&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;)))))+1,&amp;quot;&amp;quot;)&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    )&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Which produces:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;=IF(AND($A2&amp;lt;&amp;gt;&amp;quot;&amp;quot;,ISNUMBER($L2),$L2&amp;gt;90),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   SUMPRODUCT(($A$2:$A$200&amp;lt;&amp;gt;&amp;quot;&amp;quot;)*ISNUMBER($L$2:$L$200)*($L$2:$L$200&amp;gt;90)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   *(($L$2:$L$200&amp;gt;$L2)+(($L$2:$L$200=$L2)*(ROW($L$2:$L$200)&amp;lt;ROW($L2)))))+1,&amp;quot;&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Multiplying conditions together is the whole trick with &lt;code&gt;SUMPRODUCT&lt;/code&gt;: count the rows that beat you, add one, and that’s your rank. Two details do real work here.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;ISNUMBER&lt;/code&gt; term can’t be dropped. Column L returns &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt; for rows with nothing to measure, and Excel evaluates text as greater than any number, so &lt;code&gt;$L$2:$L$200&amp;gt;90&lt;/code&gt; on its own would let every blank row into the ranking. Multiplying by the numeric test removes them.&lt;/p&gt;
&lt;p&gt;Ties need handling too. Two rows with identical elapsed days would share a rank, and &lt;code&gt;MATCH&lt;/code&gt; only ever returns the first hit, so the other row vanishes from the table. Adding &lt;code&gt;(equal value) × (lower row number)&lt;/code&gt; puts the earlier row first and keeps ranks distinct.&lt;/p&gt;
&lt;h2 id=&quot;replace-regexmatch-with-an-array-constant-and-substitute&quot;&gt;Replace REGEXMATCH with an array constant and SUBSTITUTE&lt;/h2&gt;
&lt;p&gt;Password strength was checking character classes with &lt;code&gt;REGEXMATCH(E2, &amp;quot;[A-Z]&amp;quot;)&lt;/code&gt;. Excel has no regular expressions, so I switched to counting occurrences per class instead.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; char_class_count&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(cell, chars):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;Build a formula counting how many characters of `cell` appear in `chars`.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    arr &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;{&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;,&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.join(&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;c&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; c &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; chars) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;}&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;SUMPRODUCT(LEN(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;cell&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;)-LEN(SUBSTITUTE(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;cell&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;arr&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;,&amp;quot;&amp;quot;)))&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Handing &lt;code&gt;SUBSTITUTE&lt;/code&gt; an array constant of &lt;code&gt;{&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;,…,&amp;quot;Z&amp;quot;}&lt;/code&gt; gives back 26 strings, each missing one letter. Sum the length deltas with &lt;code&gt;SUMPRODUCT&lt;/code&gt; and you have the uppercase count. &lt;code&gt;SUBSTITUTE&lt;/code&gt; is case-sensitive, so &lt;code&gt;[A-Z]&lt;/code&gt; and &lt;code&gt;[a-z]&lt;/code&gt; port over directly. Symbols come out as total length minus upper, lower, and digits.&lt;/p&gt;
&lt;p&gt;My first version split the string with &lt;code&gt;MID(E2, ROW(INDIRECT(&amp;quot;1:&amp;quot;&amp;amp;LEN(E2))), 1)&lt;/code&gt; and matched each character with &lt;code&gt;FIND&lt;/code&gt;. Verification rated every single password as weak. &lt;code&gt;INDIRECT&lt;/code&gt; array expansion behaves differently across environments, and when it fails it lands in the &lt;code&gt;IFERROR&lt;/code&gt; branch — so once again, quietly. Dropping &lt;code&gt;INDIRECT&lt;/code&gt; cleared it.&lt;/p&gt;
&lt;h2 id=&quot;let-the-display-side-do-nothing-but-indexmatch&quot;&gt;Let the display side do nothing but INDEX/MATCH&lt;/h2&gt;
&lt;p&gt;With ranks sitting in a helper column, the dashboard only has to fetch the row holding rank n.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; lookup&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(rank_col, value_col, first_row, row):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    n &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; row &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; first_row &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;        f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;=IFERROR(INDEX(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{SHEET}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;value_col&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;$2:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;value_col&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{LAST_ROW}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;,&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;        f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;MATCH(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{SHEET}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;!$&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;rank_col&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;$2:$&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;rank_col&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;{LAST_ROW}&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;,0)),&amp;quot;&amp;quot;)&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    )&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;=IFERROR(INDEX(&amp;#39;パスワード一覧&amp;#39;!A$2:A$200,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;         MATCH(1,&amp;#39;パスワード一覧&amp;#39;!$R$2:$R$200,0)),&amp;quot;&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The rank could come from a relative reference like &lt;code&gt;ROWS(B$10:B10)&lt;/code&gt;, but since Python is emitting a formula per row anyway, a literal integer is simpler and dodges another function-support difference. &lt;code&gt;IFERROR&lt;/code&gt; shows up here as well, though now it carries only its intended meaning: no row has rank 3, so there are fewer than three matches.&lt;/p&gt;
&lt;h2 id=&quot;formulas-arent-the-only-thing-that-goes-quiet&quot;&gt;Formulas aren’t the only thing that goes quiet&lt;/h2&gt;
&lt;p&gt;Writing sample data for the trial edition with openpyxl, I repeated the same class of mistake. Passing dates as the string &lt;code&gt;&amp;quot;2019-04-02&amp;quot;&lt;/code&gt; blanked out days-elapsed, the needs-update count, and the top-5 rotation list all at once.&lt;/p&gt;
&lt;p&gt;Column L computes &lt;code&gt;INT(TODAY()-K2)&lt;/code&gt;. When K2 holds text the subtraction fails, &lt;code&gt;IFERROR&lt;/code&gt; absorbs it, and an empty string comes back. The helper column’s &lt;code&gt;ISNUMBER&lt;/code&gt; then correctly excludes the row, &lt;code&gt;MATCH&lt;/code&gt; finds nothing to fetch, and the dashboard prints “no matches.” No error surfaces anywhere along that chain.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;ws.cell(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;row&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;r, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;column&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;).value &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; datetime.date.fromisoformat(reg)  &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# a date, not a str&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;ws.cell(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;row&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;r, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;column&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;).number_format &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;yyyy-mm-dd&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;IFERROR&lt;/code&gt; is worth having as long as it only catches the failures you anticipated. Once it starts folding unanticipated ones into the same appearance, a file can ship broken and stay that way.&lt;/p&gt;
&lt;h2 id=&quot;wrapping-up&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;If you build in Google Sheets and ship &lt;code&gt;.xlsx&lt;/code&gt;, open the export with something other than a spreadsheet at least once. Counting &lt;code&gt;__xludf.DUMMYFUNCTION&lt;/code&gt; takes twenty lines, and the same twenty lines confirm the count reached zero after you fix it.&lt;/p&gt;
&lt;p&gt;For the rewrite itself, dropping all the way down to helper columns and &lt;code&gt;INDEX&lt;/code&gt;/&lt;code&gt;MATCH&lt;/code&gt; suited a distributed file better than reaching for 365’s dynamic arrays. The formulas get long, but Excel 2016 and Google Sheets produce the same numbers. When a script generates them, formula length stops being a cost worth optimizing.&lt;/p&gt;
&lt;p&gt;The same instinct — make breakage visible instead of trusting it not to happen — shows up in &lt;a href=&quot;https://aulvem.com/blog/2026-05-23-aulvem-zod-schema-enforcement/&quot;&gt;catching content rule violations at build time with Zod&lt;/a&gt;. The corrected file is live on the &lt;a href=&quot;https://aulvem.com/products/password-sheet-personal/&quot;&gt;password manager sheet&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;what-happens-to-google-only-functions-when-you-export-to-xlsx&quot;&gt;What happens to Google-only functions when you export to .xlsx?&lt;/h3&gt;
&lt;p&gt;They survive the export. ARRAYFORMULA, FILTER, SORTN, QUERY, UNIQUE, and REGEXMATCH have no Excel equivalent, so the exported file stores them as a function called &lt;code&gt;__xludf.DUMMYFUNCTION&lt;/code&gt; with the original formula kept as a string argument. openpyxl shows them plainly. Excel never evaluates them.&lt;/p&gt;
&lt;h3 id=&quot;why-does-it-show-no-matches-instead-of-an-error&quot;&gt;Why does it show ‘no matches’ instead of an error?&lt;/h3&gt;
&lt;p&gt;Because the original formula was already wrapped in &lt;code&gt;IFERROR&lt;/code&gt;. On the Sheets side that wrapper existed to print an em dash when nothing matched. In Excel it also catches the “this function does not exist” error, so the cell returns an empty string or the fallback text and the sheet looks fine. Every one of the 203 broken cells in my file had that shape.&lt;/p&gt;
&lt;h3 id=&quot;cant-you-just-swap-in-excel-365s-filter--sort--unique&quot;&gt;Can’t you just swap in Excel 365’s FILTER / SORT / UNIQUE?&lt;/h3&gt;
&lt;p&gt;Only if you can assume the buyer’s Excel version. Dynamic arrays don’t exist in Excel 2019 or 2016, so they’re off the table for something you ship to strangers. Putting the rank, sequence, and flag into per-row helper columns and reading them back with &lt;code&gt;INDEX&lt;/code&gt;/&lt;code&gt;MATCH&lt;/code&gt; produces the same result on Excel 2016 and Google Sheets alike.&lt;/p&gt;
&lt;h3 id=&quot;how-do-you-count-character-classes-without-regexmatch&quot;&gt;How do you count character classes without REGEXMATCH?&lt;/h3&gt;
&lt;p&gt;With an array constant and the length delta from &lt;code&gt;SUBSTITUTE&lt;/code&gt;. &lt;code&gt;SUBSTITUTE($E2,{&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;,…},&amp;quot;&amp;quot;)&lt;/code&gt; returns one string per letter with that letter removed, so summing the &lt;code&gt;LEN&lt;/code&gt; differences with &lt;code&gt;SUMPRODUCT&lt;/code&gt; gives you the count. &lt;code&gt;SUBSTITUTE&lt;/code&gt; is case-sensitive, which covers the upper-versus-lower distinction for free. Splitting the string with &lt;code&gt;MID&lt;/code&gt; and &lt;code&gt;INDIRECT&lt;/code&gt; is fragile across environments — in my case it silently rated every password as weak.&lt;/p&gt;</content:encoded><category>build</category><category>excel</category><category>google-sheets</category><category>openpyxl</category><category>python</category><category>spreadsheet</category></item><item><title>Idempotent notifications with an outbox — separate detection from sending, re-check right before send</title><link>https://aulvem.com/blog/2026-08-03-idempotent-notification-outbox/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-08-03-idempotent-notification-outbox/</guid><description>Sending a notification the instant you detect the condition means stock or price can change between detection and delivery, and the alert goes stale. Instead, detection only enqueues into an outbox; a dispatcher re-fetches and re-checks right before sending, and drops anything that no longer holds. Here&apos;s the idempotent enqueue, the send-time re-check, and exponential-backoff retries as a state machine on Cloudflare D1.</description><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Send a notification the instant you detect its condition, and the short gap between detection and delivery will bite you. Stock runs out, a price reverts, a user removes a watch — tens of seconds to minutes after detection, the alert may no longer apply.&lt;/p&gt;
&lt;p&gt;I built and shipped a price watcher called &lt;a href=&quot;https://aulvem.com/products/yasugoro/&quot;&gt;Yasugoro&lt;/a&gt; on Cloudflare Workers + D1. It notifies you when a staple gets cheaper, so sending a “no longer cheaper” alert is the worst thing it can do. So I split detection from sending: detection only appends to an outbox, and a separate step re-checks right before it sends. This post is about how that outbox is built as a state machine on D1 — idempotent enqueue, a pre-send re-check, and retries — not about what gets detected (the buy-timing decision).&lt;/p&gt;
&lt;h2 id=&quot;detection-only-enqueues&quot;&gt;Detection only enqueues&lt;/h2&gt;
&lt;p&gt;Detection’s whole job is one &lt;code&gt;INSERT&lt;/code&gt; into the outbox when a condition holds. Actually sending is a separate step (a per-minute dispatch). That decouples detection from delivery in time.&lt;/p&gt;
&lt;p&gt;Make the enqueue idempotent. However many times the same watch’s same trigger fires in a day, the notification should collapse to one. A SQLite expression index plus &lt;code&gt;ON CONFLICT DO NOTHING&lt;/code&gt; absorbs it.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;-- migration: an expression index that collapses duplicates to one&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;CREATE&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; UNIQUE INDEX&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; uq_outbox_dedup&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  ON&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; outbox (watch_id, trigger, &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;date&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(detected_at), channel);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// enqueue is idempotent; returns false when ON CONFLICT ignored it&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; async&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; enqueueOutbox&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;db&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; D1Database&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;input&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; EnqueueInput&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Promise&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;boolean&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; res&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; db.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;prepare&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    `INSERT INTO outbox&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       (watch_id, user_id, channel, trigger, status, detected_at, detected_payload_json, retry_count, created_at)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;     VALUES (?, ?, ?, ?, &amp;#39;pending&amp;#39;, ?, ?, 0, ?)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;     ON CONFLICT (watch_id, trigger, date(detected_at), channel) DO NOTHING`&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;bind&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;/* ... */&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;run&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (res.meta?.changes &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;??&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// changes=1 on real insert, 0 when dedup ignored it&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Keying on &lt;code&gt;date(detected_at)&lt;/code&gt; is the trick: it folds “the same detection on the same day” into one row while still letting the next day’s detection through as a new one. Detection can run many times over without the outbox ballooning with duplicates.&lt;/p&gt;
&lt;h2 id=&quot;five-states-one-direction&quot;&gt;Five states, one direction&lt;/h2&gt;
&lt;p&gt;Each outbox row moves one way through five states. An enqueued &lt;code&gt;pending&lt;/code&gt; becomes &lt;code&gt;sending&lt;/code&gt; → &lt;code&gt;sent&lt;/code&gt; if it passes the pre-send re-check, or &lt;code&gt;dropped&lt;/code&gt; if it broke. A transient send failure goes to &lt;code&gt;retry&lt;/code&gt;, and to &lt;code&gt;failed&lt;/code&gt; at the cap.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;mermaid&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;flowchart LR&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  pending --&amp;gt;|re-check holds| sending&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  pending --&amp;gt;|condition broke| dropped&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  sending --&amp;gt;|delivered| sent&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  sending --&amp;gt;|transient fail| retry&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  retry --&amp;gt;|back to re-check| pending&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  retry --&amp;gt;|cap reached| failed&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;sent&lt;/code&gt;, &lt;code&gt;dropped&lt;/code&gt;, and &lt;code&gt;failed&lt;/code&gt; are terminal. &lt;code&gt;dropped&lt;/code&gt; isn’t an error — it’s a &lt;strong&gt;normal terminal state&lt;/strong&gt; meaning “we learned we shouldn’t send, so we didn’t.” Keeping it distinct from errors lets you later count how many you correctly withheld.&lt;/p&gt;
&lt;h2 id=&quot;re-check-right-before-sending-and-drop-what-broke&quot;&gt;Re-check right before sending, and drop what broke&lt;/h2&gt;
&lt;p&gt;The dispatch handles one row at a time: re-fetch → re-check whether the detection condition still holds → send only the ones that do. This is the core that stops stale alerts.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// processing one outbox row (skeleton)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; processOutbox&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;now&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;deps&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;  // (0) pre-guards: watch removed / target paused -&amp;gt; dropped&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (watchRemoved &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; listingPaused) { &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; markDropped&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(db, o.id, &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;...&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;); &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;#39;dropped&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;  // (1) re-fetch the current value right before sending (split drop vs retry by error kind)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; r&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; adapter.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;getOne&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(itemCode);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;r.ok) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (r.error.kind &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;#39;empty&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) { &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; markDropped&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(db, o.id, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;out_of_stock&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;); &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;#39;dropped&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; scheduleRetry&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(db, o, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;`refetch_${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;r&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;error&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;kind&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}`&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;); &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;#39;retry&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;  // (2) re-check that the detection condition still holds (the body is domain-specific)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; recheck&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; recheckTrigger&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;/* current value */&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;recheck.ok) { &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; markDropped&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(db, o.id, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;condition_lost&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;); &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;#39;dropped&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;  // (3) only for the ones that hold: build the body from the latest value and deliver&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; markSending&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(db, o.id, o.channel);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; result&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; deps.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;deliver&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(o.userId, &lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;buildPayload&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;/* re-fetched latest value */&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;  // ... sent / retry / dropped&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What the re-check contains (which trigger still “holds”) depends on the service. What’s universal: &lt;strong&gt;don’t send from the value you captured at detection — assert from the value you re-fetched at send time.&lt;/strong&gt; Align the number in the message with the basis on which you decided to send. Let them drift and you ship “the body says one price, reality is another.”&lt;/p&gt;
&lt;h2 id=&quot;advance-notified-only-on-sent&quot;&gt;Advance “notified” only on sent&lt;/h2&gt;
&lt;p&gt;The other half of idempotency is a rule: update &lt;code&gt;last_notified&lt;/code&gt; (the baseline for the last alert sent to this watch) &lt;strong&gt;only on &lt;code&gt;sent&lt;/code&gt;&lt;/strong&gt;. Never on &lt;code&gt;dropped&lt;/code&gt; or &lt;code&gt;retry&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If a drop or retry moved the baseline, the next legitimate detection would be wrongly rejected as “already notified.” Don’t stamp “sent” on something you didn’t send; only advance when you actually delivered. That’s how “send exactly once, but things you couldn’t send still flow to the next round” both hold.&lt;/p&gt;
&lt;h2 id=&quot;retry-transient-failures-with-exponential-backoff-fail-at-the-cap&quot;&gt;Retry transient failures with exponential backoff, fail at the cap&lt;/h2&gt;
&lt;p&gt;Rate limits on the re-fetch, network errors, and transient delivery failures aren’t discarded — they drop to &lt;code&gt;retry&lt;/code&gt;. Bump &lt;code&gt;retry_count&lt;/code&gt;, wait with exponential backoff, and terminate at &lt;code&gt;failed&lt;/code&gt; at the cap.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; backoffMs&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;retryCount&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Math.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;min&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; retryCount &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 30_000&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;30&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 60_000&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;); &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// 30s, 60s, 120s … capped at 30 min&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;One implementation compromise here. Rather than add &lt;code&gt;next_attempt_at&lt;/code&gt; / &lt;code&gt;last_error&lt;/code&gt; columns, the retry schedule rides inside the payload JSON under a &lt;code&gt;_retry&lt;/code&gt; key — the detection snapshot (listingId, etc.) stays immutable while the schedule piggybacks on it. The fetch queue coarsely pulls &lt;code&gt;pending&lt;/code&gt;/&lt;code&gt;retry&lt;/code&gt; in SQL and filters out any whose &lt;code&gt;_retry.nextAttemptAt&lt;/code&gt; hasn’t arrived, app-side. Backoff is respected without growing the schema.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; async&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; pendingOutbox&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;db&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;limit&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;now&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; rows&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; db.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;prepare&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    `SELECT * FROM outbox WHERE status IN (&amp;#39;pending&amp;#39;,&amp;#39;retry&amp;#39;) ORDER BY created_at ASC LIMIT ?`&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;bind&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(limit &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;all&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; ready&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; rows.results.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;filter&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;r&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (r.status &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;#39;pending&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; true&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; meta&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; parseDetectedPayload&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(r.detected_payload_json)._retry;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; !&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;meta?.nextAttemptAt &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; meta.nextAttemptAt &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; now; &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// exclude not-yet-due backoff&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  });&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; ready.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;slice&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, limit);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;wrapping-up&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;The more you want a notification to be correct, the more it paid off to stop “sending on detection” and put an outbox in between. Enqueue idempotently, send only what passed a pre-send re-check, and advance “notified” only when you actually delivered. Collapsing the states into a one-way &lt;code&gt;pending → sending → sent / dropped / retry → failed&lt;/code&gt; makes “shouldn’t send, so didn’t (dropped)” and “want to send, haven’t yet (retry)” distinct in both code and operations.&lt;/p&gt;
&lt;p&gt;How this outbox gets driven every minute is in &lt;a href=&quot;https://aulvem.com/blog/2026-07-25-cloudflare-workers-cron-multiplex/&quot;&gt;running many jobs on one Workers cron&lt;/a&gt;, and the delivery channel (login-less Web Push) is in &lt;a href=&quot;https://aulvem.com/blog/2026-07-07-anonymous-web-push-no-login/&quot;&gt;delivering Web Push by anonymous device token&lt;/a&gt;. The running app is &lt;a href=&quot;https://aulvem.com/products/yasugoro/&quot;&gt;Yasugoro&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;why-enqueue-into-an-outbox-instead-of-sending-on-detection&quot;&gt;Why enqueue into an outbox instead of sending on detection?&lt;/h3&gt;
&lt;p&gt;Because the situation changes between detection and delivery, and the alert goes stale. You detect that a condition holds, but in the tens of seconds to minutes before you actually send, stock can vanish or the condition can revert. Send anyway and you deliver a notification that no longer applies. Letting detection only append one outbox row, then re-fetching and re-checking right before sending, lets you drop the stale ones instead of sending them.&lt;/p&gt;
&lt;h3 id=&quot;what-stops-the-same-notification-from-firing-twice&quot;&gt;What stops the same notification from firing twice?&lt;/h3&gt;
&lt;p&gt;The enqueue is idempotent. It runs INSERT … ON CONFLICT DO NOTHING against a UNIQUE(watch_id, trigger, date(detected_at), channel) expression index, so duplicates for the same day, watch, trigger, and channel collapse to one row. On top of that, the notified baseline (last_notified) advances only on sent, so a dropped or retried row never blocks the next legitimate detection.&lt;/p&gt;
&lt;h3 id=&quot;what-happens-if-the-condition-breaks-right-before-sending&quot;&gt;What happens if the condition breaks right before sending?&lt;/h3&gt;
&lt;p&gt;It’s dropped (a normal terminal state). If the pre-send re-fetch shows stock gone or the detection condition no longer holding, the row is dropped as condition_lost and the notified baseline is left untouched. The message body is built from the freshly re-fetched values, not the ones captured at detection, so the number you assert and the basis for sending are the same current value.&lt;/p&gt;
&lt;h3 id=&quot;how-are-transient-send-failures-handled&quot;&gt;How are transient send failures handled?&lt;/h3&gt;
&lt;p&gt;As retry. Rate limits on the re-fetch, network errors, and transient delivery failures bump retry_count and wait with exponential backoff (30s → 60s → … capped at 30 min), terminating at failed once it hits OUTBOX_MAX_RETRY. Rather than add a next_attempt_at column, the retry schedule rides inside the payload JSON under a &lt;code&gt;_retry&lt;/code&gt; key, and the fetch queue filters out retries whose scheduled time hasn’t arrived.&lt;/p&gt;</content:encoded><category>build</category><category>typescript</category><category>cloudflare-workers</category><category>d1</category><category>sqlite</category><category>serverless</category></item><item><title>One Cloudflare Workers cron, many jobs — a per-minute tick with time branching</title><link>https://aulvem.com/blog/2026-07-25-cloudflare-workers-cron-multiplex/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-07-25-cloudflare-workers-cron-multiplex/</guid><description>Cloudflare Workers&apos; free plan caps cron triggers at five per account, which runs out fast once several services share it. Here&apos;s collapsing everything into a single per-minute cron that branches on UTC time to run patrol, send, and daily maintenance — and fitting each tick inside the 50-subrequest free-tier limit.</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The first wall I hit building scheduled work on Cloudflare Workers was the free plan’s cron trigger cap: five per account. Cut one cron per purpose within a single service — patrol, send, daily maintenance — and you reach five fast. Want another service on the same account, and there’s nothing left.&lt;/p&gt;
&lt;p&gt;I built and shipped a price watcher called &lt;a href=&quot;https://aulvem.com/products/yasugoro/&quot;&gt;Yasugoro&lt;/a&gt; on Workers + D1. Its scheduled work spans wildly different cadences: sending notifications every minute, patrolling every five, running maintenance once a day. To keep all of it under five crons — and shareable with other services — I collapsed cron into one per-minute schedule that branches on time inside the tick. Here’s how it’s wired.&lt;/p&gt;
&lt;h2 id=&quot;one-per-minute-cron-branching-on-time-inside-the-tick&quot;&gt;One per-minute cron, branching on time inside the tick&lt;/h2&gt;
&lt;p&gt;The move is simple: register a single &lt;code&gt;* * * * *&lt;/code&gt; (per-minute) cron, and inside the &lt;code&gt;scheduled()&lt;/code&gt; handler check the current time to decide what runs this minute. No new cron per purpose.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// the only cron expression (per minute); keep it in sync with wrangler.toml crons&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; CRON_TICK&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;#39;* * * * *&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; async&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; runScheduledTick&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;env&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Env&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;now&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Date&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Promise&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;isPatrolTick&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(now))      &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; runPatrol&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(env, now);       &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// every 5 min&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;isKaidokiEveTick&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(now))  &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; runKaidokiEve&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(env, now);   &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// JST 23:50&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;isKaidokiDayTick&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(now))  &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; runKaidokiDay&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(env, now);   &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// JST 00:00&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;isHousekeepingTick&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(now)) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; runHousekeeping&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(env, now);                            &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// JST 03:30&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; runSaleIngest&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(env, now);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;isRankingIngestTick&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(now)) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; runRankingIngest&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(env, now); &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// JST 04:00&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; runDispatchCron&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(env, now);                              &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// every minute (send)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Each per-minute tick runs only the jobs whose predicate matches that minute. Six distinct schedules, and the cron budget spent stays at one. &lt;code&gt;scheduled()&lt;/code&gt; sees it through with &lt;code&gt;ctx.waitUntil(runScheduledTick(env, new Date()))&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;mermaid&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;flowchart TD&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Cron[&amp;quot;cron * * * * * one per minute&amp;quot;] --&amp;gt; Tick[runScheduledTick now]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Tick --&amp;gt; Dispatch[send: every minute]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Tick --&amp;gt; Patrol[patrol: minute%5==0]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Tick --&amp;gt; Eve[buy-timing eve: UTC 14:50]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Tick --&amp;gt; Day[buy-timing day: UTC 15:00]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Tick --&amp;gt; House[maintenance+ingest: UTC 18:30]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Tick --&amp;gt; Rank[ranking ingest: UTC 19:00]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;write-the-branch-predicates-in-utc&quot;&gt;Write the branch predicates in UTC&lt;/h2&gt;
&lt;p&gt;Time branching is written with &lt;code&gt;Date&lt;/code&gt;’s UTC methods. The time handed to &lt;code&gt;scheduled&lt;/code&gt; is UTC, so writing it as if it were local drifts. Jobs that should run on Japan time are converted as JST = UTC+9.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; const&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; isPatrolTick&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Date&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; n.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;getUTCMinutes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 5&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; ===&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; const&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; isKaidokiEveTick&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Date&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; n.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;getUTCHours&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 14&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; n.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;getUTCMinutes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 50&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// JST 23:50&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; const&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; isKaidokiDayTick&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Date&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; n.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;getUTCHours&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 15&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; n.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;getUTCMinutes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;  &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// JST 00:00&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; const&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; isHousekeepingTick&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Date&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; n.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;getUTCHours&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 18&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; n.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;getUTCMinutes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 30&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// JST 03:30&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;“Every five minutes” is &lt;code&gt;getUTCMinutes() % 5 === 0&lt;/code&gt;; a specific time is an hour-and-minute match. Pulling each predicate into its own function keeps &lt;code&gt;runScheduledTick&lt;/code&gt; readable — a list of “if it matches, call it.” Tests can pass &lt;code&gt;new Date(&amp;#39;...Z&amp;#39;)&lt;/code&gt; and check each branch in isolation.&lt;/p&gt;
&lt;h2 id=&quot;reliability-is-the-same-as-several-dedicated-crons&quot;&gt;Reliability is the same as several dedicated crons&lt;/h2&gt;
&lt;p&gt;You might worry that collapsing to one per-minute cron makes daily jobs flaky. It doesn’t — because the dependency is identical.&lt;/p&gt;
&lt;p&gt;“A dedicated cron that fires at UTC 18:30” and “a per-minute cron whose UTC 18:30 firing you check” both depend, equally, on &lt;em&gt;Cloudflare firing the cron for that minute&lt;/em&gt;. If Cloudflare drops a firing, the dedicated cron is missed too; if the per-minute tick arrives, the time check holds. Collapsing adds no new uncertainty.&lt;/p&gt;
&lt;p&gt;The one thing that matters operationally is keeping &lt;code&gt;wrangler.toml&lt;/code&gt;’s &lt;code&gt;[triggers] crons&lt;/code&gt; and the cron constant in code &lt;strong&gt;character-for-character identical&lt;/strong&gt;. Drift there and it either doesn’t fire or registers more than you meant. yasugoro keeps a single test that cross-checks the two so drift fails the build.&lt;/p&gt;
&lt;h2 id=&quot;fit-each-tick-under-the-free-tier-subrequest-limit-50&quot;&gt;Fit each tick under the free-tier subrequest limit (50)&lt;/h2&gt;
&lt;p&gt;The free plan has a separate limit: at most 50 outgoing fetches (subrequests) per invocation. Collapsing crons doesn’t help here — if one tick’s work exceeds 50, it fails. So for each job you back the batch size out of “how many subrequests does one item cost?”&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Patrol&lt;/strong&gt;: roughly one request per item, so a batch of 40 (&lt;code&gt;PATROL_BATCH_SIZE&lt;/code&gt;) leaves headroom under 50.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Send&lt;/strong&gt;: one item costs a pre-send re-check plus a delivery — up to two subrequests. So the batch is capped at half the send constant (&lt;code&gt;PUSH_BATCH_SIZE / 2&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// send: one item = re-check + deliver = 2 subrequests -&amp;gt; halve the batch&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; batchSize&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Math.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;floor&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;PUSH_BATCH_SIZE&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; runDispatch&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(deps, batchSize, now);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A job that can’t clear its targets in one batch rotates them. Yasugoro’s ranking ingest splits its target categories into a few per tick, so firing at the same time each day still keeps one run to a handful of categories and sweeps the whole set over several days (effectively weekly). You clear the 50-subrequest wall by not doing everything at once.&lt;/p&gt;
&lt;h2 id=&quot;resolve-job-dependencies-by-call-order&quot;&gt;Resolve job dependencies by call order&lt;/h2&gt;
&lt;p&gt;When jobs within a tick depend on each other, the order of calls in &lt;code&gt;runScheduledTick&lt;/code&gt; resolves it. Yasugoro puts sending last.&lt;/p&gt;
&lt;p&gt;That way notifications enqueued by an earlier job in the same tick (buy-timing, say) get picked up by the same run’s send, without waiting for the next tick. Reverse the order and those enqueued items sit for at least a minute. Splitting the heavy daily work — maintenance and ranking ingest — across different times (UTC 18:30 and 19:00) comes from the same instinct: don’t concentrate load and subrequests into one tick.&lt;/p&gt;
&lt;h2 id=&quot;wrapping-up&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;When you want to run several schedules on Cloudflare Workers without eating the cron cap, collapsing to a single per-minute cron that branches on UTC time inside the tick was the straightforward path. Reliability matches lining up dedicated crons, and you spend one trigger instead of many. What actually bites is the &lt;em&gt;other&lt;/em&gt; free-tier limit — 50 subrequests per run — which you handle by backing out batch sizes and not doing everything at once.&lt;/p&gt;
&lt;p&gt;The send queue this cron drives every minute — the idempotent-notification outbox state machine — is in &lt;a href=&quot;https://aulvem.com/blog/2026-08-03-idempotent-notification-outbox/&quot;&gt;idempotent notifications with an outbox&lt;/a&gt;, and how the notifications get delivered without any login is in &lt;a href=&quot;https://aulvem.com/blog/2026-07-07-anonymous-web-push-no-login/&quot;&gt;delivering Web Push by anonymous device token&lt;/a&gt;. The running thing is &lt;a href=&quot;https://aulvem.com/products/yasugoro/&quot;&gt;Yasugoro&lt;/a&gt;, which you can poke at with no login.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;why-collapse-into-one-cron-instead-of-several-dedicated-ones&quot;&gt;Why collapse into one cron instead of several dedicated ones?&lt;/h3&gt;
&lt;p&gt;Because Cloudflare Workers’ free plan caps cron triggers at five per account. Run several services on one account and a single service burning five triggers leaves no room for the rest. yasugoro registers exactly one per-minute cron (* * * * *) and, inside it, checks the UTC time to dispatch each job. It spends only one trigger, so other services can share the budget.&lt;/p&gt;
&lt;h3 id=&quot;does-a-per-minute-tick-with-time-branching-run-daily-jobs-reliably&quot;&gt;Does a per-minute tick with time branching run daily jobs reliably?&lt;/h3&gt;
&lt;p&gt;Yes. “A dedicated cron fires at that minute (say UTC 18:30)” and “a per-minute cron fires at that minute and you check the time” depend on the exact same thing: Cloudflare firing the cron for that minute. So daily-job reliability equals a dedicated cron — if a firing is dropped, both are affected the same way. Write the predicates with getUTCHours() / getUTCMinutes(), converting JST as UTC+9.&lt;/p&gt;
&lt;h3 id=&quot;how-do-you-stay-within-the-free-tier-subrequest-limit&quot;&gt;How do you stay within the free-tier subrequest limit?&lt;/h3&gt;
&lt;p&gt;Outgoing fetches (subrequests) per invocation are capped at 50 on the free plan. Count how many subrequests one item costs, then back out the batch size. yasugoro patrols 40 items per batch, and for sending — where one item costs a re-check plus a delivery, i.e. two subrequests — it caps the batch at PUSH_BATCH_SIZE/2. Any ingest that can’t finish in one pass rotates its targets and covers the whole set over several days.&lt;/p&gt;
&lt;h3 id=&quot;can-a-job-enqueued-this-tick-be-processed-in-the-same-run&quot;&gt;Can a job enqueued this tick be processed in the same run?&lt;/h3&gt;
&lt;p&gt;Yes, if you order the calls right. yasugoro runs sending (the outbox dispatch) last in the tick. That way notifications enqueued by an earlier job in the same tick (like buy-timing) get picked up and sent in the same run. Reverse the order and those enqueued items wait until the next tick, so dependent jobs are resolved by call order.&lt;/p&gt;</content:encoded><category>build</category><category>typescript</category><category>cloudflare-workers</category><category>cron</category><category>serverless</category><category>hono</category></item><item><title>Web Push without login — delivering notifications by anonymous device token</title><link>https://aulvem.com/blog/2026-07-07-anonymous-web-push-no-login/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-07-07-anonymous-web-push-no-login/</guid><description>To send Web Push without accounts or email, you have to decide what holds the recipient before you send anything. Here is how an anonymous device token, minted into a cookie and delivered from Cloudflare Workers with VAPID over webcrypto, handles subscriptions, revocation, and the iOS and FCM gotchas that only surface on real devices.</description><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The requirement was “no account, no email,” and Web Push trips on the very first step under it. Before you can send a notification you need something to hold the recipient — but with no login there is no user_id and no email to key on.&lt;/p&gt;
&lt;p&gt;I built and shipped a price watcher called &lt;a href=&quot;https://aulvem.com/products/yasugoro/&quot;&gt;Yasugoro&lt;/a&gt; — it watches consumables and pushes a notification when one gets cheaper. The headline was “no login, anonymous, no email,” which meant the notification target had to live on an anonymous identifier rather than an account.&lt;/p&gt;
&lt;p&gt;This post is only about &lt;em&gt;how to deliver&lt;/em&gt; under that constraint, not &lt;em&gt;what to deliver&lt;/em&gt; (the buy-timing decision). The anonymous device token, storing the subscription, handling revocation, and the two holes I fell into on real iOS and FCM devices. Once the recipient key is settled, the Web Push part itself is standard plumbing straight out of the spec.&lt;/p&gt;
&lt;h2 id=&quot;the-recipient-is-an-anonymous-device-token-not-email-or-an-account&quot;&gt;The recipient is an anonymous device token, not email or an account&lt;/h2&gt;
&lt;p&gt;With no login, the natural identifier is an anonymous token minted per device. On the first visit Yasugoro generates one UUID v4 and stores it as a device token in a cookie.&lt;/p&gt;
&lt;p&gt;The cookie is &lt;code&gt;httpOnly&lt;/code&gt; + &lt;code&gt;Secure&lt;/code&gt; + &lt;code&gt;SameSite=Lax&lt;/code&gt;, scoped to the app’s subpath, with a one-year lifetime. Server middleware does exactly one thing: mint the token if the cookie is missing.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; deviceTokenMiddleware&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; async&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;c&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;next&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    let&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; token &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; getCookie&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(c, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;DEVICE_COOKIE&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;token) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      token &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; crypto.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;randomUUID&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;();            &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// anonymous UUID v4&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;      setCookie&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(c, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;DEVICE_COOKIE&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, token, {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        path: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;/yasugoro&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, httpOnly: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, secure: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        sameSite: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;Lax&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, maxAge: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;60&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 60&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 24&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 365&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      });&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    c.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;deviceToken&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, token);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; next&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Taking no email means holding no personal data. The target is “this device,” not “this person” — that framing is the spine of the whole design. &lt;code&gt;crypto.randomUUID()&lt;/code&gt; is the same API on Cloudflare Workers and Node.&lt;/p&gt;
&lt;h2 id=&quot;upsert-a-user-on-the-device-token-then-hang-subscriptions-off-it&quot;&gt;Upsert a user on the device token, then hang subscriptions off it&lt;/h2&gt;
&lt;p&gt;Once the anonymous token exists, the rest is an ordinary relation. Upsert a users row keyed by a unique device token, and attach the Web Push subscriptions (&lt;code&gt;push_subscriptions&lt;/code&gt;) to that user.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// idempotently secure a users row by device_token, return user.id&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; db.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;prepare&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  `INSERT INTO users (device_token, settings_json, plan, created_at, updated_at)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   VALUES (?, &amp;#39;{}&amp;#39;, &amp;#39;free&amp;#39;, ?, ?)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   ON CONFLICT(device_token) DO UPDATE SET updated_at = excluded.updated_at`&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;bind&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(deviceToken, ts, ts).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;run&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;();&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A single user carries multiple subscription rows. Pull &lt;code&gt;endpoint&lt;/code&gt; / &lt;code&gt;p256dh&lt;/code&gt; / &lt;code&gt;auth&lt;/code&gt; out of the subscription object that the browser’s &lt;code&gt;PushManager.subscribe()&lt;/code&gt; returns, and store them. Register the same watch from a laptop and a phone, and both devices get the push.&lt;/p&gt;



































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Column&lt;/th&gt;&lt;th&gt;Holds&lt;/th&gt;&lt;th&gt;Note&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;user_id&lt;/code&gt;&lt;/td&gt;&lt;td&gt;users.id secured via device token&lt;/td&gt;&lt;td&gt;&lt;code&gt;ON DELETE CASCADE&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;endpoint&lt;/code&gt;&lt;/td&gt;&lt;td&gt;push service URL&lt;/td&gt;&lt;td&gt;&lt;code&gt;UNIQUE&lt;/code&gt; (one per device+browser)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;p256dh&lt;/code&gt; / &lt;code&gt;auth&lt;/code&gt;&lt;/td&gt;&lt;td&gt;subscription public key + auth secret&lt;/td&gt;&lt;td&gt;used to encrypt the payload&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;ua&lt;/code&gt;&lt;/td&gt;&lt;td&gt;User-Agent&lt;/td&gt;&lt;td&gt;tells iOS PWA apart (deliverability KPI)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;revoked_at&lt;/code&gt;&lt;/td&gt;&lt;td&gt;revocation time&lt;/td&gt;&lt;td&gt;stamped on 404/410, never DELETE&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Making &lt;code&gt;endpoint&lt;/code&gt; &lt;code&gt;UNIQUE&lt;/code&gt; means a device that re-subscribes doesn’t pile up new rows.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;mermaid&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;flowchart TD&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Visit[First visit] --&amp;gt; Cookie[Mint device_token / cookie]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Cookie --&amp;gt; Allow[Allow notifications]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Allow --&amp;gt; Sub[PushManager.subscribe]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Sub --&amp;gt; Post[POST /api/subscribe]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Post --&amp;gt; User[users UPSERT by device_token]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  User --&amp;gt; Save[Store in push_subscriptions]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Save --&amp;gt; Send[Send from Workers with VAPID]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The confirm call, &lt;code&gt;POST /api/subscribe&lt;/code&gt;, saves the subscription and registers the watch in one request. The server already has the device token from the cookie, so the client only sends what to watch plus the subscription object.&lt;/p&gt;
&lt;h2 id=&quot;send-from-cloudflare-workers-with-vapid-over-webcrypto&quot;&gt;Send from Cloudflare Workers, with VAPID over webcrypto&lt;/h2&gt;
&lt;p&gt;Sending happens from Cloudflare Workers, hitting each device endpoint with a VAPID signature. Node’s &lt;code&gt;web-push&lt;/code&gt; library doesn’t run on Workers, so I use one that works over webcrypto (&lt;code&gt;@block65/webcrypto-web-push&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;There are only three moves: pull the live subscriptions, encrypt the payload and build the headers, &lt;code&gt;fetch&lt;/code&gt; the endpoint.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; req&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; buildPushPayload&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  { data: &lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;toWebPushBody&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(payload) },   &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// JSON the SW receives&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  toLibSubscription&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(sub),             &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// endpoint + p256dh + auth&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  { subject, publicKey, privateKey }, &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// VAPID keys&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; res&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; fetch&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(req.endpoint, req.init);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The payload is aes128gcm-encrypted with each subscription’s keys. VAPID keys come from env secrets, and the subject is a &lt;code&gt;mailto:&lt;/code&gt; or the app URL. That is the whole send path — the notification contents (title, body, target URL) arrive as a &lt;code&gt;Payload&lt;/code&gt; assembled upstream. No “when or why to send” logic lives here.&lt;/p&gt;
&lt;h2 id=&quot;real-device-holes-fcms-vapid-header-and-ios-standalone&quot;&gt;Real-device holes: FCM’s VAPID header and iOS standalone&lt;/h2&gt;
&lt;p&gt;Code that passed locally failed silently on a real Chrome and a real iPhone — the usual Web Push initiation. Two spots caught me.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;FCM rejects the VAPID Authorization header.&lt;/strong&gt; The library emits the older draft-01 form, &lt;code&gt;Authorization: WebPush &amp;lt;jwt&amp;gt;&lt;/code&gt;, but FCM (behind Chrome/Android) rejects it with &lt;code&gt;invalid JWT provided&lt;/code&gt; (403). Rewriting it to the draft-02 form, &lt;code&gt;vapid t=&amp;lt;jwt&amp;gt;, k=&amp;lt;publicKey&amp;gt;&lt;/code&gt;, got a 201. Apple and autopush accept draft-02 too, so I transform the header right before sending.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// draft-01 &amp;quot;WebPush &amp;lt;jwt&amp;gt;&amp;quot; -&amp;gt; draft-02 &amp;quot;vapid t=&amp;lt;jwt&amp;gt;, k=&amp;lt;key&amp;gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; m&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; headers[authKey].&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;match&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;WebPush&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;\s&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (m) headers[authKey] &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; `vapid t=${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;trim&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}, k=${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;vapid&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;publicKey&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}`&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;iOS won’t subscribe unless it’s added to the home screen.&lt;/strong&gt; Safari on iOS/iPadOS only subscribes to Web Push when the PWA is added to the home screen and launched standalone. In a normal tab, &lt;code&gt;PushManager.subscribe()&lt;/code&gt; fails. So the client detects an iOS device that isn’t standalone and shows the add-to-home-screen guide instead of attempting a subscribe.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;isIOS&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; !&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;isStandalone&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;()) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  showHomeScreenGuide&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;();   &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// don&amp;#39;t attempt subscribe&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Skip that branch and iPhone users get the most confusing failure of all: they tap allow and nothing happens. The standalone check reads both &lt;code&gt;matchMedia(&amp;#39;(display-mode: standalone)&amp;#39;)&lt;/code&gt; and &lt;code&gt;navigator.standalone&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;dead-subscriptions-get-parked-with-revoked_at-not-deleted&quot;&gt;Dead subscriptions get parked with revoked_at, not deleted&lt;/h2&gt;
&lt;p&gt;A subscription whose send returns 404 or 410 gets a &lt;code&gt;revoked_at&lt;/code&gt; timestamp instead of a DELETE, because I want to measure deliverability. Hard-deleting would erase any way to count how many issued subscriptions are still alive.&lt;/p&gt;
&lt;p&gt;Send results split three ways by HTTP status:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;404 / 410 Gone&lt;/strong&gt; — revoked. Stamp &lt;code&gt;revoked_at&lt;/code&gt; and drop it from targets (don’t retry).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;429 / 5xx&lt;/strong&gt; — transient. Mark retryable and hand it back to the upstream dispatcher.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;any other 2xx&lt;/strong&gt; — success.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; classifyPushStatus&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;status&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (status &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 404&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; ||&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; status &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 410&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { revoked: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, retryable: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (status &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 429&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; ||&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; status &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 500&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { revoked: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, retryable: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { revoked: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, retryable: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The live-subscription query is &lt;code&gt;WHERE user_id = ? AND revoked_at IS NULL&lt;/code&gt;, with a partial index on &lt;code&gt;revoked_at&lt;/code&gt; so only active rows are read. Send to all of a user’s devices; if even one succeeds, the push counts as delivered, and I only retry when every device failed &lt;em&gt;and&lt;/em&gt; the failures were retryable. If only revocations remain, there is no retry — the recipient is gone, so waiting won’t help.&lt;/p&gt;
&lt;h2 id=&quot;no-login-but-csrf-is-still-guarded-via-a-device-token-hmac&quot;&gt;No login, but CSRF is still guarded via a device-token HMAC&lt;/h2&gt;
&lt;p&gt;No login doesn’t excuse unguarded POSTs. Yasugoro derives the CSRF token as an HMAC keyed by the device token, so there is no server-side session to hold.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// derive the CSRF token from device_token via HMAC-SHA256 (no server state)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; key&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; crypto.subtle.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;importKey&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;raw&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, secretBytes,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  { name: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;HMAC&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, hash: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;SHA-256&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; }, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;sign&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; sig&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; crypto.subtle.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;sign&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;HMAC&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, key,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  new&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; TextEncoder&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;encode&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;`csrf:${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;deviceToken&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}`&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;));&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;On a POST, on top of a same-origin check (Origin/Referer), I compare the submitted &lt;code&gt;_csrf&lt;/code&gt; against the token derivable from the cookie’s device token, using a constant-time comparison. Even with no login session, a cookie-bound token confirms that this form came from this device.&lt;/p&gt;
&lt;h2 id=&quot;wrapping-up&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;Login-less Web Push mostly dissolves the moment you make the recipient an anonymous device token. From there it’s standard plumbing: hang the subscription off a user, send from Workers with VAPID, park the dead ones. What actually bit on real devices was the other two things — FCM’s header format and the iOS standalone constraint.&lt;/p&gt;
&lt;p&gt;What I covered here is only how to deliver, not what or when to deliver — the effective-price comparison and the buy-timing decision live in another layer of Yasugoro. The three-tier effective-price calculation is in &lt;a href=&quot;https://aulvem.com/blog/2026-06-15-point-inclusive-effective-price/&quot;&gt;the effective-price notes&lt;/a&gt;, and how I matched the same product across malls is in &lt;a href=&quot;https://aulvem.com/blog/2026-06-27-rakuten-jan-cross-matching/&quot;&gt;the JAN cross-matching post&lt;/a&gt;. The schedule that drives this sending — one cron collapsed into a per-minute tick — is in &lt;a href=&quot;https://aulvem.com/blog/2026-07-25-cloudflare-workers-cron-multiplex/&quot;&gt;the Workers cron multiplexing post&lt;/a&gt;. The running app is &lt;a href=&quot;https://aulvem.com/products/yasugoro/&quot;&gt;Yasugoro&lt;/a&gt; — try it with no login.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;with-no-login-and-no-email-what-holds-the-recipient-of-a-notification&quot;&gt;With no login and no email, what holds the recipient of a notification?&lt;/h3&gt;
&lt;p&gt;On the first visit I mint an anonymous device token (UUID v4) and store it in an httpOnly cookie. That token is the key for an upserted users row, and Web Push subscriptions (push_subscriptions) hang off that user. There is no email and no account — the only identifier is an anonymous token issued to the device. One user can carry several device subscriptions, so a watch set on a phone also fires on the desktop.&lt;/p&gt;
&lt;h3 id=&quot;if-i-clear-the-cookie-do-my-watches-disappear&quot;&gt;If I clear the cookie, do my watches disappear?&lt;/h3&gt;
&lt;p&gt;Yes. When the device token changes, the app treats it as a different device and the my-watches screen shows empty. That is the trade-off of having no login: clearing history or switching browsers creates a fresh anonymous user. The token is also mirrored into localStorage to survive some cookie loss, but that is a safety net, not a promise of permanence. For people who need durability there is a separate escape hatch (LINE linking).&lt;/p&gt;
&lt;h3 id=&quot;why-soft-revoke-dead-subscriptions-with-revoked_at-instead-of-delete&quot;&gt;Why soft-revoke dead subscriptions with revoked_at instead of DELETE?&lt;/h3&gt;
&lt;p&gt;When a send returns 404/410 Gone, I keep the row and stamp revoked_at rather than deleting it, because I want deliverability as a KPI. Hard-deleting would make it impossible to count how many issued subscriptions later expired. The active-subscription query filters on revoked_at IS NULL, backed by a partial index so live rows stay cheap to read.&lt;/p&gt;
&lt;h3 id=&quot;why-dont-notifications-arrive-on-ios&quot;&gt;Why don’t notifications arrive on iOS?&lt;/h3&gt;
&lt;p&gt;Safari on iOS/iPadOS can only subscribe to Web Push when the PWA is added to the home screen and launched standalone. In a normal browser tab the subscribe call fails, so for an iOS device that isn’t standalone I skip the subscribe API entirely and show the add-to-home-screen steps instead. Miss that branch and tapping allow silently does nothing.&lt;/p&gt;</content:encoded><category>build</category><category>typescript</category><category>cloudflare-workers</category><category>web-push</category><category>hono</category><category>pwa</category></item><item><title>How Rakuten&apos;s API hides the JAN, and the 3-tier cross-marketplace match</title><link>https://aulvem.com/blog/2026-06-27-rakuten-jan-cross-matching/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-06-27-rakuten-jan-cross-matching/</guid><description>Rakuten&apos;s item search API never returns the JAN barcode, while Yahoo! Shopping looks it up directly via jan_code. Building a cross-marketplace price watcher on that asymmetry, I split product identity into three certainty tiers — JAN match, name fuzzy match, no match — with the scoring weights, thresholds, and the notification rule that keeps mis-merged items from firing alerts.</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Trying to compare the same product across Rakuten’s and Yahoo!‘s APIs, the first wall wasn’t price — it was identity. Before you can compute which is cheaper, a machine has to decide that &lt;em&gt;this&lt;/em&gt; listing on one marketplace and &lt;em&gt;that&lt;/em&gt; listing on the other are the same product. Without that, there’s no comparison table to build.&lt;/p&gt;
&lt;p&gt;Where it got stuck was the JAN — the 13- or 8-digit barcode number on a product. Yahoo! Shopping looks one up directly with &lt;code&gt;jan_code&lt;/code&gt;. Rakuten’s item search API never returns it. So the obvious plan — pull both marketplaces by the same JAN and tie them together in one shot — breaks on one side.&lt;/p&gt;
&lt;p&gt;I built and shipped a price watcher on my own: &lt;a href=&quot;https://aulvem.com/products/yasugoro/&quot;&gt;yasugoro&lt;/a&gt;, which compares point-inclusive prices across marketplaces and pings you when a watched staple gets cheaper. To make the cross-marketplace part hold together, I split matching into three certainty tiers, assuming up front that JANs won’t always line up. Here’s that design.&lt;/p&gt;
&lt;h2 id=&quot;rakuten-and-yahoo-are-asymmetric-about-the-jan&quot;&gt;Rakuten and Yahoo! are asymmetric about the JAN&lt;/h2&gt;
&lt;p&gt;The two marketplaces simply differ in how easily you can get a JAN, and designing as if they were symmetric guarantees the Rakuten side falls apart.&lt;/p&gt;
&lt;p&gt;Yahoo! Shopping’s item search takes a dedicated &lt;code&gt;jan_code&lt;/code&gt; parameter, so you can query by JAN directly, and the response sometimes carries &lt;code&gt;janCode&lt;/code&gt; back. If you know the JAN, you can resolve the listing.&lt;/p&gt;
&lt;p&gt;Rakuten’s item search has no JAN parameter. You end up putting the JAN string into &lt;code&gt;keyword&lt;/code&gt; — an indirect match. Worse, the JAN isn’t a structured field; it tends to be buried inside the item description (&lt;code&gt;itemCaption&lt;/code&gt;). I saw exactly this on model-numbered goods like Anker. So on the Rakuten side you always need a follow-up step: did the keyword=JAN hit actually correspond to that JAN’s product?&lt;/p&gt;
&lt;p&gt;That asymmetry is the starting point. Yahoo! you can trust into a confirmed JAN match; Rakuten you can’t use without proof.&lt;/p&gt;
&lt;h2 id=&quot;collapse-it-into-three-certainty-tiers&quot;&gt;Collapse it into three certainty tiers&lt;/h2&gt;
&lt;p&gt;I split product identity into three tiers, ordered by how certain the match is. Instead of forcing every item through a JAN match, only the ones I can tie down with confidence sit at the top.&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Tier&lt;/th&gt;&lt;th&gt;Method&lt;/th&gt;&lt;th&gt;Used for comparison&lt;/th&gt;&lt;th&gt;Sends alerts&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;① JAN match&lt;/td&gt;&lt;td&gt;Yahoo! direct lookup + Rakuten keyword=JAN scored for confidence&lt;/td&gt;&lt;td&gt;Yes (confirmed only)&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;② Name fuzzy match&lt;/td&gt;&lt;td&gt;Scored on model no. / size / brand → candidates → user confirms&lt;/td&gt;&lt;td&gt;After user confirms&lt;/td&gt;&lt;td&gt;Confirmed only&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;③ No match&lt;/td&gt;&lt;td&gt;Treated as single-store (e.g. pasted URL)&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Own price drops only&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The lower the tier, the weaker the evidence, so the right to enter comparison and to fire alerts narrows with it. Only tier ① lands in the table as “the same product to everyone”; ② and ③ are demoted in proportion to how sure the match is.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;mermaid&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;flowchart TD&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  In[Input: JAN / name / URL]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Kind{Detect kind}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Jan[① JAN match]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Score{Confidence score}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Fuzzy[② Name fuzzy match]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Cand{Candidates?}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Single[③ Single-store]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Cross[Enters comparison, can notify]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Pending[Candidates, awaiting user confirm]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Watch[Track own price drops only]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  In --&amp;gt; Kind&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Kind --&amp;gt;|JAN| Jan&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Kind --&amp;gt;|name| Fuzzy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Kind --&amp;gt;|URL| Single&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Jan --&amp;gt; Score&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Score --&amp;gt;|high ≥0.8| Cross&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Score --&amp;gt;|mid ≥0.5| Pending&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Score --&amp;gt;|low &amp;lt;0.5| Single&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Fuzzy --&amp;gt; Cand&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Cand --&amp;gt;|yes| Pending&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Cand --&amp;gt;|no| Single&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Pending --&amp;gt;|confirm| Cross&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Single --&amp;gt; Watch&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A JAN input enters at ①, a name at ②, a URL at ③ — and a weak ① hit falls through to ② or ③. It’s a two-stage funnel, not a single gate.&lt;/p&gt;
&lt;h2 id=&quot;-jan-match-prove-rakuten-hits-by-scoring-jan-ness&quot;&gt;① JAN match: prove Rakuten hits by scoring “JAN-ness”&lt;/h2&gt;
&lt;p&gt;Even inside the JAN tier, Rakuten needs proof that a keyword=JAN hit is really the same product. I made that an additive confidence score.&lt;/p&gt;
&lt;p&gt;Yahoo! comes in via &lt;code&gt;jan_code&lt;/code&gt; lookup, so it goes straight to confirmed (alerts allowed). Rakuten is the awkward one — each hit accumulates a score:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JAN string appears in the item name or caption … &lt;strong&gt;+0.5&lt;/strong&gt; (the most direct evidence)&lt;/li&gt;
&lt;li&gt;price falls inside the product-search API’s price range … &lt;strong&gt;+0.3&lt;/strong&gt; / outside it … &lt;strong&gt;−0.4&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;a model number or size can be read off the hit … &lt;strong&gt;+0.2&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thresholds split the score three ways. &lt;strong&gt;≥0.8 is confirmed (&lt;code&gt;jan&lt;/code&gt;, can notify), ≥0.5 is needs-review (demoted to &lt;code&gt;fuzzy&lt;/code&gt;, no notify), and anything under 0.5 is discarded&lt;/strong&gt; (kept out of comparison). Refusing to treat a weak hit as confirmed turned out to be the single most effective guard against wrong merges.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// Rakuten single-hit JAN confidence (excerpt)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; s &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (hit.itemCaption.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;includes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(jan) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; hit.itemName.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;includes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(jan)) s &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0.5&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (range) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; lo&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; range.minPrice &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0.7&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;   &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// allow 30% below (old models, parallel imports)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; hi&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; range.maxPrice &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 1.5&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;   &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// allow 50% above (shipping-included, bundles)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (hit.itemPrice &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; lo &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; hit.itemPrice &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; hi) s &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0.3&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  else&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; s &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;-=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0.4&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;                      &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// far outside = likely a bad match&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;modelOrCapacityConsistent&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(hit)) s &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0.2&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The price range comes from Rakuten’s product search API (&lt;code&gt;productCode=JAN&lt;/code&gt;), which returns a min and max price. I allow 0.7× below for old stock and parallel imports, and 1.5× above for shipping-included or bundled listings. A price far outside that band gets penalized — it’s probably a different size, a different color, or another product entirely.&lt;/p&gt;
&lt;p&gt;The catch: in practice that product search API returned 404 a lot. The price range is missing for many hits, so I can’t lean on the range term. To cover that, I added a check anchored on the cross-marketplace counterpart — the same-JAN Yahoo! hit’s representative price. If a model-number token pulled from the Yahoo! side (alphanumeric, 5+ chars, so effectively unique) appears in the Rakuten hit’s name, &lt;em&gt;and&lt;/em&gt; the price is within &lt;strong&gt;±40%&lt;/strong&gt; of the counterpart’s price, the hit is promoted to confirmed. The model token alone could collide by chance; the price band screens that out. Both conditions have to hold.&lt;/p&gt;
&lt;p&gt;You can see the comparison screen running in &lt;a href=&quot;https://aulvem.com/yasugoro/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;yasugoro’s live app&lt;/a&gt; — free, no login. When the same product lines up across marketplaces, that’s a tier ① confirmation.&lt;/p&gt;
&lt;h2 id=&quot;-name-fuzzy-match-stop-at-candidates-dont-auto-confirm&quot;&gt;② Name fuzzy match: stop at candidates, don’t auto-confirm&lt;/h2&gt;
&lt;p&gt;When all you have is a product name, I score it on model number, size, and brand and stop at surfacing candidates. Nothing auto-confirms as the same product.&lt;/p&gt;
&lt;p&gt;The fuzzy score breaks down like this — the model number is the strongest signal by far:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;model number matches … &lt;strong&gt;+0.5&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;brand matches … &lt;strong&gt;+0.2&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;size matches … &lt;strong&gt;+0.2&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;overlap of remaining tokens (Jaccard) … &lt;strong&gt;+0.1 × coefficient&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A model number like &lt;code&gt;EH-NA0J&lt;/code&gt; is pulled from the name by regex, and a size like &lt;code&gt;54 sheets × 3&lt;/code&gt; is decomposed into “54 per pack × 3 packs = 162 total” before comparing. Only candidates scoring ≥0.6 are surfaced; if none clear it, the single best one drops to tier ③.&lt;/p&gt;
&lt;p&gt;The person confirms the candidate, not the algorithm. Only what a user marks as “same product” gets mastered. A wrong pairing can be rejected in one tap, which removes that pair from the candidate pool for good (it won’t resurface). For cross-marketplace comparison of household staples, putting a plain confirm path and a plain undo path in front of the user beats endlessly chasing higher auto-match accuracy.&lt;/p&gt;
&lt;h2 id=&quot;-no-match-fall-back-to-single-store-drop-alerts&quot;&gt;③ No match: fall back to single-store drop alerts&lt;/h2&gt;
&lt;p&gt;Anything that couldn’t be tied down at any tier becomes a single-store item. It stays out of the cheapest-across-stores ranking, and only its own page’s price drops are tracked.&lt;/p&gt;
&lt;p&gt;A single item added by pasting a URL starts here from the outset. It isn’t on the comparison footing, so it never claims “cheaper than another store” — but it can still say “cheaper than before.” I’d rather do the honest, smaller thing than force an incomparable item into the ranking and emit a wrong “cheapest.”&lt;/p&gt;
&lt;h2 id=&quot;what-stops-wrong-merges-is-only-confirmed-tiers-notify&quot;&gt;What stops wrong merges is “only confirmed tiers notify”&lt;/h2&gt;
&lt;p&gt;The real reason for three tiers was to never fire an alert on a bad identity. Notifications can only fire on JAN-confirmed (&lt;code&gt;jan&lt;/code&gt;) and user-confirmed (&lt;code&gt;user_confirmed&lt;/code&gt;) matches. The fuzzy needs-review state and single-store items are both kept out of the trigger condition.&lt;/p&gt;
&lt;p&gt;Locking the right to notify behind identity certainty — before any price math — matters because otherwise a price drop on a &lt;em&gt;different&lt;/em&gt; product gets reported as “your watched item got cheaper.” The trust in a cross-marketplace comparison rests, in the end, on that identity footing.&lt;/p&gt;
&lt;p&gt;How I compute the point-inclusive real price (splitting price into three certainty layers) is its own post: &lt;a href=&quot;https://aulvem.com/blog/2026-06-15-point-inclusive-effective-price/&quot;&gt;the effective-price design notes&lt;/a&gt;. That one is “how the price is computed,” this one is “how the same product is identified” — you need both for the comparison to hold. And once something gets cheaper, “how the alert is delivered” (login-less Web Push) is split into &lt;a href=&quot;https://aulvem.com/blog/2026-07-07-anonymous-web-push-no-login/&quot;&gt;delivering Web Push by anonymous device token&lt;/a&gt;. The running thing is &lt;a href=&quot;https://aulvem.com/products/yasugoro/&quot;&gt;yasugoro&lt;/a&gt; if you want to poke at it.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;can-you-not-get-the-jan-from-rakutens-api-at-all&quot;&gt;Can you not get the JAN from Rakuten’s API at all?&lt;/h3&gt;
&lt;p&gt;There’s no JAN field in the item search response and no JAN-specific search parameter. In practice you throw the JAN string into the keyword parameter, and the JAN itself usually sits inside the item caption rather than a structured field. Yahoo! Shopping, by contrast, has a jan_code parameter that looks it up directly and returns janCode in the response — and that asymmetry is where the whole cross-marketplace problem starts.&lt;/p&gt;
&lt;h3 id=&quot;why-not-just-match-everything-by-jan&quot;&gt;Why not just match everything by JAN?&lt;/h3&gt;
&lt;p&gt;Force a JAN match on items where the JAN isn’t available and you start merging different products as one — the failure I most wanted to avoid. Rakuten doesn’t return the JAN directly, so a keyword=JAN hit needs separate proof that it’s really that product. Only items I can tie down by JAN go into the confirmed tier; weaker evidence drops to candidate suggestions, and unmatchable items drop to single-store alerts.&lt;/p&gt;
&lt;h3 id=&quot;why-doesnt-the-fuzzy-match-confirm-automatically&quot;&gt;Why doesn’t the fuzzy match confirm automatically?&lt;/h3&gt;
&lt;p&gt;A matching model number, size, and brand still only give you a probability, and auto-confirming a guess means alerts fire on a wrong merge. The fuzzy tier surfaces candidates and only masters the ones a person confirms; a wrong pairing can be rejected in one tap, which permanently drops that pair from the candidate pool. Notifications fire only on JAN-confirmed and user-confirmed matches.&lt;/p&gt;
&lt;h3 id=&quot;what-happens-to-items-that-dont-match&quot;&gt;What happens to items that don’t match?&lt;/h3&gt;
&lt;p&gt;They become single-store items: dropped from cross-marketplace comparison, with only their own page’s price drops tracked. Anything you add by pasting a URL starts here too. They never enter the cheapest-across-stores ranking — they’re watched as a standalone price, and alerts only say “cheaper than before”, never “cheaper than the other store”.&lt;/p&gt;</content:encoded><category>build</category><category>typescript</category><category>rakuten</category><category>yahoo</category><category>ec</category><category>api</category></item><item><title>How I compute the real, point-inclusive price — design notes from a 3-layer model</title><link>https://aulvem.com/blog/2026-06-15-point-inclusive-effective-price/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-06-15-point-inclusive-effective-price/</guid><description>Building a price watcher on my own, the calculation I underestimated most was &apos;display price minus the points you earn&apos;. Splitting reward points into three certainty layers (confirmed, conditional, assumed), flooring each layer before summing, ranking on the confirmed layer only, and why shipping stays out — the design decisions I landed on, with code.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I built and shipped a price watcher on my own. It compares the &lt;em&gt;real price&lt;/em&gt; — sticker price minus the reward points you earn — across marketplaces, and pings you when a watched staple gets cheaper. Going in, I figured “display price minus points” was a one-liner. The moment I started writing it, that one line turned out to be the hardest part.&lt;/p&gt;
&lt;p&gt;Three reasons. Subtract every point and you inflate the number. Mix points you’ll definitely get with points you &lt;em&gt;might&lt;/em&gt; get, and the listing that looks cheapest turns out to be conditional. Reward rates use different units per marketplace, and get the rounding wrong and you land a few yen off the real grant.&lt;/p&gt;
&lt;p&gt;So here are the design decisions I landed on for that real price. In short: split points into three certainty layers, floor each layer before summing, and rank on the certain layer only. If you’re computing “which is cheaper once points are in” yourself, maybe these help.&lt;/p&gt;
&lt;h2 id=&quot;first-define-the-real-price&quot;&gt;First, define the real price&lt;/h2&gt;
&lt;p&gt;A real price is the sticker price minus the points that purchase earns you. A ¥1,000 item that returns 100 points is ¥900 real. It’s closer to what actually leaves your wallet than the sticker number is.&lt;/p&gt;
&lt;p&gt;Points aren’t quite cash, though — they expire and they’re restricted in where you can spend them. So I fixed an assumption up front: one point equals one yen on your next purchase. Without that assumption nailed down, a cross-store comparison doesn’t even hold together. Folding the assumption into the definition was where the design started.&lt;/p&gt;
&lt;h2 id=&quot;where-the-naive-version-broke&quot;&gt;Where the naive version broke&lt;/h2&gt;
&lt;p&gt;The first thing I wrote was this:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; effectivePrice&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; displayPrice &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; totalPoints; &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// this inflates&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Short, and it had three holes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;It subtracts points you might not get.&lt;/strong&gt; Fold in entry-required campaigns or your assumed loyalty multiplier, and the cheapest-looking store becomes “the price you reach only if every condition is met.”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reward rates use different units per marketplace.&lt;/strong&gt; Rakuten’s multiplier, Yahoo’s campaign add-ons, limited-time points. Multiply them in one pass and the magnitude drifts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rounding.&lt;/strong&gt; Points usually accrue floored. Sum several rewards and &lt;em&gt;then&lt;/em&gt; floor, and you land a few yen off the real grant.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A few yen is enough to swap first and second place — which changes the answer to “where should I buy.” Don’t inflate, and don’t drift. A real price has to do both, or it decays into a rough hint. So I rebuilt it.&lt;/p&gt;
&lt;h2 id=&quot;the-core-decision-split-points-by-certainty-into-three-layers&quot;&gt;The core decision: split points by certainty into three layers&lt;/h2&gt;
&lt;p&gt;The axis I settled on was splitting points by &lt;em&gt;how certain you are to receive them&lt;/em&gt; into three layers.&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Layer&lt;/th&gt;&lt;th&gt;Contents&lt;/th&gt;&lt;th&gt;Certainty&lt;/th&gt;&lt;th&gt;Used for ranking&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;① Confirmed&lt;/td&gt;&lt;td&gt;Actual points the API returns&lt;/td&gt;&lt;td&gt;Certain&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;② Conditional&lt;/td&gt;&lt;td&gt;Known campaigns (e.g. “5 and 0 days”)&lt;/td&gt;&lt;td&gt;Varies (entry, etc.)&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;③ Assumed&lt;/td&gt;&lt;td&gt;Your own loyalty multiplier / shop-hopping&lt;/td&gt;&lt;td&gt;Self-reported&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Rank on the confirmed layer alone, and show ② and ③ as “the most it could drop.” The sort order is the same for everyone — decided by certain information — while the upside flexes with each person’s conditions.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;mermaid&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;flowchart TD&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Price[Sticker price incl. tax]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  L1[① Confirmed: API points]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  L2[② Conditional: known campaigns]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  L3[③ Assumed: user settings]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Rank[Ranking rankKey = price − ①]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Eff[Displayed real price = price − ①②③]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Price --&amp;gt; L1 --&amp;gt; Rank&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Price --&amp;gt; L2 --&amp;gt; Eff&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Price --&amp;gt; L3 --&amp;gt; Eff&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  L1 --&amp;gt; Eff&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Each result carries the weakest layer it includes as a certainty tier. In types, that’s all it is:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; CertaintyTier&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;#39;confirmed&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;#39;conditional&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;#39;assumed&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A rule hangs off that: a price that includes layer ③ (assumed) never fires a notification. You can’t tell someone “buy now” on the strength of self-reported points. Notifications fire on confirmed only — or on conditional once the entry requirement is disclosed.&lt;/p&gt;
&lt;h2 id=&quot;floor-each-layer-before-summing&quot;&gt;Floor each layer before summing&lt;/h2&gt;
&lt;p&gt;Don’t floor once at the end across layers. Floor inside each layer, then add.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; pts &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Math.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;floor&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(base &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; rate); &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// floor per layer&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (cap &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; null&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; pts &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; cap) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  pts &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Math.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;min&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(pts, cap); &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// cap applies to floored point-yen&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Real grants are usually floored per campaign too, so summing and flooring afterward lands a yen or two off. The cap behaves the same way: take &lt;code&gt;Math.min&lt;/code&gt; against the &lt;em&gt;floored&lt;/em&gt; point-yen. Cap first, floor second, and you’re off by one again. Unglamorous ordering, but this is what the displayed number’s credibility rested on.&lt;/p&gt;
&lt;p&gt;There’s a quirk in how rates are stored, too. A campaign’s “+4×” is held as the &lt;em&gt;added&lt;/em&gt; grant on top of the tax-inclusive price — an increment. The base 1× is increment zero. Multiply the price by the raw multiplier and you double-count the standard points everyone already gets. So I store only the increment as a rate.&lt;/p&gt;
&lt;h2 id=&quot;separate-the-ranking-key-from-the-displayed-price&quot;&gt;Separate the ranking key from the displayed price&lt;/h2&gt;
&lt;p&gt;The key that sorts and the real price I show subtract different layers.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; rankKey&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; base &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; confirmedPoints;                 &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// ① only&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; total&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; confirmedPoints &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; conditionalPoints &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; assumedPoints;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; effectivePrice&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Math.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;max&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, base &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; total);       &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// negative guard&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;rankKey&lt;/code&gt; subtracts the confirmed layer only, so the order is identical for everyone. &lt;code&gt;effectivePrice&lt;/code&gt; subtracts every layer and represents “the most this could drop” with your conditions folded in. On high-reward items the total points can exceed the price and go negative, so &lt;code&gt;Math.max(0, …)&lt;/code&gt; guards it.&lt;/p&gt;
&lt;p&gt;I pulled the order apart from the displayed amount on purpose: numbers that vary by reader (conditional, assumed) shouldn’t move the ranking. Let them in and you get the queasy behavior where whoever inflated their loyalty settings most reshuffles the top.&lt;/p&gt;
&lt;h2 id=&quot;leave-shipping-out-of-the-real-price-on-purpose&quot;&gt;Leave shipping out of the real price, on purpose&lt;/h2&gt;
&lt;p&gt;No marketplace search API returns the shipping amount, so I decided to keep it out of the real price. Add a guess and you import error to paper over data you don’t have.&lt;/p&gt;
&lt;p&gt;Instead, carry a flag — shipping-included, shipping-separate, or unknown — and compare only shipping-included listings on the same footing.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// only shipping-included listings enter the main ranking&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; isComparableForRank&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;listing&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Listing&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; boolean&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; listing.postageFlag &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// 0=included, 1=separate, null=unknown&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mix separate-shipping and included-shipping listings into one “cheapest” and you’ll miss the ones that flip once shipping lands. Deciding &lt;em&gt;not&lt;/em&gt; to include data you can’t get — and surfacing that decision — is more honest than half-guessing it.&lt;/p&gt;
&lt;h2 id=&quot;looking-back&quot;&gt;Looking back&lt;/h2&gt;
&lt;p&gt;A real price reads as “sticker minus points” in one line, yet making it trustworthy stacked up quiet decisions: split by certainty, floor per layer, separate the ranking key, drop shipping. None of it is flashy. Do it sloppily, though, and “the cheapest one was actually conditional” costs you the reader’s trust. Most of the time I spent went into making this calculation’s footing solid.&lt;/p&gt;
&lt;p&gt;This three-layer calculation runs on watched staples every day, pinging only when the confirmed layer says something genuinely got cheaper. The watcher I built around it — now live — is &lt;a href=&quot;https://aulvem.com/products/yasugoro/&quot;&gt;yasugoro&lt;/a&gt;: free, no login required.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;why-not-just-subtract-all-the-points-and-compare-that-number&quot;&gt;Why not just subtract all the points and compare that number?&lt;/h3&gt;
&lt;p&gt;Subtracting everything inflates the number. A price with entry-required campaigns and your own loyalty multiplier baked in is “the price you reach if every condition is met” — not a floor everyone can count on. Rank on the points the API actually confirms, and show conditional and assumed points as a separate range.&lt;/p&gt;
&lt;h3 id=&quot;how-do-you-handle-limited-time-points-and-entry-required-campaigns&quot;&gt;How do you handle limited-time points and entry-required campaigns?&lt;/h3&gt;
&lt;p&gt;They don’t go into the effective-price total. They live in a conditional layer, computed separately and flagged for “entry required” or “cap reached”. Only API-confirmed points are asserted as a firm amount. Conditional points are shown as “this is the most it could drop”, and they’re excluded from what triggers a notification.&lt;/p&gt;
&lt;h3 id=&quot;if-shipping-isnt-in-the-price-wont-the-cheapest-option-flip&quot;&gt;If shipping isn’t in the price, won’t the cheapest option flip?&lt;/h3&gt;
&lt;p&gt;It can. But no marketplace search API returns the shipping amount, so adding a guess just imports error. I kept shipping out of the effective price and instead carry a flag — shipping-included, shipping-separate, or unknown — comparing only shipping-included listings on the same footing. Separate-shipping listings drop out of the main ranking and are disclosed in a note.&lt;/p&gt;
&lt;h3 id=&quot;why-use-different-layers-for-ranking-versus-the-displayed-price&quot;&gt;Why use different layers for ranking versus the displayed price?&lt;/h3&gt;
&lt;p&gt;The sort order should look the same to everyone. The ranking key uses only the confirmed layer, while the displayed effective price subtracts confirmed plus conditional plus assumed. That way “cheapest first” is decided by certain information alone, and the per-person upside shows up as a range on the displayed price.&lt;/p&gt;</content:encoded><category>build</category><category>typescript</category><category>pricing</category><category>ec</category><category>rakuten</category></item><item><title>Generating llms.txt and llms-full.txt in Astro for a Bilingual Site</title><link>https://aulvem.com/blog/2026-06-14-aulvem-llms-txt-multilingual/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-06-14-aulvem-llms-txt-multilingual/</guid><description>How I generate llms.txt and llms-full.txt as Astro API routes, driving them from Content Collections and splitting English and Japanese with two axes — filterLang (which posts to include) and docLang (the document&apos;s own language) — plus how it sits next to robots.txt.</description><pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;llms.txt is a proposed entry point for letting AI search and LLMs read a site. It sits in the same spot as robots.txt and sitemap.xml — a plain-text file at the site root. The spec isn’t settled, and no major LLM vendor officially promises to consume it. I still generate one, because the cost of doing so is small.&lt;/p&gt;
&lt;p&gt;This post is the implementation record for generating llms.txt and llms-full.txt in Astro, split into English and Japanese. I’m not going to argue whether it works — I have no measurable traffic to point at and nothing to assert. This is only about what gets generated and how. It continues the same thread as &lt;a href=&quot;https://aulvem.com/blog/2026-05-23-aulvem-zod-schema-enforcement/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;enforcing rules with a Zod schema&lt;/a&gt; and &lt;a href=&quot;https://aulvem.com/blog/2026-05-30-aulvem-i18n-hreflang-reciprocal/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;reciprocal hreflang&lt;/a&gt;: treat frontmatter and Content Collections as the single source of truth.&lt;/p&gt;
&lt;h2 id=&quot;what-llmstxt-actually-is&quot;&gt;What llms.txt actually is&lt;/h2&gt;
&lt;p&gt;llms.txt is a Markdown index for LLMs, placed at the site root. Where &lt;code&gt;sitemap.xml&lt;/code&gt; is a machine-readable list of URLs, llms.txt describes — in natural language, with one-line notes — what the site is and where to start reading.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://llmstxt.org/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;llmstxt.org&lt;/a&gt; spec sets a loose shape: an H1 site name and a blockquote summary at the top, then H2 sections of annotated links below. Each link follows &lt;code&gt;- [Title](URL): one-line note&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The spec also names a second convention, &lt;code&gt;/llms-full.txt&lt;/code&gt;. That one isn’t an index but an expansion of each page’s body, so an LLM can grasp the content from a single file without following links. Aulvem ships both.&lt;/p&gt;






























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;llms.txt&lt;/th&gt;&lt;th&gt;llms-full.txt&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Role&lt;/td&gt;&lt;td&gt;Light index (links + notes)&lt;/td&gt;&lt;td&gt;Full-text-ish index (excerpts + headings + tags)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Posts&lt;/td&gt;&lt;td&gt;Capped at seven featured&lt;/td&gt;&lt;td&gt;Every post&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Language&lt;/td&gt;&lt;td&gt;Split per language (EN / JA)&lt;/td&gt;&lt;td&gt;One file, EN + JA mixed, each entry language-tagged&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Size&lt;/td&gt;&lt;td&gt;Small&lt;/td&gt;&lt;td&gt;Large&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;the-minimal-astro-version&quot;&gt;The minimal Astro version&lt;/h2&gt;
&lt;p&gt;Astro’s file-based API routes let you return text by dropping a &lt;code&gt;.txt.ts&lt;/code&gt; file under &lt;code&gt;src/pages/&lt;/code&gt;. Return a &lt;code&gt;Response&lt;/code&gt; from a &lt;code&gt;GET&lt;/code&gt; handler with a &lt;code&gt;text/plain&lt;/code&gt; content type.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// src/pages/llms.txt.ts&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { APIContext } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;astro&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { renderLlmsTxt } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;../lib/llmsTxt&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; async&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; GET&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;_context&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; APIContext&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; body&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; renderLlmsTxt&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({ docLang: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; });&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Response&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(body, {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    status: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;200&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    headers: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      &amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;text/plain; charset=utf-8&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      &amp;quot;Cache-Control&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;public, max-age=3600&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  });&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;.txt.ts&lt;/code&gt; extension is what matters: it builds to the URL &lt;code&gt;/llms.txt&lt;/code&gt;. I keep the generation logic in a separate file (&lt;code&gt;src/lib/llmsTxt.ts&lt;/code&gt;) and leave the route as a thin entry point, so a per-language endpoint can reuse the same logic.&lt;/p&gt;
&lt;p&gt;The stack is short.&lt;/p&gt;




















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Package&lt;/th&gt;&lt;th&gt;Use&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;https://cdn.simpleicons.org/astro/af5d38&quot; width=&quot;16&quot; height=&quot;16&quot; alt style=&quot;vertical-align:middle;margin-right:6px;display:inline-block&quot;/&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;astro&lt;/code&gt; (API routes + &lt;code&gt;astro:content&lt;/code&gt;)&lt;/td&gt;&lt;td&gt;Route definitions and Content Collections access&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;https://cdn.simpleicons.org/typescript/af5d38&quot; width=&quot;16&quot; height=&quot;16&quot; alt style=&quot;vertical-align:middle;margin-right:6px;display:inline-block&quot;/&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;typescript&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Typing the renderer&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;driving-it-from-content-collections&quot;&gt;Driving it from Content Collections&lt;/h2&gt;
&lt;p&gt;The post list inside llms.txt isn’t written by hand. It’s built on the fly from Content Collections — &lt;code&gt;getCollection&lt;/code&gt; for posts and products. A hand-kept list goes stale: you add a post, forget the index, and llms.txt drifts from the actual content.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// src/lib/llmsTxt.ts (excerpt)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; async&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; renderLlmsTxt&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;opts&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; LlmsTxtOptions&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Promise&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; services&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; getCollection&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;services&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; blog&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; getCollection&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;blog&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, ({ &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; }) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; !&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;data.draft);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;  // newest first; products order by status (active → preparing → archived)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  blog.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;sort&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; b.data.pubDate.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;getTime&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; a.data.pubDate.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;getTime&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;());&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;  // ...assemble sections and return join(&amp;quot;\n&amp;quot;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The detail to get right is the &lt;code&gt;({ data }) =&amp;gt; !data.draft&lt;/code&gt; filter that drops &lt;code&gt;draft: true&lt;/code&gt;. Skip it and a half-written draft lands in llms.txt, advertising a URL you haven’t published. I keep the same exclusion that sitemap and RSS use.&lt;/p&gt;
&lt;p&gt;For each post’s note, I reuse the frontmatter &lt;code&gt;summary&lt;/code&gt; (falling back to &lt;code&gt;description&lt;/code&gt;). Every post already carries a &lt;code&gt;summary&lt;/code&gt; written as the short answer I want quoted by AI, so the llms.txt note and the post’s own TLDR come from one place. Frontmatter stays the single source here too.&lt;/p&gt;
&lt;h2 id=&quot;splitting-by-language&quot;&gt;Splitting by language&lt;/h2&gt;
&lt;p&gt;This is the part that matters for a multilingual site. Aulvem drives the renderer on two axes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;filterLang&lt;/strong&gt;: which language’s posts and products to list (&lt;code&gt;ja&lt;/code&gt; lists only Japanese entries)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;docLang&lt;/strong&gt;: which language the document’s own text — headings, summary, usage terms — is written in&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Separating those two lets one renderer emit three endpoints.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// src/pages/llms.txt.ts        → English headings, posts from all languages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;renderLlmsTxt&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({ docLang: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; });&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// src/pages/ja/llms.txt.ts     → Japanese headings, Japanese posts only&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;renderLlmsTxt&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({ filterLang: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;ja&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, docLang: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;ja&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; });&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The English route &lt;code&gt;/llms.txt&lt;/code&gt; leaves &lt;code&gt;filterLang&lt;/code&gt; unset on purpose. I treat the English version as the whole-site entry point, so it can surface posts in either language. The Japanese version &lt;code&gt;/ja/llms.txt&lt;/code&gt; closes to the Japanese surface with &lt;code&gt;filterLang: &amp;quot;ja&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;mermaid&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;flowchart LR&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  CC[Content Collections&amp;lt;br/&amp;gt;blog + services]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  R[renderLlmsTxt&amp;lt;br/&amp;gt;filterLang / docLang]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  EN[&amp;quot;/llms.txt&amp;lt;br/&amp;gt;docLang=en&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  JA[&amp;quot;/ja/llms.txt&amp;lt;br/&amp;gt;filterLang=ja, docLang=ja&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  CC --&amp;gt;|getCollection| R&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  R --&amp;gt; EN&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  R --&amp;gt; JA&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;featured-posts-narrow-to-doclang&quot;&gt;Featured posts narrow to docLang&lt;/h3&gt;
&lt;p&gt;One design call sits inside this. The English &lt;code&gt;/llms.txt&lt;/code&gt; can surface posts from both languages, but the Featured posts section alone is narrowed to &lt;code&gt;docLang&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// featured posts only in the doc language&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; featuredSource&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; filteredBlog.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;filter&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  (&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; entryLangLocal&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(p.id) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; opts.docLang,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Listing both halves of a translation pair in the featured slots spends two slots on one piece of content and halves the unique signal in a limited list. So the featured slots align to the document language, and the cross-language full set lives in llms-full.txt. A bounded list (seven featured posts) narrows by language; a full dump with loose size limits carries both. That’s the split.&lt;/p&gt;
&lt;h2 id=&quot;llms-fulltxt--full-index-with-language-cross-references&quot;&gt;llms-full.txt — full index with language cross-references&lt;/h2&gt;
&lt;p&gt;llms-full.txt is a separate route (&lt;code&gt;src/pages/llms-full.txt.ts&lt;/code&gt;) that expands every post’s excerpt, headings and tags into one file. The MDX body runs through &lt;code&gt;stripMdx&lt;/code&gt; to drop the syntax, then &lt;code&gt;clip&lt;/code&gt; to 500 characters.&lt;/p&gt;
&lt;p&gt;Each entry gets a language tag (&lt;code&gt;(ja)&lt;/code&gt; / &lt;code&gt;(en)&lt;/code&gt;), and if a translation pair exists, a &lt;code&gt;Lang-Alt&lt;/code&gt; line cross-references the other language’s URL.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// add the paired language version as Lang-Alt&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; alt&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; altByBase.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(slug);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (alt) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; otherLang&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; lang &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;ja&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; ?&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;en&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; :&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;ja&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; otherPath&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; alt[otherLang];&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (otherPath) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    lines.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;`Lang-Alt (${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;otherLang&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}): ${&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;SITE&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;otherPath&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}`&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is the same idea as hreflang. I wrote up emitting reciprocal &lt;code&gt;alternate&lt;/code&gt; links in HTML only for posts that exist in both languages in &lt;a href=&quot;https://aulvem.com/blog/2026-05-30-aulvem-i18n-hreflang-reciprocal/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;the hreflang post&lt;/a&gt;; llms-full.txt makes the same statement to an LLM — “this post has a paired version over here.” The aim is to keep the English and Japanese halves of one post from being counted as two unrelated documents.&lt;/p&gt;
&lt;h2 id=&quot;how-it-sits-next-to-robotstxt&quot;&gt;How it sits next to robots.txt&lt;/h2&gt;
&lt;p&gt;llms.txt doesn’t replace robots.txt. robots.txt states whether a crawler may fetch; llms.txt states what the site contains and where the good parts are. The final permission to train or quote stays with robots.txt.&lt;/p&gt;
&lt;p&gt;Aulvem puts a usage-and-citation section inside llms.txt: quoting is welcome, link back to the source URL, training is permitted for now. The section ends by pointing back to robots.txt as the authoritative bot policy — the machine-readable authority lives there, and llms.txt is a note, not an override. I’d keep that framing.&lt;/p&gt;
&lt;p&gt;Leave it vague and you get a mismatch: llms.txt says “no training” while robots.txt allows everything. The two files’ stances have to be kept aligned by hand.&lt;/p&gt;
&lt;h2 id=&quot;pitfalls-and-operating-rules&quot;&gt;Pitfalls and operating rules&lt;/h2&gt;
&lt;p&gt;A few things I nearly tripped on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Apply the &lt;code&gt;draft&lt;/code&gt; exclusion across all three routes&lt;/strong&gt;: put the &lt;code&gt;getCollection&lt;/code&gt; filter in the shared renderer so llms.txt, ja/llms.txt and llms-full.txt all pass the same exclusion. Let one route through raw and drafts leak&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Don’t conflate &lt;code&gt;filterLang&lt;/code&gt; and &lt;code&gt;docLang&lt;/code&gt;&lt;/strong&gt;: “which posts to list” and “what language to write in” are different axes. The English version leaves &lt;code&gt;filterLang&lt;/code&gt; unset to surface Japanese posts too — don’t read that later as a bug and add a filter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Featured language narrowing&lt;/strong&gt;: only Featured narrows by docLang. Drop that and translation pairs fill the slots&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set &lt;code&gt;Cache-Control&lt;/code&gt;&lt;/strong&gt;: all three use &lt;code&gt;max-age=3600&lt;/code&gt;. Generation is cheap, but there’s no need to rebuild on every request&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keep usage terms and robots.txt in sync&lt;/strong&gt;: change the stance and edit both. Don’t let llms.txt stand alone&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;closing&quot;&gt;Closing&lt;/h2&gt;
&lt;p&gt;llms.txt, generated from Content Collections as an Astro API route, drops the manual upkeep every time you add a post. For multiple languages, splitting on filterLang (which posts) and docLang (the wording) lets one renderer emit the English, Japanese and full-text versions.&lt;/p&gt;
&lt;p&gt;Whether it does anything is a separate question I’m leaving alone. How llms.txt feeds AI-search traffic isn’t a settled convention or a measured one yet. Aulvem’s stance is to generate it because it’s cheap, and to keep the authority in robots.txt.&lt;/p&gt;
&lt;p&gt;Treating frontmatter as the single source of truth is the thread that runs from &lt;a href=&quot;https://aulvem.com/blog/2026-05-17-aulvem-blog-architecture/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;the Aulvem blog architecture post&lt;/a&gt; onward, if you want the wider context.&lt;/p&gt;
&lt;p&gt;Counting which AI clients actually came for it is a separate problem, because the User-Agent they present cannot be taken at face value. The split I use is in &lt;a href=&quot;https://aulvem.com/blog/2026-08-22-ai-crawler-ua-verification/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;AI crawler user agents are self-reported&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;whats-the-difference-between-llmstxt-and-llms-fulltxt&quot;&gt;What’s the difference between llms.txt and llms-full.txt?&lt;/h3&gt;
&lt;p&gt;llms.txt is a light index — annotated links that say what the site is and where to start. llms-full.txt carries each post’s excerpt, headings and tags as a closer-to-full-text dump. Aulvem treats the first as a curated list capped at seven featured posts, and the second as a full excerpt dump of every post.&lt;/p&gt;
&lt;h3 id=&quot;will-publishing-llmstxt-get-my-site-read-by-ai-and-bring-traffic&quot;&gt;Will publishing llms.txt get my site read by AI and bring traffic?&lt;/h3&gt;
&lt;p&gt;I can’t claim that. llms.txt is a proposed convention, and no major LLM vendor officially guarantees it consumes the file. robots.txt and sitemap.xml are still the authoritative bot signals. Aulvem keeps llms.txt because it’s cheap to generate, not because there’s measurable traffic to point to.&lt;/p&gt;
&lt;h3 id=&quot;should-a-multilingual-site-split-llmstxt-per-language&quot;&gt;Should a multilingual site split llms.txt per language?&lt;/h3&gt;
&lt;p&gt;Aulvem serves a Japanese version (/ja/llms.txt) separate from the English root (/llms.txt). I want the headings and usage terms in the reader’s language, and the featured posts narrowed to that language. The full-text llms-full.txt stays as a single bilingual file, kept as a separate track from the two light indexes.&lt;/p&gt;
&lt;h3 id=&quot;if-i-already-have-robotstxt-do-i-need-llmstxt-too&quot;&gt;If I already have robots.txt, do I need llms.txt too?&lt;/h3&gt;
&lt;p&gt;They do different jobs. robots.txt states what crawlers may fetch; llms.txt describes what the site contains and where to read. The authoritative permission for training and citation lives in robots.txt — llms.txt is a guide on top of it. Aulvem’s usage section even points back to robots.txt as the final word.&lt;/p&gt;</content:encoded><category>build</category><category>astro</category><category>llms-txt</category><category>geo</category><category>site-architecture</category></item><item><title>Emitting reciprocal hreflang only when both languages exist — Aulvem&apos;s i18n customisation</title><link>https://aulvem.com/blog/2026-05-30-aulvem-i18n-hreflang-reciprocal/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-05-30-aulvem-i18n-hreflang-reciprocal/</guid><description>Astro&apos;s i18n routing doesn&apos;t emit hreflang on its own, and a naive &apos;always emit all locales&apos; implementation points at 404s for one-sided posts. Aulvem uses Content Collections helpers to emit alternates only for languages that actually have a published entry, then handles the reciprocal and x-default rules on top.</description><pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Astro 5’s i18n gives you routing, not hreflang.&lt;/p&gt;
&lt;p&gt;A naive “emit one &lt;code&gt;&amp;lt;link rel=&amp;quot;alternate&amp;quot;&amp;gt;&lt;/code&gt; per supported locale” implementation breaks the moment a post only exists in one language: the alternate points at a 404, Google sees the reciprocal pointer is missing, and the hreflang is quietly ignored. Worst case, it weakens the site’s multilingual signal as a whole.&lt;/p&gt;
&lt;p&gt;Aulvem walks Content Collections to detect which language versions actually exist for a given slug, then emits &lt;code&gt;&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang&amp;gt;&lt;/code&gt; conditionally from &lt;code&gt;Seo.astro&lt;/code&gt;. This is the third follow-up to &lt;a href=&quot;https://aulvem.com/blog/2026-05-17-aulvem-blog-architecture/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;How this blog is built&lt;/a&gt;, picking up the FAQ note that hreflang and sitemap lastmod were both custom-built on top of Astro’s defaults.&lt;/p&gt;
&lt;h2 id=&quot;what-breaks-when-you-emit-alternates-for-every-locale&quot;&gt;What breaks when you emit alternates for every locale&lt;/h2&gt;
&lt;p&gt;The naive pattern: a 2-language site emits two &lt;code&gt;&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang&amp;gt;&lt;/code&gt; lines on every page, one for each locale. It looks correct at first.&lt;/p&gt;
&lt;p&gt;The break happens when a specific post only exists in one language:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A JA-only post emits a hreflang pointing at the EN URL → that URL returns 404&lt;/li&gt;
&lt;li&gt;Google notices the EN URL doesn’t reciprocate (no JA pointer because it doesn’t render)&lt;/li&gt;
&lt;li&gt;The hreflang is dropped, and the site’s overall multilingual signal weakens&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://developers.google.com/search/docs/specialty/international/localized-versions&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Google’s hreflang documentation&lt;/a&gt; makes both rules explicit: “reciprocal pointers required” and “alternates must point at valid URLs”. A naive implementation fails both and effectively becomes a no-op — or worse, an active liability.&lt;/p&gt;
&lt;h2 id=&quot;the-two-rules-from-google&quot;&gt;The two rules from Google&lt;/h2&gt;
&lt;p&gt;Two requirements have to hold for hreflang to count:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Reciprocal pointers&lt;/strong&gt;: if &lt;code&gt;A → B&lt;/code&gt; is emitted, &lt;code&gt;B → A&lt;/code&gt; must exist&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Valid URLs&lt;/strong&gt;: 404 or noindex targets disqualify the alternate&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The cleanest way to satisfy both is “only emit an alternate when both languages actually have a published entry”. That requires walking the content at build time to know which entries are bilingual.&lt;/p&gt;
&lt;h2 id=&quot;three-helpers-in-srclibpoststs&quot;&gt;Three helpers in &lt;code&gt;src/lib/posts.ts&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Aulvem keeps three helpers for the three page types (single post, product page, paginated category):&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { getCollection } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;astro:content&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { Lang } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;../i18n&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; LANGS&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[] &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;ja&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;];&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// Per-post: which languages have the entry&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; async&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; blogAvailableLangs&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;slugWithoutLang&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Promise&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;Lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[]&amp;gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; all&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; getCollection&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;blog&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, ({ &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; }) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; !&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;data.draft);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; LANGS&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;filter&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    all.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;some&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;e&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; e.id &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; `${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;lang&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}/${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;slugWithoutLang&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}`&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  );&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// Per-product: same, against the services collection&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; async&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; serviceAvailableLangs&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;slugWithoutLang&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Promise&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;Lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[]&amp;gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; all&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; getCollection&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;services&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; LANGS&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;filter&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    all.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;some&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;e&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; e.id &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; `${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;lang&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}/${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;slugWithoutLang&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}`&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  );&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// Per-paginated-page: does page N exist in each language?&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; async&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; categoryPageAvailableLangs&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;  category&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;  pageNum&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;  pageSize&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Promise&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;Lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[]&amp;gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; results&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[] &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [];&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; lang&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; of&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; LANGS&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; posts&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; getPublishedBlog&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(lang);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; inCat&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; posts.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;filter&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; p.data.category &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; category);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; lastPage&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Math.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;max&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, Math.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;ceil&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(inCat.&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; pageSize));&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (pageNum &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; lastPage) results.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(lang);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; results;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;draft: true&lt;/code&gt; filter inside &lt;code&gt;getCollection&lt;/code&gt; matters — treating a draft-only language as “available” would emit a hreflang pointing at a URL that doesn’t render on the published build.&lt;/p&gt;
&lt;p&gt;Unlike the &lt;a href=&quot;https://aulvem.com/blog/2026-05-25-aulvem-sitemap-lastmod/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;sitemap lastmod implementation&lt;/a&gt; inside &lt;code&gt;astro.config.mjs&lt;/code&gt;, these helpers run from layouts during page rendering. The Content Collections API is already initialised by then, so &lt;code&gt;getCollection&lt;/code&gt; is the right tool here.&lt;/p&gt;
&lt;h2 id=&quot;conditional-emission-in-seoastro&quot;&gt;Conditional emission in &lt;code&gt;Seo.astro&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;Seo.astro&lt;/code&gt; accepts an &lt;code&gt;availableLangs&lt;/code&gt; prop (defaulting to both) and uses &lt;code&gt;includes(&amp;quot;en&amp;quot;)&lt;/code&gt; / &lt;code&gt;includes(&amp;quot;ja&amp;quot;)&lt;/code&gt; to decide which &lt;code&gt;&amp;lt;link rel=&amp;quot;alternate&amp;quot;&amp;gt;&lt;/code&gt; to emit:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;astro&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;interface&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Props&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;  // ... other props&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;  availableLangs&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;?:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[];&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;availableLangs&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;ja&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;], &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;langProp&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Astro.props;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; lang&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Lang&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; langProp &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;??&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; getLangFromUrl&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(Astro.url);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; currentPath&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Astro.url.pathname;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; otherLangPath&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; altPathForOtherLang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(currentPath, lang);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; enPath&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; lang &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;en&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; ?&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; currentPath &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; otherLangPath;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; jaPath&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; lang &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;ja&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; ?&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; currentPath &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; otherLangPath;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; enHref&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; URL&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(enPath, Astro.site).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;toString&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; jaHref&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; URL&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(jaPath, Astro.site).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;toString&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; hasEnVersion&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; availableLangs.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;includes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; hasJaVersion&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; availableLangs.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;includes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;ja&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// x-default points to EN when available; otherwise the only available lang.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; xDefaultHref&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; hasEnVersion &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; enHref &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; jaHref;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{hasEnVersion &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;link&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; rel&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;alternate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; hreflang&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; href&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{enHref} /&amp;gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{hasJaVersion &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;link&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; rel&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;alternate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; hreflang&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;ja&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; href&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{jaHref} /&amp;gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;link&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; rel&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;alternate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; hreflang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;x-default&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; href&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;={xDefaultHref} /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The default value &lt;code&gt;[&amp;quot;en&amp;quot;, &amp;quot;ja&amp;quot;]&lt;/code&gt; matches the top-level pages (&lt;code&gt;/&lt;/code&gt;, &lt;code&gt;/about/&lt;/code&gt;, etc.) which are always bilingual. The contract is: &lt;strong&gt;per-entry layouts must override &lt;code&gt;availableLangs&lt;/code&gt;&lt;/strong&gt;. Forgetting the override on a per-entry layout means broadcasting a 404 URL through hreflang, which is the exact failure mode the helpers are designed to prevent.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;x-default&lt;/code&gt; always falls back to EN when both languages exist, since EN is the site’s default locale. Single-language posts still get an &lt;code&gt;x-default&lt;/code&gt; pointing at the only available language — Google’s guideline says to declare at least one supported language explicitly.&lt;/p&gt;
&lt;h2 id=&quot;wiring-layouts-to-the-helpers&quot;&gt;Wiring layouts to the helpers&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;BlogPostLayout.astro&lt;/code&gt; is the typical caller:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;astro&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { entrySlug, blogAvailableLangs } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;../lib/posts&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; slug&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; entrySlug&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(entry); &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;// &amp;quot;ja/2026-05-30-foo&amp;quot; → &amp;quot;2026-05-30-foo&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; availableLangs&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; blogAvailableLangs&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(slug);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;---&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;Seo&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  title&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;={data.title}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  description&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;={data.description}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;={lang}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  availableLangs&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;={availableLangs}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  // ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;entrySlug&lt;/code&gt; strips the language prefix (&lt;code&gt;en/&lt;/code&gt; or &lt;code&gt;ja/&lt;/code&gt;) before handing the slug to the helper. Forgetting the strip turns the lookup into a full mismatch and silently returns an empty array — quiet failure that doesn’t fail the build.&lt;/p&gt;
&lt;p&gt;Paginated routes (&lt;code&gt;/blog/build/[...page].astro&lt;/code&gt;) call &lt;code&gt;categoryPageAvailableLangs(category, page.currentPage, 12)&lt;/code&gt; instead.&lt;/p&gt;
&lt;h2 id=&quot;the-flow&quot;&gt;The flow&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;mermaid&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;flowchart LR&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  MDX[blog MDX en+ja]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Helper[blogAvailableLangs&amp;lt;br/&amp;gt;serviceAvailableLangs&amp;lt;br/&amp;gt;categoryPageAvailableLangs]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Layout[BlogPostLayout&amp;lt;br/&amp;gt;ServiceLayout&amp;lt;br/&amp;gt;category route]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Seo[Seo.astro&amp;lt;br/&amp;gt;availableLangs prop]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  HTML[hreflang 0~2 + x-default]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  MDX --&amp;gt;|getCollection| Helper&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Helper --&amp;gt; Layout&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Layout --&amp;gt; Seo&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Seo --&amp;gt; HTML&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The helper walks Content Collections once and returns a &lt;code&gt;Lang[]&lt;/code&gt; to the layout. The layout passes that array to &lt;code&gt;Seo.astro&lt;/code&gt;, which emits zero, one, or two &lt;code&gt;&amp;lt;link rel=&amp;quot;alternate&amp;quot;&amp;gt;&lt;/code&gt; lines plus an &lt;code&gt;x-default&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;routing-stays-on-the-official-integration&quot;&gt;Routing stays on the official integration&lt;/h2&gt;
&lt;p&gt;Astro 5’s i18n routing — automatic &lt;code&gt;/ja/...&lt;/code&gt; prefixing, locale detection on request — is left untouched. It’s mature enough that there’s no incentive to rewrite it.&lt;/p&gt;
&lt;p&gt;Aulvem’s stance is to leave anything the official integration handles well alone and patch only the gaps. Hreflang is purely an SEO-layer concern, so the override lives entirely inside &lt;code&gt;Seo.astro&lt;/code&gt; and the helpers. When Astro eventually ships hreflang generation out of the box, peeling the override off is a one-file change.&lt;/p&gt;
&lt;h2 id=&quot;pitfalls&quot;&gt;Pitfalls&lt;/h2&gt;
&lt;p&gt;A short list of things that almost broke:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;availableLangs&lt;/code&gt; defaults to &lt;code&gt;[&amp;quot;en&amp;quot;, &amp;quot;ja&amp;quot;]&lt;/code&gt;&lt;/strong&gt;: appropriate for top-level pages, but per-entry layouts must override. Forgetting the override is the exact failure mode this whole setup prevents&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;entrySlug&lt;/code&gt; placement&lt;/strong&gt;: Content Collections IDs are &lt;code&gt;ja/2026-05-30-foo&lt;/code&gt;. Hand the prefixed ID to the helper and the lookup quietly returns &lt;code&gt;[]&lt;/code&gt;, which then emits no hreflang at all — silent regression&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;draft: true&lt;/code&gt; filtering&lt;/strong&gt;: handled inside the helper’s &lt;code&gt;getCollection&lt;/code&gt; filter. Without it, a draft-only language can be marked “available” and the published build has nothing at that URL&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Paginated edge case&lt;/strong&gt;: &lt;code&gt;/blog/build/3/&lt;/code&gt; can exist in EN but not JA if the categories diverge in length. &lt;code&gt;categoryPageAvailableLangs&lt;/code&gt; handles this — without it, page 3 of a category would emit JA alternates pointing at 404&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;x-default&lt;/code&gt; for single-language posts&lt;/strong&gt;: still emitted, pointing at the one available language. Google recommends declaring at least one supported locale explicitly&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;wrap-up&quot;&gt;Wrap-up&lt;/h2&gt;
&lt;p&gt;Hreflang only counts when reciprocal pointers and existence checks both hold. Walking Content Collections at build time gives both, and the override fits in roughly 30 lines split between three helpers and a Seo.astro change. Routing stays on the official integration.&lt;/p&gt;
&lt;p&gt;The same “frontmatter as the single source of truth” idea drives &lt;a href=&quot;https://aulvem.com/blog/2026-05-23-aulvem-zod-schema-enforcement/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;the Zod schema enforcement&lt;/a&gt; and &lt;a href=&quot;https://aulvem.com/blog/2026-05-25-aulvem-sitemap-lastmod/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;the sitemap lastmod override&lt;/a&gt; — three follow-ups to the &lt;a href=&quot;https://aulvem.com/blog/2026-05-17-aulvem-blog-architecture/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;stack overview&lt;/a&gt;. The reciprocal-pointer idea carries over to LLM indexes too, in &lt;a href=&quot;https://aulvem.com/blog/2026-06-14-aulvem-llms-txt-multilingual/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;generating a bilingual llms.txt&lt;/a&gt;. Pointing a canonical the other way — from someone else’s platform back at your domain — is a separate problem, measured in &lt;a href=&quot;https://aulvem.com/blog/2026-08-16-cross-post-duplicate-canonical/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;is cross-posting duplicate content&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;why-doesnt-astro-emit-hreflang-on-its-own&quot;&gt;Why doesn’t Astro emit hreflang on its own?&lt;/h3&gt;
&lt;p&gt;Astro 5’s i18n is scoped to routing — generating URLs and detecting the request locale. SEO meta-tag generation isn’t part of that responsibility. &lt;code&gt;@astrojs/sitemap&lt;/code&gt; will emit hreflang inside the sitemap.xml, but the &lt;code&gt;&amp;lt;link rel=&amp;quot;alternate&amp;quot;&amp;gt;&lt;/code&gt; in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; is your job to write. Aulvem keeps that responsibility inside Seo.astro.&lt;/p&gt;
&lt;h3 id=&quot;arent-the-hreflang-entries-from-astrojssitemap-enough&quot;&gt;Aren’t the hreflang entries from &lt;code&gt;@astrojs/sitemap&lt;/code&gt; enough?&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;xhtml:link&lt;/code&gt; entries inside sitemap.xml are emitted, but the &lt;code&gt;&amp;lt;link rel=&amp;quot;alternate&amp;quot; hreflang&amp;gt;&lt;/code&gt; in HTML &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; is a separate channel. Google reads both, and missing the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; channel weakens multilingual recognition at the snippet level. So both belong.&lt;/p&gt;
&lt;h3 id=&quot;what-should-x-default-point-to&quot;&gt;What should &lt;code&gt;x-default&lt;/code&gt; point to?&lt;/h3&gt;
&lt;p&gt;Google describes it as the fallback for users whose target language can’t be determined. Aulvem has EN as the default locale, so x-default points at the EN version when one exists, and falls back to the only available language otherwise. For posts that have both languages, defaulting to EN is fine.&lt;/p&gt;
&lt;h3 id=&quot;does-omitting-hreflang-for-one-sided-posts-hurt-seo&quot;&gt;Does omitting hreflang for one-sided posts hurt SEO?&lt;/h3&gt;
&lt;p&gt;Not emitting hreflang isn’t itself a penalty. What hurts is emitting an alternate that points at a non-existent URL — Google flags the reciprocal mismatch and weakens the whole site’s multilingual signal. Single-language posts are safer with a clean canonical and no alternate than with a broken one.&lt;/p&gt;</content:encoded><category>build</category><category>astro</category><category>i18n</category><category>seo</category><category>site-architecture</category></item><item><title>Reading sitemap lastmod from MDX frontmatter — customising Astro&apos;s sitemap integration</title><link>https://aulvem.com/blog/2026-05-25-aulvem-sitemap-lastmod/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-05-25-aulvem-sitemap-lastmod/</guid><description>@astrojs/sitemap doesn&apos;t read updatedDate from MDX frontmatter, so Aulvem builds a path-to-date map inside astro.config.mjs with fs.readdir + lightweight regex and feeds it into serialize. Paginated noindex pages are also filtered out.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;code&gt;@astrojs/sitemap&lt;/code&gt; won’t read &lt;code&gt;updatedDate&lt;/code&gt; out of MDX frontmatter.&lt;/p&gt;
&lt;p&gt;Leave it at the defaults and the sitemap’s &lt;code&gt;lastmod&lt;/code&gt; ends up being the build time, which broadcasts the noise signal that “every post was updated on every build” to search engines and AI search. The freshness hint stops being a hint and starts being misleading.&lt;/p&gt;
&lt;p&gt;Aulvem solves this inside &lt;code&gt;astro.config.mjs&lt;/code&gt; by walking the blog folder, building a path-to-date map with a lightweight regex, and feeding it into the &lt;code&gt;serialize&lt;/code&gt; hook of &lt;code&gt;@astrojs/sitemap&lt;/code&gt;. Paginated &lt;code&gt;noindex&lt;/code&gt; pages are dropped from the sitemap in the same pass via &lt;code&gt;filter&lt;/code&gt;. This is the second follow-up to &lt;a href=&quot;https://aulvem.com/blog/2026-05-17-aulvem-blog-architecture/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;How this blog is built&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;why-lastmod-matters&quot;&gt;Why &lt;code&gt;lastmod&lt;/code&gt; matters&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;lastmod&lt;/code&gt; is the last-modified date in the &lt;a href=&quot;https://www.sitemaps.org/protocol.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;sitemap protocol&lt;/a&gt;, and search engines use it as a re-crawl priority hint. AI search engines — ChatGPT Search, Perplexity, Claude Search — read it as a freshness anchor for citation eligibility.&lt;/p&gt;
&lt;p&gt;Two specific reasons to get it right:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Crawl priority&lt;/strong&gt;: recently updated URLs should get re-fetched sooner&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI citation&lt;/strong&gt;: “this article was updated N days ago” feeds into the LLM’s decision to cite the page as current information&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A bogus &lt;code&gt;lastmod&lt;/code&gt; works the other way. Google’s own &lt;a href=&quot;https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Sitemap docs&lt;/a&gt; note that unreliable &lt;code&gt;lastmod&lt;/code&gt; values erode site-wide trust. Painting build-time onto every URL teaches Google that this site’s &lt;code&gt;lastmod&lt;/code&gt; is noise, which is worse than not setting one at all. Pair the implementation with a strict &lt;code&gt;updatedDate&lt;/code&gt; policy (see &lt;a href=&quot;https://github.com/aulvem/aulvem-hp/blob/main/docs/content-rules.md&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;content rules A-2-1&lt;/a&gt;) and the signal stays meaningful.&lt;/p&gt;
&lt;h2 id=&quot;walking-mdx-at-config-evaluation-time&quot;&gt;Walking MDX at config evaluation time&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;lastmod&lt;/code&gt; map is built once, inside &lt;code&gt;astro.config.mjs&lt;/code&gt;, by reading every &lt;code&gt;.mdx&lt;/code&gt; / &lt;code&gt;.md&lt;/code&gt; under &lt;code&gt;src/content/blog/{en,ja}/&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { readdir, readFile } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;node:fs/promises&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { join } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;node:path&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; buildBlogLastmodMap&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; map&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Map&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; lang&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; of&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;ja&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; dir&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; join&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(process.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cwd&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(), &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;src&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;blog&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, lang);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    let&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; files &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [];&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    try&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      files &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; readdir&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(dir);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;catch&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      continue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; file&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; of&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; files) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;file.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;endsWith&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;.mdx&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; !&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;file.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;endsWith&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;.md&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; slug&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; file.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D;font-weight:bold&quot;&gt;\.&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;(mdx&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;md)&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; raw&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; readFile&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(dir, file), &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;utf8&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; fm&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;---&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;[\s\S]&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;*?&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;---&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;exec&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(raw);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;fm) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; front&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; fm[&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;];&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;draft:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;\s&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;test&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(front)) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; updated&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;updatedDate:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;\s&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;\S&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;exec&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(front);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; pub&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;pubDate:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;\s&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;\S&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;m&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;exec&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(front);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; dateStr&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (updated &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; updated[&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (pub &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; pub[&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;dateStr) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; d&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; Date&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(dateStr);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (Number.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;isNaN&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(d.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;getTime&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;())) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; path&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; lang &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;ja&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; ?&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; `/ja/blog/${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;slug&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}/`&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; :&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; `/blog/${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;slug&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}/`&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      map.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(path, d.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;toISOString&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;());&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; map;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; blogLastmod&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; await&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; buildBlogLastmodMap&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;();&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The reason &lt;code&gt;getCollection(&amp;quot;blog&amp;quot;)&lt;/code&gt; isn’t used here: &lt;code&gt;astro.config.mjs&lt;/code&gt; evaluates &lt;strong&gt;before the content loader is initialised&lt;/strong&gt;. The Content Collections API simply isn’t available when the config is being read.&lt;/p&gt;
&lt;p&gt;Frontmatter is read with a light regex. There’s no need to fully parse MDX — only &lt;code&gt;updatedDate&lt;/code&gt; and &lt;code&gt;pubDate&lt;/code&gt; matter for the lastmod map, and adding a YAML parser as a dependency for two fields isn’t worth it. Type-safety is sacrificed at this layer, but the Zod schema validates every post during the actual build, so the safety net moves up one step rather than disappearing.&lt;/p&gt;
&lt;p&gt;Skipping &lt;code&gt;draft: true&lt;/code&gt; posts here is important. If they leak through, draft URLs end up in the sitemap, which is the opposite of what &lt;code&gt;draft: true&lt;/code&gt; is supposed to express.&lt;/p&gt;
&lt;h2 id=&quot;feeding-the-map-into-serialize&quot;&gt;Feeding the map into &lt;code&gt;serialize&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;serialize&lt;/code&gt; option on &lt;code&gt;@astrojs/sitemap&lt;/code&gt; is a hook that rewrites each emitted URL entry. The map gets looked up by URL path and the result is dropped into &lt;code&gt;item.lastmod&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;sitemap&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  i18n: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    defaultLocale: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    locales: { en: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, ja: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;ja&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  serialize&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; url&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; URL&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(item.url);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;    // Strip the /ja/ prefix so /ja/blog/foo/ and /blog/foo/ both&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;    // hit the same changefreq / priority branch. lastmod lookup&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;    // still uses the original url.pathname so the map keys match.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; pathname&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; url.pathname.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color:#85E89D;font-weight:bold&quot;&gt;\/&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;ja&lt;/span&gt;&lt;span style=&quot;color:#85E89D;font-weight:bold&quot;&gt;\/&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color:#85E89D;font-weight:bold&quot;&gt;\/&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;ja&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (pathname &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      item.changefreq &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;daily&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      item.priority &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 1.0&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (pathname &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;/blog/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      item.changefreq &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;daily&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      item.priority &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0.9&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (pathname.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;startsWith&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/blog/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      item.changefreq &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;monthly&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      item.priority &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0.7&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; lastmod&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; blogLastmod.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(url.pathname);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (lastmod) item.lastmod &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; lastmod;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (pathname.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;startsWith&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/products/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      item.changefreq &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;monthly&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      item.priority &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0.8&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      item.changefreq &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;monthly&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      item.priority &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0.5&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; item;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;});&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;changefreq&lt;/code&gt; and &lt;code&gt;priority&lt;/code&gt; go in the same hook so each path category gets a consistent value. &lt;code&gt;priority&lt;/code&gt; is officially “ignored” by Google these days, but Bing and the AI crawlers still read it, so I keep it consistent rather than dropping it entirely.&lt;/p&gt;
&lt;p&gt;Stripping &lt;code&gt;/ja/&lt;/code&gt; for the branch decision but not for the lookup matters: the lookup needs to keep the language prefix because the map was built with &lt;code&gt;/ja/blog/foo/&lt;/code&gt; and &lt;code&gt;/blog/foo/&lt;/code&gt; as distinct keys.&lt;/p&gt;
&lt;h2 id=&quot;filtering-out-paginated-noindex-pages&quot;&gt;Filtering out paginated &lt;code&gt;noindex&lt;/code&gt; pages&lt;/h2&gt;
&lt;p&gt;Page 2 and beyond of the category listings (&lt;code&gt;/blog/build/2/&lt;/code&gt;, &lt;code&gt;/blog/reviews/3/&lt;/code&gt;, …) ship a &lt;code&gt;&amp;lt;meta name=&amp;quot;robots&amp;quot; content=&amp;quot;noindex, follow&amp;quot;&amp;gt;&lt;/code&gt;. Only page 1 should be indexed; later pages are crawlable but not index-eligible.&lt;/p&gt;
&lt;p&gt;Leave those URLs in the sitemap and the signal collides. “Listed in sitemap” reads as “please index this”, which contradicts &lt;code&gt;noindex&lt;/code&gt;. Google and Bing both treat that conflict as a quality smell, and there’s no upside to keeping them in.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;sitemap&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  filter&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: (&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;page&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (page.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;endsWith&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/404/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; page.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;endsWith&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/404&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;    // Paginated category pages (/blog/build/2/, /blog/reviews/3/ ...)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;    // are noindex, follow — drop them from the sitemap to avoid&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;    // contradicting the meta robots tag.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D;font-weight:bold&quot;&gt;\/&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;blog&lt;/span&gt;&lt;span style=&quot;color:#85E89D;font-weight:bold&quot;&gt;\/&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;(build&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color:#DBEDFF&quot;&gt;reviews)&lt;/span&gt;&lt;span style=&quot;color:#85E89D;font-weight:bold&quot;&gt;\/&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;\d&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#85E89D;font-weight:bold&quot;&gt;\/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;?$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;test&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; URL&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(page).pathname)) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; true&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;  // ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;});&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you set &lt;code&gt;noindex&lt;/code&gt; on paginated pages, dropping them from the sitemap is the matching half of the change. Doing one without the other leaves a half-fixed signal.&lt;/p&gt;
&lt;h2 id=&quot;how-the-pieces-connect&quot;&gt;How the pieces connect&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;mermaid&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;flowchart LR&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  MDX[src/content/blog/&amp;amp;lt;lang&amp;amp;gt;/&amp;amp;lt;slug&amp;amp;gt;.mdx]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Map[blogLastmod Map&amp;lt;br/&amp;gt;path → ISO date]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Pages[@astrojs/sitemap&amp;lt;br/&amp;gt;URL list]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Filter[filter:&amp;lt;br/&amp;gt;drop noindex]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Serialize[serialize:&amp;lt;br/&amp;gt;lastmod / changefreq / priority]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  SM[sitemap.xml]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  MDX --&amp;gt;|fs.readdir + regex| Map&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Map --&amp;gt;|lookup| Serialize&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Pages --&amp;gt; Filter&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Filter --&amp;gt; Serialize&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Serialize --&amp;gt; SM&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Two pipelines run inside &lt;code&gt;astro.config.mjs&lt;/code&gt;. One walks MDX before the build starts and produces the lastmod map. The other is the standard Astro routing, whose URL list is filtered down and then enriched per-entry in &lt;code&gt;serialize&lt;/code&gt;. Both converge into the final &lt;code&gt;sitemap.xml&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;things-i-almost-got-wrong&quot;&gt;Things I almost got wrong&lt;/h2&gt;
&lt;p&gt;A short list of pitfalls picked up while writing this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Top-level &lt;code&gt;await&lt;/code&gt;&lt;/strong&gt;: works because &lt;code&gt;astro.config.mjs&lt;/code&gt; is evaluated as ESM. Older repo layouts that still use &lt;code&gt;astro.config.cjs&lt;/code&gt; won’t accept top-level await, and would need either a &lt;code&gt;.mjs&lt;/code&gt; rename or an async wrapper inside &lt;code&gt;defineConfig&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;draft: true&lt;/code&gt; filtering&lt;/strong&gt;: skipping drafts in the map builder is necessary. Otherwise draft URLs land in the sitemap, which contradicts the whole point of marking them as drafts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regex tightness&lt;/strong&gt;: &lt;code&gt;/^updatedDate:\s*(\S+)/m&lt;/code&gt; reads unquoted YAML like &lt;code&gt;updatedDate: 2026-05-25&lt;/code&gt;. Quoted strings still work because &lt;code&gt;\S+&lt;/code&gt; captures &lt;code&gt;&amp;quot;2026-05-25&amp;quot;&lt;/code&gt; whole and &lt;code&gt;new Date()&lt;/code&gt; can parse it, but be aware if you ever use multi-line or list-style date values&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Per-language folder merge&lt;/strong&gt;: en and ja are walked separately and merged into a single map. Keys are kept distinct (&lt;code&gt;/blog/&amp;lt;slug&amp;gt;/&lt;/code&gt; vs &lt;code&gt;/ja/blog/&amp;lt;slug&amp;gt;/&lt;/code&gt;) so the lookup inside &lt;code&gt;serialize&lt;/code&gt; resolves correctly&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;updatedDate&lt;/code&gt; discipline&lt;/strong&gt;: implementation alone isn’t enough — bumping &lt;code&gt;updatedDate&lt;/code&gt; for trivial edits will still poison the signal. The matching policy lives in &lt;a href=&quot;https://github.com/aulvem/aulvem-hp/blob/main/docs/content-rules.md&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;content rules A-2-1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;when-this-should-move-back-into-the-official-integration&quot;&gt;When this should move back into the official integration&lt;/h2&gt;
&lt;p&gt;Honestly, this code is the shape of a &lt;code&gt;@astrojs/sitemap&lt;/code&gt; feature request. Coupling Content Collections to the sitemap helper is a need other Astro users will have, and there’s room to generalize it as an option.&lt;/p&gt;
&lt;p&gt;For now it lives inside Aulvem’s config at ~30 lines, which is a size I’m comfortable maintaining. If the official integration ever ships a Content Collections bridge, the bespoke code drops away. Keeping it isolated to &lt;code&gt;astro.config.mjs&lt;/code&gt; makes that removal cheap.&lt;/p&gt;
&lt;h2 id=&quot;wrap-up&quot;&gt;Wrap-up&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;lastmod&lt;/code&gt; is a freshness signal that matters in both classic SEO and AI search, so feeding it real values from &lt;code&gt;updatedDate&lt;/code&gt; is worth the 30 lines of bespoke code. Drop paginated &lt;code&gt;noindex&lt;/code&gt; pages from the sitemap at the same time — handling them separately leaves the signal half-fixed.&lt;/p&gt;
&lt;p&gt;The first follow-up in this series is on using the Zod schema to enforce operational rules at build time → &lt;a href=&quot;https://aulvem.com/blog/2026-05-23-aulvem-zod-schema-enforcement/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Pushing operational rules into Astro Content Collections with Zod&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;why-doesnt-astrojssitemap-read-updateddate-on-its-own&quot;&gt;Why doesn’t &lt;code&gt;@astrojs/sitemap&lt;/code&gt; read &lt;code&gt;updatedDate&lt;/code&gt; on its own?&lt;/h3&gt;
&lt;p&gt;The integration takes the list of built URLs and emits a sitemap.xml — it doesn’t reach into Content Collection frontmatter. Pulling MDX shape into a generic sitemap integration would mean coupling it to collection names, schemas, and loader types, which doesn’t sit well as a default responsibility.&lt;/p&gt;
&lt;h3 id=&quot;isnt-reading-frontmatter-through-fsreaddir--regex-unsafe-compared-to-the-content-collections-api&quot;&gt;Isn’t reading frontmatter through &lt;code&gt;fs.readdir&lt;/code&gt; + regex unsafe compared to the Content Collections API?&lt;/h3&gt;
&lt;p&gt;It’s not type-safe. But &lt;code&gt;astro.config.mjs&lt;/code&gt; evaluates before the content loader is initialised, so the API isn’t available at this point. The only fields the lastmod map needs are &lt;code&gt;updatedDate&lt;/code&gt; and &lt;code&gt;pubDate&lt;/code&gt;, so a light regex pass keeps the dependency surface flat. The real type check runs at build time through the Zod schema, so there are two nets, not one.&lt;/p&gt;
&lt;h3 id=&quot;is-it-really-wrong-to-ship-noindex-urls-in-the-sitemap&quot;&gt;Is it really wrong to ship &lt;code&gt;noindex&lt;/code&gt; URLs in the sitemap?&lt;/h3&gt;
&lt;p&gt;It’s a contradictory signal. A sitemap is a list of URLs you want indexed, so a &lt;code&gt;noindex&lt;/code&gt; entry collides with that intent. Google and Bing both treat the conflict as a quality smell that can drag the site-wide signal down.&lt;/p&gt;
&lt;h3 id=&quot;does-putting-a-real-date-in-lastmod-actually-move-ai-search-citations&quot;&gt;Does putting a real date in &lt;code&gt;lastmod&lt;/code&gt; actually move AI search citations?&lt;/h3&gt;
&lt;p&gt;I haven’t measured the lift directly. What the docs do say — Google, Bing, and the AI search vendors — is that &lt;code&gt;lastmod&lt;/code&gt; is a freshness hint and that bogus values erode trust. Treating it as insurance against losing existing trust feels more honest than claiming a citation uplift.&lt;/p&gt;</content:encoded><category>build</category><category>astro</category><category>sitemap</category><category>seo</category><category>site-architecture</category></item><item><title>Pushing operational rules into Astro Content Collections with Zod</title><link>https://aulvem.com/blog/2026-05-23-aulvem-zod-schema-enforcement/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-05-23-aulvem-zod-schema-enforcement/</guid><description>How Aulvem pushes blog operational rules into the Zod schema in src/content.config.ts. .refine() ties two fields together, howto/faq objects keep structured data typed, and a grep validator covers what Zod can&apos;t reach.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Written rules get forgotten.&lt;/p&gt;
&lt;p&gt;When you run a blog alone, the writer (you) breaks the writer’s (your) own rules sooner or later. Forgetting &lt;code&gt;affiliate: true&lt;/code&gt; on a &lt;code&gt;category: reviews&lt;/code&gt; post — and shipping it without the ad disclosure — is the kind of mistake a README check-list doesn’t catch.&lt;/p&gt;
&lt;p&gt;Aulvem leans on &lt;a href=&quot;https://docs.astro.build/en/guides/content-collections/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Astro Content Collections&lt;/a&gt; and &lt;a href=&quot;https://zod.dev/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Zod&lt;/a&gt; to make rules that a machine can verify into build failures. What follows is where I draw the line between “let the schema catch it”, “let a lint script catch it”, and “leave it to review”.&lt;/p&gt;
&lt;p&gt;This post is a follow-up to &lt;a href=&quot;https://aulvem.com/blog/2026-05-17-aulvem-blog-architecture/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;How this blog is built&lt;/a&gt;, which sets up the stack overview.&lt;/p&gt;
&lt;h2 id=&quot;why-a-readme-isnt-enough&quot;&gt;Why a README isn’t enough&lt;/h2&gt;
&lt;p&gt;A rule that lives only in a README has roughly zero enforcement.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The editor, reviewer, and writer are the same person, so there’s no second pair of eyes&lt;/li&gt;
&lt;li&gt;Weeks later, the README isn’t going to be re-read line by line&lt;/li&gt;
&lt;li&gt;Past me I trust; future me will plainly forget&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I started with a checklist under &lt;code&gt;docs/&lt;/code&gt; and assumed that would be enough. By the third post I’d already missed an item. With no reviewer in the loop, the only way to force a rule is to put the check outside the writing flow — in the build. That’s why Aulvem leans on schema enforcement.&lt;/p&gt;
&lt;h2 id=&quot;the-schema-in-one-file&quot;&gt;The schema, in one file&lt;/h2&gt;
&lt;p&gt;The Content Collections schema sits in &lt;code&gt;src/content.config.ts&lt;/code&gt; with two collections (&lt;code&gt;blog&lt;/code&gt; and &lt;code&gt;services&lt;/code&gt;) declared together. Keeping them in one file means shared shapes (&lt;code&gt;pubDate&lt;/code&gt;, &lt;code&gt;updatedDate&lt;/code&gt;, &lt;code&gt;heroImage&lt;/code&gt;) can be moved into local helpers without crossing file boundaries.&lt;/p&gt;
&lt;p&gt;The blog schema looks like this (abridged):&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { defineCollection, z } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;astro:content&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { glob } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;astro/loaders&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; blog&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; defineCollection&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  loader: &lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;glob&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({ pattern: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;**/[^_]*.{md,mdx}&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, base: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;./src/content/blog&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; }),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  schema: z&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    .&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      title: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      description: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      summary: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      pubDate: z.coerce.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;date&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      updatedDate: z.coerce.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;date&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      category: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;enum&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;([&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;build&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;reviews&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      tags: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;()).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;([]),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      draft: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;boolean&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      affiliate: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;boolean&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      heroImage: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      heroAlt: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      howto: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({ &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;/* ... */&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; }).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      faq: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        question: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        answer: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      })).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    })&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    .&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;refine&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (data.category &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;reviews&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; data.affiliate, {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      message: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;affiliate must be true iff category is &amp;#39;reviews&amp;#39;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      path: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;affiliate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;});&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;z.enum&lt;/code&gt; pins the category to two values, &lt;code&gt;z.coerce.date&lt;/code&gt; swallows whatever date-string format the YAML emits, and &lt;code&gt;.optional()&lt;/code&gt; + &lt;code&gt;.default()&lt;/code&gt; are explicit about which fields the writer can leave blank. Plain tools cover most of the surface. The interesting work is the &lt;code&gt;.refine()&lt;/code&gt; at the bottom, which is what the next section is about.&lt;/p&gt;
&lt;h2 id=&quot;coupling-two-fields-with-refine&quot;&gt;Coupling two fields with &lt;code&gt;.refine()&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;When two fields must move together, I tack a &lt;code&gt;.refine()&lt;/code&gt; onto the end of the schema. The case in Aulvem: a &lt;code&gt;category: reviews&lt;/code&gt; post is, by affiliate-network rules, advertising, and has to carry the disclosure banner. Aulvem injects the banner (and adds &lt;code&gt;rel=&amp;quot;sponsored noopener noreferrer&amp;quot;&lt;/code&gt;) only when &lt;code&gt;affiliate: true&lt;/code&gt;. So the failure mode is publishing a review post with &lt;code&gt;affiliate&lt;/code&gt; left at its default — disclosure missing, sponsored rel missing, ASP terms broken.&lt;/p&gt;
&lt;p&gt;Here’s the one-liner that catches it:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;refine&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (data.category &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;reviews&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; data.affiliate, {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  message: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;affiliate must be true iff category is &amp;#39;reviews&amp;#39;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  path: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;affiliate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;})&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Both sides compared with &lt;code&gt;===&lt;/code&gt; means changing only one is a build failure. Reading the predicate as “these two are always equal” is clearer than writing the XOR explicitly — it’s the same logic, easier to scan three months later.&lt;/p&gt;
&lt;p&gt;The build error reads like this:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ContentEntryInvalidError] Content config error in `blog → 2026-05-...`:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;affiliate must be true iff category is &amp;#39;reviews&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  at affiliate&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;message&lt;/code&gt; ends up in the output verbatim, so it’s worth writing the message as instructions for future-you.&lt;/p&gt;
&lt;h3 id=&quot;refine-vs-superrefine&quot;&gt;&lt;code&gt;.refine&lt;/code&gt; vs &lt;code&gt;.superRefine&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Once you need more than one independent constraint on the same object, or per-field error messages, &lt;code&gt;.superRefine()&lt;/code&gt; is the easier shape:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;superRefine&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;ctx&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (data.category &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;reviews&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; !&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;data.affiliate) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    ctx.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;addIssue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      code: z.ZodIssueCode.custom,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      message: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;reviews posts must set affiliate: true&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      path: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;affiliate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    });&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (data.draft &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; data.updatedDate) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    ctx.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;addIssue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      code: z.ZodIssueCode.custom,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      message: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;draft posts should not carry updatedDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      path: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;updatedDate&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    });&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;})&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For a single relationship between two fields, &lt;code&gt;.refine()&lt;/code&gt; is still the lighter option.&lt;/p&gt;
&lt;h2 id=&quot;typing-structured-data-inside-frontmatter&quot;&gt;Typing structured data inside frontmatter&lt;/h2&gt;
&lt;p&gt;I keep the data for the &lt;code&gt;HowTo&lt;/code&gt; and &lt;code&gt;FAQPage&lt;/code&gt; JSON-LD blocks &lt;strong&gt;in frontmatter&lt;/strong&gt; rather than parsing the body. The reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Parsing MDX headings to reconstruct structured data is brittle — a heading rename quietly breaks JSON-LD&lt;/li&gt;
&lt;li&gt;Frontmatter is what Zod validates, so the shape is enforced for free&lt;/li&gt;
&lt;li&gt;The JSON-LD generator can trust frontmatter without re-reading MDX&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The schema looks like:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;howto&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  name: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  description: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  totalTime: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  steps: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    name: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    text: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    image: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  })),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;faq&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  question: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  answer: z.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;})).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Anything malformed — a &lt;code&gt;howto&lt;/code&gt; with no steps, a &lt;code&gt;faq&lt;/code&gt; entry missing &lt;code&gt;answer&lt;/code&gt; — fails the build.&lt;/p&gt;
&lt;h2 id=&quot;where-zod-cant-reach-body-parity&quot;&gt;Where Zod can’t reach: body parity&lt;/h2&gt;
&lt;p&gt;Zod only inspects frontmatter. &lt;strong&gt;The body MDX is outside its scope.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Google’s quality guidelines flag “JSON-LD that has no body counterpart” as structured-data mismatch and pull the rich-result eligibility. A post with FAQ questions only in frontmatter — never echoed in the body — passes the schema and silently disqualifies itself.&lt;/p&gt;
&lt;p&gt;The fix is a separate layer. Aulvem runs a &lt;code&gt;validate-schema-match.mjs&lt;/code&gt; script that grep-checks the body for each &lt;code&gt;faq[].question&lt;/code&gt; and &lt;code&gt;howto.steps[].name&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (Array.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;isArray&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(data?.faq)) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;of&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; data.faq.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;entries&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;()) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;item?.question) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;continue&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;bodyNorm.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;includes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;normalise&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(item.question))) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      mismatches.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;        `faq[${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}].question not found in body: &amp;quot;${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;question&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}&amp;quot;`&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      );&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It normalises whitespace and case, then checks for substring presence. If something is missing, the script returns exit code 1 and the build is blocked at the pre-commit / CI layer.&lt;/p&gt;
&lt;p&gt;What it can’t catch: meaning. If the question matches but the answer underneath got swapped during editing, this layer says it’s fine.&lt;/p&gt;
&lt;h2 id=&quot;what-i-gave-up-automating&quot;&gt;What I gave up automating&lt;/h2&gt;
&lt;p&gt;Things neither the schema nor the grep validator can see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Whether the FAQ answer is factually correct&lt;/li&gt;
&lt;li&gt;How strong the disclosure language is (affiliate networks differ on what counts)&lt;/li&gt;
&lt;li&gt;Whether the closing paragraph still reads like an AI draft&lt;/li&gt;
&lt;li&gt;Whether the conclusion lines up with the article’s claim&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These need a human read-through. Trying to encode them as a schema rule would cost more than the manual review they replace. I keep them in the pre-publish checklist and only push the patterns mechanically catchable (&lt;code&gt;lint-banned-phrases.mjs&lt;/code&gt; for AI-tells) into automation.&lt;/p&gt;
&lt;p&gt;The point isn’t “automate everything I can”. It’s deciding where build failures buy you more than they cost. With one person on the keyboard, automation time is finite, and that ratio matters.&lt;/p&gt;
&lt;h2 id=&quot;the-schema--lint--review-split&quot;&gt;The schema / lint / review split&lt;/h2&gt;
&lt;p&gt;Splitting rules across three layers makes “which layer should hold this?” answerable:&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Layer&lt;/th&gt;&lt;th&gt;When it fires&lt;/th&gt;&lt;th&gt;What it catches&lt;/th&gt;&lt;th&gt;What it misses&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Zod schema&lt;/td&gt;&lt;td&gt;&lt;code&gt;astro build&lt;/code&gt;&lt;/td&gt;&lt;td&gt;types, enums, required/optional, field-to-field relationships&lt;/td&gt;&lt;td&gt;meaning, body-to-frontmatter parity&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lint script&lt;/td&gt;&lt;td&gt;pre-commit, CI&lt;/td&gt;&lt;td&gt;banned phrases, body/frontmatter substring parity&lt;/td&gt;&lt;td&gt;meaning&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Review&lt;/td&gt;&lt;td&gt;pre-publish checklist&lt;/td&gt;&lt;td&gt;meaning, disclosure strength, AI-tell judgment&lt;/td&gt;&lt;td&gt;not automatable&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Rule of thumb: if a higher layer can catch it, don’t push it down. Writing field-level constraints into a lint script means the build doesn’t fail and you have to remember to run the script. Pushing simple substring checks into Zod, conversely, makes the schema type definition harder to read.&lt;/p&gt;
&lt;h2 id=&quot;wrap-up&quot;&gt;Wrap-up&lt;/h2&gt;
&lt;p&gt;Structural constraints a machine can check go in the schema. Substring presence goes in lint. Meaning stays with review. Once that split is in place, every new operational rule can be sized against “which layer holds this?” instead of “where do I update the README?”.&lt;/p&gt;
&lt;p&gt;The full Aulvem stack overview is in &lt;a href=&quot;https://aulvem.com/blog/2026-05-17-aulvem-blog-architecture/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;How this blog is built&lt;/a&gt;, if you want the bigger picture.&lt;/p&gt;
&lt;p&gt;The same “frontmatter as the single source of truth” idea also drives the sitemap &lt;code&gt;lastmod&lt;/code&gt; setup — written up separately in &lt;a href=&quot;https://aulvem.com/blog/2026-05-25-aulvem-sitemap-lastmod/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Reading sitemap lastmod from MDX frontmatter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The instinct to make breakage visible applies outside the build too. A spreadsheet I was shipping had been quietly broken in Excel for weeks, and finding it took counting cells with openpyxl rather than a schema — &lt;a href=&quot;https://aulvem.com/blog/2026-08-08-sheets-xlsx-excel-silent-breakage/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;A Google Sheets .xlsx breaks silently in Excel&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;when-do-you-reach-for-superrefine-over-refine&quot;&gt;When do you reach for &lt;code&gt;.superRefine&lt;/code&gt; over &lt;code&gt;.refine&lt;/code&gt;?&lt;/h3&gt;
&lt;p&gt;When one object needs more than one independent constraint, or when each issue needs its own message and path. For a single relationship between two fields, &lt;code&gt;.refine()&lt;/code&gt; is enough. Aulvem only ties category and affiliate together, so it stays on &lt;code&gt;.refine()&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;why-keep-howto-and-faq-inside-the-frontmatter-instead-of-separate-files&quot;&gt;Why keep howto and faq inside the frontmatter instead of separate files?&lt;/h3&gt;
&lt;p&gt;Frontmatter gives me one source of truth that’s typed. Splitting them across files means the body, JSON-LD, and metadata each have their own home and have to be kept in sync by hand. Frontmatter as the source, JSON-LD generated from it, and the body echoing the same strings is the configuration with the fewest seams.&lt;/p&gt;
&lt;h3 id=&quot;what-happens-to-existing-posts-when-i-change-the-schema&quot;&gt;What happens to existing posts when I change the schema?&lt;/h3&gt;
&lt;p&gt;The build breaks. Adding a required field means every existing post needs the field before &lt;code&gt;astro build&lt;/code&gt; will pass again. That’s intentional — a schema change forces you to confirm the rollout reach across every post.&lt;/p&gt;
&lt;h3 id=&quot;why-isnt-the-body-to-json-ld-parity-check-wired-into-astro-build&quot;&gt;Why isn’t the body-to-JSON-LD parity check wired into &lt;code&gt;astro build&lt;/code&gt;?&lt;/h3&gt;
&lt;p&gt;To keep build time small. The parity check is a separate grep-based script run in pre-commit and CI. Folding it into the build itself would slow &lt;code&gt;astro dev&lt;/code&gt; startup, which would hurt the writing loop.&lt;/p&gt;</content:encoded><category>build</category><category>astro</category><category>content-collections</category><category>zod</category><category>site-architecture</category></item><item><title>How this blog is built — Aulvem on Astro 5 and Content Collections</title><link>https://aulvem.com/blog/2026-05-17-aulvem-blog-architecture/</link><guid isPermaLink="true">https://aulvem.com/blog/2026-05-17-aulvem-blog-architecture/</guid><description>Aulvem runs on Astro 5 + MDX + Content Collections, with operational rules enforced by a Zod schema and rehype plugins. A map of the stack and the pieces that hold it together.</description><pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This post is the starting point for documenting how Aulvem is built — not as a stack tour, but as a map of what we enforce through the schema and what we deliberately leave out. The stack itself is just Astro + MDX + Content Collections — nothing special there. What I want to write about is the design work on top of that: how operational rules a writer tends to forget get pushed into build-time checks.&lt;/p&gt;
&lt;p&gt;The overview hub goes here. The individual decisions (schema enforcement, structured-data parity, custom sitemap lastmod) are split into follow-up posts.&lt;/p&gt;
&lt;h2 id=&quot;stack-overview--astro-5--mdx--content-collections--r2&quot;&gt;Stack overview — Astro 5 + MDX + Content Collections + R2&lt;/h2&gt;
&lt;p&gt;Aulvem runs on Astro 5 (static output) + MDX + Content Collections + Tailwind 3 + Pagefind + Cloudflare R2. There’s no dynamic server — the site is just pre-built HTML served from Cloudflare Pages.&lt;/p&gt;
&lt;p&gt;I narrowed the selection criteria to three points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the build output is fully static&lt;/li&gt;
&lt;li&gt;post metadata can be locked down by a schema&lt;/li&gt;
&lt;li&gt;the core has a small dependency tree&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Astro 5 met all three. The other features — partial hydration, UI framework integration, and so on — aren’t being used right now.&lt;/p&gt;
&lt;p&gt;Whether Astro is the right pick depends on the requirements. If you want to layer on dynamic auth, comments, or subscriptions, something like Next.js is a better fit.&lt;/p&gt;
&lt;h2 id=&quot;definition-what-content-collections-is&quot;&gt;Definition: what Content Collections is&lt;/h2&gt;
&lt;aside class=&quot;term-callout&quot;&gt;&lt;p&gt;&lt;strong&gt;Content Collections&lt;/strong&gt;: An Astro built-in that treats Markdown / MDX as typed content. Define a &lt;a href=&quot;https://zod.dev/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Zod&lt;/a&gt; schema per collection and Astro validates every frontmatter at build time — mismatches break the build. You can also pull the whole collection as a typed array.&lt;/p&gt;&lt;/aside&gt;
&lt;p&gt;Aulvem defines two collections: &lt;code&gt;blog&lt;/code&gt; (posts) and &lt;code&gt;services&lt;/code&gt; (product pages). The schema lives in a single file and is validated at build time for both collections.&lt;/p&gt;
&lt;h2 id=&quot;full-stack--the-main-packages&quot;&gt;Full stack — the main packages&lt;/h2&gt;
&lt;p&gt;Runtime dependencies are kept to eight packages.&lt;/p&gt;


















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Package&lt;/th&gt;&lt;th&gt;Use&lt;/th&gt;&lt;th&gt;Notes&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;astro&lt;/code&gt; ^5&lt;/td&gt;&lt;td&gt;SSG core&lt;/td&gt;&lt;td&gt;static output only&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;@astrojs/mdx&lt;/code&gt; ^4&lt;/td&gt;&lt;td&gt;MDX support&lt;/td&gt;&lt;td&gt;all posts are &lt;code&gt;.mdx&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;@astrojs/sitemap&lt;/code&gt; ^3&lt;/td&gt;&lt;td&gt;sitemap generation&lt;/td&gt;&lt;td&gt;&lt;code&gt;lastmod&lt;/code&gt; injected manually&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;@astrojs/rss&lt;/code&gt; ^4&lt;/td&gt;&lt;td&gt;RSS generation&lt;/td&gt;&lt;td&gt;full &lt;code&gt;content:encoded&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;@astrojs/tailwind&lt;/code&gt; ^6&lt;/td&gt;&lt;td&gt;Tailwind integration&lt;/td&gt;&lt;td&gt;&lt;code&gt;applyBaseStyles: false&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;rehype-external-links&lt;/code&gt; ^3&lt;/td&gt;&lt;td&gt;rel attributes on external links&lt;/td&gt;&lt;td&gt;&lt;code&gt;noopener noreferrer&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;rehype-mermaid&lt;/code&gt; ^3&lt;/td&gt;&lt;td&gt;Build-time mermaid → SVG&lt;/td&gt;&lt;td&gt;&lt;code&gt;inline-svg&lt;/code&gt; strategy&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;tailwindcss&lt;/code&gt; ^3.4&lt;/td&gt;&lt;td&gt;styling&lt;/td&gt;&lt;td&gt;holding off on v4&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;On the dev side: &lt;code&gt;pagefind&lt;/code&gt; (full-text search), &lt;code&gt;sharp&lt;/code&gt; (local image processing), &lt;code&gt;playwright&lt;/code&gt; (build-time SVG rendering for mermaid), &lt;code&gt;typescript&lt;/code&gt;, and &lt;code&gt;@types/node&lt;/code&gt;. No React, no Vue, no Vite plugins.&lt;/p&gt;
&lt;p&gt;The opening rule is: don’t add a dependency on the hope it’ll be useful later. Unused dependencies show up in both build time and security-alert noise, so before adding one I check whether the use case is articulable in a sentence.&lt;/p&gt;
&lt;h2 id=&quot;three-pieces-i-wouldnt-drop&quot;&gt;Three pieces I wouldn’t drop&lt;/h2&gt;
&lt;h3 id=&quot;1-enforce-rules-through-the-schema&quot;&gt;1. Enforce rules through the schema&lt;/h3&gt;
&lt;p&gt;Operational rules don’t live in the README — they live in the frontmatter schema. I wanted the build to fail when a writer (including me) forgets, instead of leaning on memory.&lt;/p&gt;
&lt;p&gt;For example, &lt;code&gt;category: reviews&lt;/code&gt; posts have to be flagged as advertising under affiliate-network rules, so I require &lt;code&gt;affiliate: true&lt;/code&gt; on them. Instead of leaving this as a line in the README, Zod’s &lt;code&gt;.refine()&lt;/code&gt; forces &lt;code&gt;category === &amp;quot;reviews&amp;quot;&lt;/code&gt; and &lt;code&gt;affiliate === true&lt;/code&gt; to always be equivalent. Changing only one side breaks the build, so memory isn’t the load-bearing piece.&lt;/p&gt;
&lt;p&gt;The same idea applies to the &lt;code&gt;howto&lt;/code&gt; / &lt;code&gt;faq&lt;/code&gt; structured data, but that belongs in a follow-up post.&lt;/p&gt;
&lt;h3 id=&quot;2-keep-structured-data-and-body-text-in-sync&quot;&gt;2. Keep structured data and body text in sync&lt;/h3&gt;
&lt;p&gt;The JSON-LD (howto / faq) content is generated from the frontmatter, but the same content must also appear in the body. This avoids Google’s structured-data mismatch penalty — pumping out elaborate JSON-LD that has no corresponding body text violates Google’s quality guidelines, and getting caught costs you the structured-data display eligibility.&lt;/p&gt;
&lt;p&gt;Aulvem’s rule is to write the same content on both sides — frontmatter and body — so a one-sided update can’t slip through. That alone closes off the failure mode where you fill in the frontmatter FAQ and forget the body.&lt;/p&gt;
&lt;h3 id=&quot;3-read-sitemap-lastmod-from-frontmatter-yourself&quot;&gt;3. Read sitemap lastmod from frontmatter yourself&lt;/h3&gt;
&lt;p&gt;Astro’s official sitemap integration doesn’t read &lt;code&gt;updatedDate&lt;/code&gt; from MDX frontmatter. So Aulvem walks every MDX file with custom logic and pipes &lt;code&gt;updatedDate ?? pubDate&lt;/code&gt; into the sitemap as &lt;code&gt;lastmod&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Without that, the sitemap &lt;code&gt;lastmod&lt;/code&gt; defaults to the build time, which broadcasts the noise signal that “every post was updated every build” to search engines. &lt;code&gt;lastmod&lt;/code&gt; is also used as a freshness input by AI search, so it’s not a part to be sloppy on.&lt;/p&gt;
&lt;p&gt;At the same time, paginated pages that return &lt;code&gt;noindex, follow&lt;/code&gt; are dropped from the sitemap. Submitting a &lt;code&gt;noindex&lt;/code&gt; URL through the sitemap is a contradictory signal, so both have to be handled together.&lt;/p&gt;
&lt;p&gt;The implementation — walking MDX inside &lt;code&gt;astro.config.mjs&lt;/code&gt;, wiring &lt;code&gt;@astrojs/sitemap&lt;/code&gt; &lt;code&gt;serialize&lt;/code&gt; and &lt;code&gt;filter&lt;/code&gt; together, and the operational pitfalls — is in the follow-up post &lt;a href=&quot;https://aulvem.com/blog/2026-05-25-aulvem-sitemap-lastmod/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Reading sitemap lastmod from MDX frontmatter&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;how-the-three-pieces-connect&quot;&gt;How the three pieces connect&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;mermaid&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;flowchart LR&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  FM[frontmatter] --&amp;gt; Zod&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  FM --&amp;gt; Sitemap&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  FM --&amp;gt; Sync&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Body[MDX body] --&amp;gt; Sync&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Zod[&amp;quot;Zod schema check&amp;lt;br/&amp;gt;category ⇔ affiliate&amp;quot;] --&amp;gt; Build&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Sitemap[&amp;quot;sitemap lastmod injection&amp;lt;br/&amp;gt;reads updatedDate&amp;quot;] --&amp;gt; Build&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Sync[&amp;quot;frontmatter ↔ body&amp;lt;br/&amp;gt;parity&amp;quot;] --&amp;gt; Build&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Build[Astro build]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Build --&amp;gt; HTML[HTML + JSON-LD + SVG]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Build --&amp;gt; SM[sitemap.xml]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Two inputs — frontmatter and body — fan out through three build-time pieces and converge at Astro build. Frontmatter runs Zod schema validation and sitemap lastmod injection, while both frontmatter and body feed the parity check that makes sure the same content lives on both sides.&lt;/p&gt;
&lt;p&gt;All results are unified by Astro build into the HTML, JSON-LD, and sitemap.xml. If any single piece fails, the build fails — so polishing one side alone won’t get you to publish.&lt;/p&gt;
&lt;h2 id=&quot;operational-flow-lives-in-a-single-source-of-truth&quot;&gt;Operational flow lives in a single source of truth&lt;/h2&gt;
&lt;p&gt;Operational flows — adding a post, adding a product, retiring a post — are anchored in one doc as the single source of truth. From there, the scaffolding and integrity-check scripts are wired in, and the rule is to follow the same steps every time. I think this absorbs most of the “the approach drifts run to run” kind of variance. What’s left is the warmth of the prose, which automation shouldn’t try to normalize anyway.&lt;/p&gt;
&lt;p&gt;There’s also a rule: don’t bump &lt;code&gt;updatedDate&lt;/code&gt; just because you added a preface note — bump it only on substantive revision. Search engines and AI search read &lt;code&gt;dateModified&lt;/code&gt; as a freshness signal, so handling it loosely lowers the whole site’s authority. The criteria are fixed up front.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;why-astro-5&quot;&gt;Why Astro 5?&lt;/h3&gt;
&lt;p&gt;I narrowed it down to four constraints — Markdown-centric, fully static output, schema-typed frontmatter, and a small core dependency tree. Astro 5 was the best fit. Content Collections and MDX are built in, so there’s no need for extra plugins to get typed content.&lt;/p&gt;
&lt;h3 id=&quot;why-no-headless-cms-sanity-contentful-etc&quot;&gt;Why no headless CMS (Sanity, Contentful, etc.)?&lt;/h3&gt;
&lt;p&gt;Publishing once or twice a week with one editor, MDX + git is faster than a CMS admin UI. A CMS adds the cost of draft locations, schema migrations, and API auth from day one. I’d revisit this when readership crosses ~10k, or when more editors come in.&lt;/p&gt;
&lt;h3 id=&quot;how-is-full-text-search-implemented&quot;&gt;How is full-text search implemented?&lt;/h3&gt;
&lt;p&gt;Pagefind runs after &lt;code&gt;astro build&lt;/code&gt; and produces a static binary search index. The front end pulls it through a tens-of-KB WASM loader. No serverless function, no external API.&lt;/p&gt;
&lt;h3 id=&quot;does-i18n-use-astros-built-in-support-as-is&quot;&gt;Does i18n use Astro’s built-in support as-is?&lt;/h3&gt;
&lt;p&gt;Routing uses Astro 5’s i18n (defaultLocale: en / prefixDefaultLocale: false) untouched. hreflang and sitemap lastmod, on the other hand, are read out of the MDX frontmatter through a custom helper. The details belong in a follow-up post.&lt;/p&gt;
&lt;h2 id=&quot;wrap-up&quot;&gt;Wrap-up&lt;/h2&gt;
&lt;p&gt;That’s the overview. Building and running this, what mattered most wasn’t which stack to pick — it was deciding how tightly to lock the frontmatter down with the schema.&lt;/p&gt;</content:encoded><category>build</category><category>astro</category><category>content-collections</category><category>site-architecture</category></item><item><title>Figma basics, part 3 — color, font, and shadow styles, then components and variants</title><link>https://aulvem.com/blog/2022-04-05-figma-base-3/</link><guid isPermaLink="true">https://aulvem.com/blog/2022-04-05-figma-base-3/</guid><description>Part 3 of the Figma basics series. Walks through registering and applying color, font, and effect (shadow) styles, then combining components with variants — the next step up in making a design file easier to maintain. Illustrated with example GIFs.</description><pubDate>Tue, 05 Apr 2022 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026-05-16 update&lt;/strong&gt;: A few years on from the original. The skeleton still holds up, but the tool UI and version match when it was written and differ from the current Figma.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This post covers the Figma features that make a file easier to manage and easier to adjust.&lt;/p&gt;
&lt;p&gt;Building up to the design file itself is covered in the earlier posts, so use those as the starting point.&lt;/p&gt;
&lt;p&gt;The finished design from this post looks like this.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Preview of the finished design&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-05-figma-base-3/2022-04-05_Completion_drawing.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;h2 id=&quot;create-a-color-style&quot;&gt;Create a color style&lt;/h2&gt;
&lt;p&gt;The screen elements are already in place from the earlier parts, so the next step is to register the colors and make them reusable.&lt;/p&gt;
&lt;p&gt;Start with the header background color.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Creating a color style&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-05-figma-base-3/2022-04-05-Figma-base-3_Creating_colour_styles.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element whose color you want to register&lt;/li&gt;
&lt;li&gt;Find the Fill section in the right sidebar&lt;/li&gt;
&lt;li&gt;Click the four-dot icon to the right of Fill&lt;/li&gt;
&lt;li&gt;Click the + icon to the right of Color Styles&lt;/li&gt;
&lt;li&gt;Type the name you want to register in the modal input&lt;/li&gt;
&lt;li&gt;Click Create style&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;That’s the color registered.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;Registered colors pay off in places where the same color is reused across elements.&lt;/p&gt;
&lt;p&gt;The header background color is also used for the footer background, so apply the style we just registered to the footer.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Applying a color style&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-05-figma-base-3/2022-04-05-Figma-base-3_Colour_style_adaptation.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element you want to apply the registered color to&lt;/li&gt;
&lt;li&gt;Find the Fill section in the right sidebar&lt;/li&gt;
&lt;li&gt;Click the four-dot icon to the right of Fill&lt;/li&gt;
&lt;li&gt;Under Color Styles, click the color you want to apply&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;The registered footer color is now in place.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;Registering each color in Color Styles and applying it everywhere makes color changes much easier later on.&lt;/p&gt;
&lt;p&gt;The GIF below edits the main color while every other color and element is already mapped to Color Styles.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Editing a color style&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-05-figma-base-3/2022-04-05-Figma-base-3_Editing_colour_styles.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click an empty area with no element selected&lt;/li&gt;
&lt;li&gt;Find the Color Styles section in the right sidebar&lt;/li&gt;
&lt;li&gt;Hover over the color you want to edit in Color Styles&lt;/li&gt;
&lt;li&gt;The adjust icon appears on the right — click it&lt;/li&gt;
&lt;li&gt;The color code shows below — click it&lt;/li&gt;
&lt;li&gt;Pick the color you want in the color picker&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;As a design tightens up, the urge to fine-tune colors goes up too, so registering colors early tends to save time.&lt;/p&gt;
&lt;p&gt;Color Styles also surfaces which color is doing which job and how many times each one is used, which makes it less likely an odd color slips in.&lt;/p&gt;
&lt;h2 id=&quot;create-a-font-style&quot;&gt;Create a font style&lt;/h2&gt;
&lt;p&gt;The same kind of registration exists for font settings.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Creating a font style&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-05-figma-base-3/2022-04-05-Figma-base-3_Creating_font_styles.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element whose font you want to register&lt;/li&gt;
&lt;li&gt;Find the Text section in the right sidebar&lt;/li&gt;
&lt;li&gt;Click the four-dot icon to the right of Text&lt;/li&gt;
&lt;li&gt;Click the + icon to the right of Text Styles&lt;/li&gt;
&lt;li&gt;Type the name you want to register in the modal input&lt;/li&gt;
&lt;li&gt;Click Create style&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;The font style is now registered.&lt;/p&gt;
&lt;p&gt;Applying and editing a font style works the same way as Color Styles.&lt;/p&gt;
&lt;h2 id=&quot;set-up-the-shadow&quot;&gt;Set up the shadow&lt;/h2&gt;
&lt;p&gt;So far this has been about manageability. Next, add a shadow to an element.&lt;/p&gt;
&lt;p&gt;The card frame is a good test case.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Setting up the shadow&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-05-figma-base-3/2022-04-05-Figma-base-3_Shadow_settings.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element you want to add a shadow to&lt;/li&gt;
&lt;li&gt;Find the Effects section in the right sidebar&lt;/li&gt;
&lt;li&gt;Click the + icon to the right of Effects&lt;/li&gt;
&lt;li&gt;Click the sun icon to the right of Effects&lt;/li&gt;
&lt;li&gt;Adjust the values under Drop shadow until they look right&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Arrow keys (↑↓) nudge by 1 pixel&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;The card frame now has a shadow.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;Shadows can be saved as a style the same way.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Creating an effect style&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-05-figma-base-3/2022-04-05-Figma-base-3_Creating_effect_styles.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element whose shadow you want to register&lt;/li&gt;
&lt;li&gt;Find the Effects section in the right sidebar&lt;/li&gt;
&lt;li&gt;Click the four-dot icon to the right of Effects&lt;/li&gt;
&lt;li&gt;Click the + icon to the right of Effect Styles&lt;/li&gt;
&lt;li&gt;Type the name you want to register in the modal input&lt;/li&gt;
&lt;li&gt;Click Create style&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;The shadow style is now registered.&lt;/p&gt;
&lt;p&gt;Applying and editing a shadow style works the same way as Color Styles.&lt;/p&gt;
&lt;h2 id=&quot;combine-components-with-auto-layout&quot;&gt;Combine components with auto layout&lt;/h2&gt;
&lt;p&gt;A button on a real web page changes color or content the moment it’s clicked.&lt;/p&gt;
&lt;p&gt;To express those state changes inside Figma, the Variants feature is the right tool.&lt;/p&gt;
&lt;p&gt;As things stand, Variants is awkward to use, so the prep step is to keep auto layout on the button and turn it into a separate component.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This section originally included a roughly 32 MiB GIF showing the component-plus-auto-layout operation. It’s been dropped because of the hosting (Cloudflare Pages) file size limit. For the actual behavior, see the &lt;a href=&quot;https://help.figma.com/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Figma official documentation&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element you want to turn into a component&lt;/li&gt;
&lt;li&gt;Move it outside the frame&lt;/li&gt;
&lt;li&gt;Wrap in this order: component / auto layout / element
&lt;ul&gt;
&lt;li&gt;If the top of the element is a frame, add auto layout to it&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Move the child component back to where it was in step 1&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;The flow is a bit involved, but the button is now a component with auto layout intact.&lt;/p&gt;
&lt;h2 id=&quot;create-variants&quot;&gt;Create variants&lt;/h2&gt;
&lt;p&gt;A button is now ready outside the frame as a component.&lt;/p&gt;
&lt;p&gt;From here, use Variants to express the button’s state changes.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Creating variants&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-05-figma-base-3/2022-04-05-Figma-base-3_Creating_variants.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: applying variants&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the &lt;strong&gt;component-ised element&lt;/strong&gt; you want to add variants to&lt;/li&gt;
&lt;li&gt;Find the Variants section in the right sidebar&lt;/li&gt;
&lt;li&gt;Click the + icon to the right of Variants&lt;/li&gt;
&lt;li&gt;In the input field showing something like “Variant2”, type the sub-state name you want to register&lt;/li&gt;
&lt;li&gt;Select the elements inside that state&lt;/li&gt;
&lt;li&gt;Change colors or other properties&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: switching variant state&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element whose state you want to change&lt;/li&gt;
&lt;li&gt;Find the section in the right sidebar that shows the component name&lt;/li&gt;
&lt;li&gt;Click the dropdown next to something like “Property1”&lt;/li&gt;
&lt;li&gt;Pick the state to switch to&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;Adding variants outlines the component with a dotted border and duplicates the element.&lt;/p&gt;
&lt;p&gt;Editing those duplicates is how the sub-states get expressed.&lt;/p&gt;
&lt;p&gt;One caveat: Variants only applies to elements that are already components.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;By default only one variant on top of the default can be registered, so add another state.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Adding variants&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-05-figma-base-3/2022-04-05-Figma-base-3_Additions_within_the_Variants.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: adding a variant&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the variant element you want to add another from&lt;/li&gt;
&lt;li&gt;A + icon appears nearby — click it&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;New variants get added directly below the selected element, so starting from the bottom-most variant tends to keep the layout clean.&lt;/p&gt;
&lt;h2 id=&quot;finished&quot;&gt;Finished&lt;/h2&gt;
&lt;img width=&quot;800&quot; alt=&quot;Finished design&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-05-figma-base-3/2022-04-05_Completion_drawing.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;That’s part 3 of the Figma basics.&lt;/p&gt;
&lt;p&gt;More skill-related posts to come.&lt;/p&gt;</content:encoded><category>build</category><category>UI</category><category>Figma</category></item><item><title>How to use Figma — basics, part 2</title><link>https://aulvem.com/blog/2022-04-01-figma-base-2/</link><guid isPermaLink="true">https://aulvem.com/blog/2022-04-01-figma-base-2/</guid><description>Figma basics, part 2. A walkthrough of strokes, grouping, components, and auto layout — the features that make UI parts genuinely reusable. With GIFs for each step. A foundation for a small design system.</description><pubDate>Fri, 01 Apr 2022 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026-05-16 update&lt;/strong&gt;: A post from a few years back. The bones still hold up, but the UI screenshots and Figma version are from when it was written and don’t match the current build.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This post walks through the Figma basics, part 2.&lt;/p&gt;
&lt;p&gt;I covered getting up to a design file in the earlier posts, so use those as a starting point.&lt;/p&gt;

&lt;p&gt;The finished design from this post looks like the image below.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Preview of the finished design&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-01-figma-base-2/2022-04-01_Completion_drawing.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;h2 id=&quot;setting-a-stroke&quot;&gt;Setting a stroke&lt;/h2&gt;
&lt;p&gt;The earlier post stopped at the header and footer.&lt;/p&gt;
&lt;p&gt;This time I start with the cards inside the content area.&lt;/p&gt;
&lt;p&gt;The GIF below begins right after the frame has been created.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Setting a stroke in Figma&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-01-figma-base-2/2022-04-01_Setting_the_border.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element you want to add a stroke to&lt;/li&gt;
&lt;li&gt;Find the Stroke section in the right panel&lt;/li&gt;
&lt;li&gt;Click the + icon to the right of Stroke&lt;/li&gt;
&lt;li&gt;Click the color code that appears below&lt;/li&gt;
&lt;li&gt;Pick a color from the picker, or from the swatch history under it&lt;/li&gt;
&lt;li&gt;Set the line thickness with the number next to the three-line icon under the color code&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;That’s the stroke set.&lt;/p&gt;
&lt;h2 id=&quot;creating-different-elements&quot;&gt;Creating different elements&lt;/h2&gt;
&lt;p&gt;With the card outline in place, the next step is the contents.&lt;/p&gt;
&lt;p&gt;I drop in a title and body text as shown in the GIF below.&lt;/p&gt;
&lt;p&gt;Then a divider line and an avatar icon underneath, both made from primitive shapes.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Creating different elements in Figma&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-01-figma-base-2/2022-04-01_Creating_elements.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: drawing a line&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click the ∨ next to the rectangle icon in the toolbar&lt;/li&gt;
&lt;li&gt;Pick Line from the list&lt;/li&gt;
&lt;li&gt;Move the cursor to where you want the line to start&lt;/li&gt;
&lt;li&gt;Drag to set the length&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: drawing a circle&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click the ∨ next to the rectangle icon in the toolbar&lt;/li&gt;
&lt;li&gt;Pick Ellipse from the list&lt;/li&gt;
&lt;li&gt;Move the cursor to where you want the shape&lt;/li&gt;
&lt;li&gt;Drag to set the size&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Snapping kicks in around centers and edges&lt;/li&gt;
&lt;li&gt;Hold Shift while dragging to lock the X or Y axis&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The divider and avatar icon are now in place under the content.&lt;/p&gt;
&lt;h2 id=&quot;grouping&quot;&gt;Grouping&lt;/h2&gt;
&lt;p&gt;The card frame is starting to hold a lot of elements, so I bundle them.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Grouping elements in Figma&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-01-figma-base-2/2022-04-01_Grouping.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the elements you want to group (multi-select)&lt;/li&gt;
&lt;li&gt;Right-click to open the menu&lt;/li&gt;
&lt;li&gt;Choose Group selection&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;In the left panel you can Shift-click to select a range&lt;/li&gt;
&lt;li&gt;With elements selected, Ctrl + G also groups them&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;The card elements now live inside one group.&lt;/p&gt;
&lt;h2 id=&quot;changing-the-corner-radius&quot;&gt;Changing the corner radius&lt;/h2&gt;
&lt;p&gt;The last piece inside the card is a button next to the avatar icon.&lt;/p&gt;
&lt;p&gt;I drop a frame next to the avatar and give it a background color.&lt;/p&gt;
&lt;p&gt;I want rounded corners on the button, so I round it off here.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Changing the corner radius in Figma&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-01-figma-base-2/2022-04-01_Rounding_change.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element you want to round&lt;/li&gt;
&lt;li&gt;Find the Frame section in the right panel&lt;/li&gt;
&lt;li&gt;Click the number inside the red outline on the Frame row&lt;/li&gt;
&lt;li&gt;Type the value you want&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Arrow keys ↑↓ nudge by 1 pixel&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;That’s all the pieces inside the card built.&lt;/p&gt;
&lt;h2 id=&quot;creating-a-component&quot;&gt;Creating a component&lt;/h2&gt;
&lt;p&gt;Cards usually appear more than once, so I duplicate it.&lt;/p&gt;
&lt;p&gt;But instead of plain copy-paste like last time, I use Figma’s component feature — a stronger form of duplication.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Creating a component in Figma&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-01-figma-base-2/2022-04-01_Creating_components.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the elements you want to turn into a component&lt;/li&gt;
&lt;li&gt;Right-click to open the menu&lt;/li&gt;
&lt;li&gt;Choose Create component&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;With elements selected, Ctrl + Alt + K also creates a component&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;As the GIF shows, components do a few useful things at once:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Edits to the master component flow through to every instance&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Per-instance overrides (no effect on the master)
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Toggle visibility per element&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Override text per element&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Turning frames you’ll likely reuse into components — and reaching for them by default — is one of the biggest payoffs Figma gives you later.&lt;/p&gt;
&lt;h2 id=&quot;adding-auto-layout&quot;&gt;Adding auto layout&lt;/h2&gt;
&lt;p&gt;At some point I want to swap the button label for something longer.&lt;/p&gt;
&lt;p&gt;This is where auto layout comes in.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Adding auto layout in Figma&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-01-figma-base-2/2022-04-01_Creating_an_auto_layout.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: turning on auto layout&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element you want auto layout on&lt;/li&gt;
&lt;li&gt;Right-click to open the menu&lt;/li&gt;
&lt;li&gt;Choose Add auto layout&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;With elements selected, Shift + A also enables auto layout&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Normally, longer text would overflow the frame.
&lt;strong&gt;With auto layout, as the GIF shows, the padding on all four sides stays put.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Reach for auto layout when an element’s width or height needs to grow with its content.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;The button in that example grows to the right, which eats into the right-side margin.&lt;/p&gt;
&lt;p&gt;One more tweak keeps the right margin intact while the button still grows.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Changing the auto layout start point in Figma&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-01-figma-base-2/2022-04-01_Changing_the_starting_point.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: changing the start point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element whose start point you want to change&lt;/li&gt;
&lt;li&gt;Find the Constraints section in the right panel&lt;/li&gt;
&lt;li&gt;In the small diagram, click the blue lines to set the start point&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;The button’s auto layout now anchors to the bottom-right, so the right margin stays put as it grows.&lt;/p&gt;
&lt;p&gt;The labels (&lt;code&gt;left&lt;/code&gt;, &lt;code&gt;right&lt;/code&gt;, etc.) next to the diagram set the same thing if you prefer text.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;Auto layout has another useful piece.&lt;/p&gt;
&lt;p&gt;I use it here to set the padding around each card and the gap between cards.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Adjusting auto layout in Figma&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-01-figma-base-2/2022-04-01_Adjusting_the_auto_layout.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: adjusting auto layout&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Multi-select the elements you want under auto layout&lt;/li&gt;
&lt;li&gt;Enable auto layout&lt;/li&gt;
&lt;li&gt;Find the Auto layout section in the right panel&lt;/li&gt;
&lt;li&gt;Click the rightmost square in the Auto layout row&lt;/li&gt;
&lt;li&gt;Adjust the top / bottom / left / right padding in pixels&lt;/li&gt;
&lt;li&gt;Click the three-line icon&lt;/li&gt;
&lt;li&gt;Adjust the gap between elements&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;The Auto layout section in the right panel handles padding and spacing.&lt;/p&gt;
&lt;p&gt;When the same element appears more than once, &lt;strong&gt;auto layout makes it easy to dial in outer padding and inter-element gaps in one place&lt;/strong&gt; — worth reaching for by default.&lt;/p&gt;
&lt;h2 id=&quot;the-finished-design&quot;&gt;The finished design&lt;/h2&gt;
&lt;img width=&quot;800&quot; alt=&quot;The finished card design in Figma&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-04-01-figma-base-2/2022-04-01_Completion_drawing.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;That covers Figma basics, part 2.&lt;/p&gt;
&lt;p&gt;Next up: the features that make a Figma file easier to maintain over time.&lt;/p&gt;</content:encoded><category>build</category><category>UI</category><category>Figma</category></item><item><title>Figma basics, part 1 — frames, fills, text, and alignment</title><link>https://aulvem.com/blog/2022-03-30-figma-base-1/</link><guid isPermaLink="true">https://aulvem.com/blog/2022-03-30-figma-base-1/</guid><description>Figma basics, part 1. The first set of operations to learn in Figma: creating a frame, changing its background fill, moving and resizing elements, entering text, and aligning. Walked through with example GIFs, written for first-time Figma users.</description><pubDate>Wed, 30 Mar 2022 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026-05-16 update&lt;/strong&gt;: A post a few years old. The bones still hold up, but the tool UI and version are from when it was written and don’t match the current Figma.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Figma basics, part one. The previous post got as far as creating a design file. From here, I’m building out the screen itself.&lt;/p&gt;
&lt;p&gt;The finished version looks like the image below. A plain screen, but it covers the core Figma basics: frames, fills, text, and alignment.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Preview of the finished design&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-30-figma-base-1/2022-03-30_completion%20drawing.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;h2 id=&quot;the-basic-layout&quot;&gt;The basic layout&lt;/h2&gt;
&lt;img width=&quot;800&quot; alt=&quot;The default Figma screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-30-figma-base-1/2022-03-30_Default_screen.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;Rough map of the screen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The header is &lt;strong&gt;the tooling&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;The left sidebar is &lt;strong&gt;the objects you’ve created&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;The right sidebar adjusts &lt;strong&gt;the object you’ve selected&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;frame&quot;&gt;Frame&lt;/h2&gt;
&lt;p&gt;First, the screen bounds.&lt;/p&gt;
&lt;p&gt;In Figma, a screen is expressed using a part called a frame.&lt;/p&gt;
&lt;p&gt;Frames are versatile — they’re used for the screen bounds, as outer containers for elements, and more. There are templates available, so the easiest place to start is picking one of those.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Creating a frame from a template&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-30-figma-base-1/2022-03-30_Creating_template_frames.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click the frame icon in the header&lt;/li&gt;
&lt;li&gt;The frame templates appear in the right sidebar — pick the one you want&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;Clicking creates an iPhone 13 Pro Max frame in the center of the canvas.&lt;/p&gt;
&lt;p&gt;The right sidebar shows the new frame labeled &lt;strong&gt;# iPhone 13 Pro Max&lt;/strong&gt;.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;With the screen bounds in place, next is the elements inside the screen.&lt;/p&gt;
&lt;p&gt;Starting with the header.&lt;/p&gt;
&lt;p&gt;The previous step used a frame template — this time, drawing a frame freely.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Drawing a frame freely&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-30-figma-base-1/2022-03-30_Creating_frames.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click the frame icon in the header&lt;/li&gt;
&lt;li&gt;Move the cursor to where you want the frame&lt;/li&gt;
&lt;li&gt;Drag to draw&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;Freehand drawing isn’t pixel-precise, so aim for roughly the right size and fine-tune later.&lt;/p&gt;
&lt;p&gt;Use freehand drawing for larger blocks like headers, and for the base shape of small elements like buttons.&lt;/p&gt;
&lt;h2 id=&quot;change-the-background-fill&quot;&gt;Change the background fill&lt;/h2&gt;
&lt;p&gt;The freehand-drawn frame comes out plain white. To make it easier to see, I’ll give the header frame a background fill.&lt;/p&gt;
&lt;p&gt;Fine adjustments like fill color happen in the right sidebar.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Changing the background fill&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-30-figma-base-1/2022-03-30_Changing_the_background_colour.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element to adjust&lt;/li&gt;
&lt;li&gt;Find the Fill row in the right sidebar&lt;/li&gt;
&lt;li&gt;Click the + icon to the right of Fill&lt;/li&gt;
&lt;li&gt;Click the color code shown below&lt;/li&gt;
&lt;li&gt;Pick a color in the color picker&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;That switches the fill to black.&lt;/p&gt;
&lt;h2 id=&quot;move-and-resize-elements&quot;&gt;Move and resize elements&lt;/h2&gt;
&lt;p&gt;The header has its color, but the position and size are off.&lt;/p&gt;
&lt;p&gt;Time to move it and resize it.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Moving and resizing an element&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-30-figma-base-1/2022-03-30_Moving_and_resizing_elements.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: repositioning&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element to adjust&lt;/li&gt;
&lt;li&gt;Drag to where you want it&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Smart guides snap to center and edges&lt;/li&gt;
&lt;li&gt;Shift + drag locks movement to the x or y axis&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: resizing&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element to adjust&lt;/li&gt;
&lt;li&gt;Move the cursor to the bounding-box handle&lt;/li&gt;
&lt;li&gt;Drag to resize&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;That puts the header roughly where it belongs, at roughly the right size.&lt;/p&gt;
&lt;p&gt;But the height is a few pixels off, so a quick fine-tune.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Fine-tuning element height&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-30-figma-base-1/2022-03-30_Resizing_elements.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: fine-tuning element height&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element to adjust&lt;/li&gt;
&lt;li&gt;Click the H field under Frame in the right sidebar&lt;/li&gt;
&lt;li&gt;Edit the value&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Arrow up / down nudges by 1 pixel&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Under Frame, X and Y are position; W and H are width and height — all editable.&lt;/p&gt;
&lt;h2 id=&quot;enter-text&quot;&gt;Enter text&lt;/h2&gt;
&lt;p&gt;With the header frame in place, next are the elements inside the header.&lt;/p&gt;
&lt;p&gt;For the walkthrough, putting some text in the header.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Entering text&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-30-figma-base-1/2022-03-30_Text_input.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click the T icon in the header&lt;/li&gt;
&lt;li&gt;Click where you want the text&lt;/li&gt;
&lt;li&gt;Type once the cursor goes into edit mode&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;That puts the word “Header” inside the header.&lt;/p&gt;
&lt;h3 id=&quot;changing-the-font-size&quot;&gt;Changing the font size&lt;/h3&gt;
&lt;p&gt;The text is too small as-is, so bumping the font size up to something readable.&lt;/p&gt;
&lt;p&gt;Same as before — fine adjustments happen in the right sidebar.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Changing the font size&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-30-figma-base-1/2022-03-30_Change_in_size.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the text to adjust&lt;/li&gt;
&lt;li&gt;Find the Text row in the right sidebar&lt;/li&gt;
&lt;li&gt;Find the numeric field in the lower right of the Text row&lt;/li&gt;
&lt;li&gt;Click the number&lt;/li&gt;
&lt;li&gt;Edit the value&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Arrow up / down nudges by 1 size unit&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;That gets the font size to something readable.&lt;/p&gt;
&lt;h2 id=&quot;align-elements&quot;&gt;Align elements&lt;/h2&gt;
&lt;p&gt;Font size sorted. Next, the text position.&lt;/p&gt;
&lt;p&gt;Same as before — fine adjustments happen in the right sidebar.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Centering an element&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-30-figma-base-1/2022-03-30_Centred_elements.gif&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: horizontal center&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element to adjust&lt;/li&gt;
&lt;li&gt;In the right sidebar, click the icon with a vertical line through the center&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: vertical center&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element to adjust&lt;/li&gt;
&lt;li&gt;In the right sidebar, click the icon with a horizontal line through the center&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;The other icons on the same row are the rest of the alignment options.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;Header done. Next, the footer.&lt;/p&gt;
&lt;p&gt;Same design as the header, so copying the header across.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Duplicating an element for the footer&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-30-figma-base-1/2022-03-30_Reproduction.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: duplicating an element&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element to duplicate&lt;/li&gt;
&lt;li&gt;Press Ctrl + C&lt;/li&gt;
&lt;li&gt;Press Ctrl + V&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;That gives the footer copy.&lt;/p&gt;
&lt;p&gt;It sits at the same position as the header, though — needs to move to the bottom.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Placing the footer at the bottom of the screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-30-figma-base-1/2022-03-30_Undercover.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Point: align to bottom&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the element to adjust&lt;/li&gt;
&lt;li&gt;In the right sidebar, click the icon with a horizontal line at the bottom&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;Footer done.&lt;/p&gt;
&lt;p&gt;That covers the first set of Figma operations. Part two picks up the core features worth learning early when you start using Figma seriously.&lt;/p&gt;</content:encoded><category>build</category><category>UI</category><category>Figma</category></item><item><title>How to use Figma — setup guide</title><link>https://aulvem.com/blog/2022-03-29-figma-preparation/</link><guid isPermaLink="true">https://aulvem.com/blog/2022-03-29-figma-preparation/</guid><description>A setup guide for getting started with Figma. Covers what Figma is, its core characteristics, account signup, team creation, opening a new design file, and the basics of the editor — step by step, with screenshots. A starting point for anyone new to UI design.</description><pubDate>Tue, 29 Mar 2022 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026-05-16 update&lt;/strong&gt;: This post is a few years old now. The skeleton — create an account, create a team, create a file — still holds, but the UI details and labels are left as they were at the time. Today’s Figma has added Dev Mode, Variables, stronger Auto layout, and other features that didn’t exist back then. Read it alongside the current screens.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is a walkthrough of what Figma is, and what it takes to get to your first design file. Three steps — account, team, file — in order, and the UI design canvas is right there.&lt;/p&gt;
&lt;h2 id=&quot;understand-what-figma-is&quot;&gt;Understand what Figma is&lt;/h2&gt;
&lt;p&gt;Figma is a UI design tool that runs in the browser. No install needed; open a URL and the editor is right there.&lt;/p&gt;
&lt;p&gt;There are other prototyping tools out there, but for getting the shape of Figma, two characteristics stand out:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The work lives in the cloud&lt;/li&gt;
&lt;li&gt;Multiple people can edit at the same time&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;the-work-lives-in-the-cloud&quot;&gt;The work lives in the cloud&lt;/h3&gt;
&lt;p&gt;Figma files live in the cloud, and editing happens inside the browser.&lt;/p&gt;
&lt;p&gt;As long as the account exists, &lt;strong&gt;any PC with a browser can sign in and read or edit the current file&lt;/strong&gt;. There’s nothing to install locally.&lt;/p&gt;
&lt;h3 id=&quot;multiple-people-can-edit-at-the-same-time&quot;&gt;Multiple people can edit at the same time&lt;/h3&gt;
&lt;p&gt;The defining feature of Figma is that multiple people can edit the same file simultaneously.&lt;/p&gt;
&lt;p&gt;For solo use the benefit is thin, but for prototyping at work it removes the usual friction of zipping files, mistaking which copy is the latest, and so on.&lt;/p&gt;
&lt;p&gt;Note: &lt;strong&gt;it’s especially good in remote meetings&lt;/strong&gt;. You can share your screen and fix things live as the conversation happens.&lt;/p&gt;
&lt;h2 id=&quot;create-an-account&quot;&gt;Create an account&lt;/h2&gt;
&lt;p&gt;To actually start using it, the first step is creating a Figma account.&lt;/p&gt;
&lt;p&gt;Open the official site and head to signup.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.figma.com/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.figma.com/&lt;/a&gt;&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;Figma top page&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-29-figma-preparation/2022-03-29-Figma-Top.jpg&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The page above loads up. Click the &lt;strong&gt;Sign up button in the red box&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That opens the new-account modal.&lt;/p&gt;
&lt;p&gt;Signing up with a Google account is the least friction and what I’d recommend. Email also works fine.&lt;/p&gt;
&lt;h2 id=&quot;create-a-team&quot;&gt;Create a team&lt;/h2&gt;
&lt;p&gt;Once the account is created and signed in, the next step is to create a team.&lt;/p&gt;
&lt;p&gt;A team is similar to a folder on a PC. You create the team folder first, and design files go inside it — that’s the hierarchy.&lt;/p&gt;
&lt;p&gt;Click the area highlighted in red below.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Team creation screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-29-figma-preparation/2022-03-29_Team_creation.jpg&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;A team-name input screen comes up.&lt;/p&gt;
&lt;p&gt;Type any team name and click the &lt;strong&gt;Create team&lt;/strong&gt; button.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Team name input screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-29-figma-preparation/2022-03-29_Enter_team_name.jpg&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Next is a screen for inviting users to the team.&lt;/p&gt;
&lt;p&gt;Since this is a solo setup on the free plan, click &lt;strong&gt;Skip for now&lt;/strong&gt; at the bottom of the screen.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Skip user invite&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-29-figma-preparation/2022-03-29_Skip.jpg&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The last step is choosing a Figma plan.&lt;/p&gt;
&lt;p&gt;Going with the free plan, so click &lt;strong&gt;Choose Starter&lt;/strong&gt; in the red box. That finishes team creation.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Free plan selection screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-29-figma-preparation/2022-03-29_Free_version.jpg&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;h2 id=&quot;create-a-design-file&quot;&gt;Create a design file&lt;/h2&gt;
&lt;p&gt;With the team in place, the next step is creating the actual workspace — a design file.&lt;/p&gt;
&lt;p&gt;Note that on the free plan you can only create up to three design files (limit as of writing — check the official pricing page for the current cap).&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;Creating the file itself is simple.&lt;/p&gt;
&lt;p&gt;The team name shows up on the left side. Selecting it opens the screen below.&lt;/p&gt;
&lt;p&gt;Clicking the area in the red box creates a new design file.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Design file creation screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-29-figma-preparation/2022-03-29_Design_creation.jpg&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Once created, this screen opens — and that’s the end of setup.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Default design file screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-29-figma-preparation/2022-03-29_Default_screen.jpg&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;So that covers what Figma is, and getting through to an empty canvas.&lt;/p&gt;
&lt;p&gt;What to actually do inside that canvas is the subject of the next post — the basics guide.&lt;/p&gt;</content:encoded><category>build</category><category>UI</category><category>Figma</category></item><item><title>Design thinking, and how I actually use it at work</title><link>https://aulvem.com/blog/2022-03-19-design-thinking/</link><guid isPermaLink="true">https://aulvem.com/blog/2022-03-19-design-thinking/</guid><description>Design thinking is a problem-solving approach that borrows the designer&apos;s creative process and applies it to other fields. A walkthrough of the empathize / define / ideate / prototype / test flow, the Double Diamond model, and practical notes on using it day to day.</description><pubDate>Sat, 19 Mar 2022 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: A few years on from the original post. The shape of the argument still holds, but any tool UIs and version numbers mentioned are from when it was written and may have drifted from current releases.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;what-is-design-thinking&quot;&gt;What is design thinking?&lt;/h2&gt;
&lt;p&gt;I’ve been running into “design thinking” more often at work lately, so this is me writing down how I actually understand it.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;Design thinking started as a way designers approached creative work, then got generalized as a problem-solving approach for other fields.&lt;/p&gt;
&lt;p&gt;Where logical thinking leans on theory and numbers to &lt;strong&gt;solve the problem in front of you&lt;/strong&gt;,&lt;/p&gt;
&lt;p&gt;design thinking starts from empathy and emotion and tries to &lt;strong&gt;find the real problem underneath&lt;/strong&gt;.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;The Ford apocryphal quote&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-19-design-thinking/2022-03-19-Design-Thinking-Ford.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The example people reach for is the Ford one. The user request — “&lt;strong&gt;I want a faster horse&lt;/strong&gt;” — gets read not as the literal object (a horse) but as the underlying desire (“&lt;strong&gt;I want to move from A to B&lt;/strong&gt;”), and the answer becomes a car.&lt;/p&gt;
&lt;p&gt;That’s the move: doubt the problem as presented, and go after the real problem sitting behind it.&lt;/p&gt;
&lt;h2 id=&quot;the-design-thinking-process&quot;&gt;The design thinking process&lt;/h2&gt;
&lt;p&gt;The process runs as a pattern of &lt;strong&gt;diverge&lt;/strong&gt; and &lt;strong&gt;converge&lt;/strong&gt;. This is the Double Diamond model.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;The Double Diamond model&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-03-19-design-thinking/2022-03-19-Double-Diamond.jpg&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;It breaks into four stages.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Diverge and converge to find the right problem — “discover” and “define”&lt;/li&gt;
&lt;li&gt;Diverge and converge to find the right solution — “develop” and “deliver”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You spin through these four stages, fast, and the product gets sharper each loop.&lt;/p&gt;
&lt;h3 id=&quot;diverging-to-find-the-right-problem&quot;&gt;Diverging to find the right problem&lt;/h3&gt;
&lt;h4 id=&quot;discover&quot;&gt;Discover&lt;/h4&gt;
&lt;p&gt;The discover phase is where the core idea of design thinking — &lt;strong&gt;searching for the real problem&lt;/strong&gt; — does the most work.&lt;/p&gt;
&lt;p&gt;The job here is to observe and interview actual users and &lt;strong&gt;explore their needs&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Why did they take that action?&lt;/li&gt;
&lt;li&gt;What was their emotional state, before and after touching the service?&lt;/li&gt;
&lt;li&gt;And so on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are the questions you use to diverge the problem space.&lt;/p&gt;
&lt;p&gt;You let it run wide — from the obvious things that feel too dumb to say, all the way out to weird and tangential ones — and you keep them all on the table.&lt;/p&gt;
&lt;h4 id=&quot;define&quot;&gt;Define&lt;/h4&gt;
&lt;p&gt;Once you have a spread of hypotheses, you narrow.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which problem is the one users feel most strongly?&lt;/li&gt;
&lt;li&gt;What’s the underlying cause, and how do you abstract it?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bring in the marketing and sales angles alongside the user angle, and converge from more than one axis.&lt;/p&gt;
&lt;h3 id=&quot;diverging-to-find-the-right-solution&quot;&gt;Diverging to find the right solution&lt;/h3&gt;
&lt;p&gt;From here, the work shifts closer to ordinary logical thinking.&lt;/p&gt;
&lt;p&gt;For ideation, I try to keep a few things in mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More ideas is better than fewer&lt;/li&gt;
&lt;li&gt;The more obvious it seems, the more worth asking about&lt;/li&gt;
&lt;li&gt;Locking in a decision too early is a real risk&lt;/li&gt;
&lt;li&gt;Don’t shoot ideas down&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;the-downsides-of-design-thinking&quot;&gt;The downsides of design thinking&lt;/h3&gt;
&lt;h4 id=&quot;it-costs-time-and-money&quot;&gt;It costs time and money&lt;/h4&gt;
&lt;p&gt;By design (so to speak), the process eats time and money.&lt;/p&gt;
&lt;p&gt;Real product development has deadlines, so the practical move is to put a hard time limit on each loop before you start spinning.&lt;/p&gt;
&lt;h4 id=&quot;the-bar-to-actually-run-it-is-high&quot;&gt;The bar to actually run it is high&lt;/h4&gt;
&lt;p&gt;User perspective and empathy carry the whole thing, and neither is something you pick up overnight. It takes patient practice — observation, interviews, repeat.&lt;/p&gt;
&lt;p&gt;On top of that you need the imagination to spread ideas wide, so trying to run the full loop as a beginner is rough.&lt;/p&gt;
&lt;h4 id=&quot;its-overkill-for-small-improvements&quot;&gt;It’s overkill for small improvements&lt;/h4&gt;
&lt;p&gt;Because design thinking re-examines the problem from scratch, it’s strong at producing new solutions but expensive for incremental tweaks to existing features. For pure improvement work, plain logical thinking is often the faster path.&lt;/p&gt;
&lt;h2 id=&quot;putting-it-into-practice&quot;&gt;Putting it into practice&lt;/h2&gt;
&lt;p&gt;User perspective, empathy, idea generation — all of these need training, so running the full set from tomorrow morning isn’t realistic.&lt;/p&gt;
&lt;p&gt;The version I’ve landed on is to pull out the essence and mix it into ordinary work, a bit at a time.&lt;/p&gt;
&lt;h3 id=&quot;what-the-idea-is-really-getting-at&quot;&gt;What the idea is really getting at&lt;/h3&gt;
&lt;p&gt;The core, for me, is “search for the real problem” — or, said differently, &lt;u&gt;step back from the problem as it was handed to you&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;User perspective is the strongest lever, but you don’t have to be locked to it. Just imagining the context behind the subject opens up a different angle. Treating design thinking as &lt;strong&gt;a tool for shifting your viewpoint&lt;/strong&gt; is what makes it usable without ceremony.&lt;/p&gt;
&lt;h3 id=&quot;training-the-users-eye-view&quot;&gt;Training the user’s-eye view&lt;/h3&gt;
&lt;p&gt;A quick way to train the user’s-eye view is to actually pick up the competing products you use in daily life and try them.&lt;/p&gt;
&lt;p&gt;You start noticing the differences against what you’re used to, and the comparison becomes a habit. That’s the first step into the user’s-eye view.&lt;/p&gt;
&lt;h3 id=&quot;design-thinking-in-microdoses&quot;&gt;Design thinking, in microdoses&lt;/h3&gt;
&lt;p&gt;You don’t have to plant a flag that says “we’re doing design thinking now”. You can slip a fragment of the mindset into ordinary work.&lt;/p&gt;
&lt;p&gt;For example, on a given meeting agenda: is the agenda itself even framed correctly? Is the perspective too local? Practice it on small units, and the resolution of the discussion shifts, little by little.&lt;/p&gt;</content:encoded><category>build</category><category>UI</category></item><item><title>How to Choose a microSD Card: Markings by Use and a Bitrate Chart</title><link>https://aulvem.com/blog/2022-02-26-micro-sd-base/</link><guid isPermaLink="true">https://aulvem.com/blog/2022-02-26-micro-sd-base/</guid><description>Per Nintendo&apos;s US support page, the Nintendo Switch 2 only works with microSD cards built to the SD Express standard, up to 2 TB. In this calculation, recording at up to 240 Mbps is covered by a V30 card (at least 30 MB/s). Above 216 Mbps up to 240 Mbps the headroom is under 10%, so it&apos;s borderline. Worked out from the SD Association&apos;s and the makers&apos; official pages as of October 2026.</description><pubDate>Sat, 26 Feb 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Choose an SD Express microSD card for the Switch 2, A1 or better for phone apps, and for video up to 240 Mbps, V30 or above by bitrate.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Games: see the Switch 2 section right below&lt;/li&gt;
&lt;li&gt;Phones: see “Phone apps want A1 or A2”&lt;/li&gt;
&lt;li&gt;Video: see “Choose video cards by bitrate”&lt;/li&gt;
&lt;li&gt;Dashcams: see “Dashcams need a high-endurance card”&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-switch-2-only-takes-microsd-express&quot;&gt;The Switch 2 only takes microSD Express&lt;/h2&gt;
&lt;p&gt;Per Nintendo’s US support page, the Nintendo Switch 2 only works with microSD Express cards, up to 2 TB.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Per Nintendo’s US support page, a regular microSD card from the original Switch can’t store games or save data on the Switch 2, though you can still copy off its screenshots and videos&lt;/li&gt;
&lt;li&gt;Samsung’s 256GB card for the Switch 2 reads at up to 800 MB/s. In UHS-I mode it reads at 90 MB/s&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A card’s maximum speed does not tell you how much faster a game will load. Load times were not tested on a real console.&lt;/p&gt;
&lt;p&gt;Nintendo’s US support page gives no game size guide. Check the size of each game you plan to play.&lt;/p&gt;
&lt;h2 id=&quot;phone-apps-want-a1-or-a2&quot;&gt;Phone apps want A1 or A2&lt;/h2&gt;
&lt;p&gt;Check that your phone supports A2 before you pay for it.&lt;/p&gt;
&lt;p&gt;Per the SD Association, A1 and A2 are markings for running apps. IOPS is how many small reads or writes a card can do per second. You only get A2 speed when the device supports A2 too.&lt;/p&gt;




















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Marking&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Minimum random read&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Minimum random write&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;A1&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1,500 IOPS&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;500 IOPS&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;A2&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;4,000 IOPS&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2,000 IOPS&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;choose-video-cards-by-bitrate&quot;&gt;Choose video cards by bitrate&lt;/h2&gt;
&lt;p&gt;In this calculation, the write speed a recording needs in MB/s is its bitrate in Mbps divided by 8. The table compares Video Speed Class markings and gives the lowest V rating that covers it, plus the recording time on a 256 GB card. Match the marking family your device asks for.&lt;/p&gt;
&lt;p&gt;In this calculation, V60 covers above 240 Mbps up to 480 Mbps, and V90 covers above 480 Mbps up to 720 Mbps. It’s borderline for V60 above 432 Mbps up to 480 Mbps, and for V90 above 648 Mbps up to 720 Mbps.&lt;/p&gt;

































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Recording bitrate&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Write speed needed&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Lowest V rating&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Recording time (at most)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;50 Mbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;6.25 MB/s&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;V10&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 682 min&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;100 Mbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;12.5 MB/s&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;V30&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 341 min&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;150 Mbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;18.75 MB/s&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;V30&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 227 min&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;200 Mbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;25 MB/s&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;V30&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 170 min&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;240 Mbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;30 MB/s&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;V30, borderline&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 142 min&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;300 Mbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;37.5 MB/s&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;V60 (UHS-II or faster)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 113 min&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;400 Mbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;50 MB/s&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;V60 (UHS-II or faster)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 85 min&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;600 Mbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;75 MB/s&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;V90 (UHS-II or faster)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 56 min&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;800 Mbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;100 MB/s&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Beyond V90&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 42 min&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Per the SD Association, V60 and V90 are meant for a UHS-II or faster bus, so both the device and the card need UHS-II&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use the bitrate from your device’s manual. The tool below turns your use and bitrate into the marking you need.&lt;/p&gt;
&lt;section id=&quot;microsd-card-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;microsd-card-calc-title&quot;&gt; &lt;h3 id=&quot;microsd-card-calc-title&quot;&gt;Which microSD marking you need (from the use and bitrate)&lt;/h3&gt; &lt;p&gt;Pick the use (Switch 2, phone, video or dashcam) and a capacity to see which card type and markings you need. For video and dashcams it turns the recording bitrate into the write speed needed, the lowest speed class that covers it, and how long the card records. It also shows one card that fits.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;samsung_express_256&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung microSD Express 256GB for Nintendo Switch 2&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/51+NEcdWJFL._SX466_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung microSD Express 256GB for Nintendo Switch 2&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F54NFW3Y?q=Samsung+microSD+Express+256GB+for+Nintendo+Switch+2&amp;amp;us=B0F3VTCZK8&amp;amp;l=en&quot; aria-label=&quot;View Samsung microSD Express 256GB for Nintendo Switch 2 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;MB-MZ256S&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung microSD Express 256GB for Nintendo Switch 2&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/51+NEcdWJFL._SX466_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung microSD Express 256GB for Nintendo Switch 2&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F54NFW3Y?q=Samsung+microSD+Express+256GB+for+Nintendo+Switch+2&amp;amp;us=B0F3VTCZK8&amp;amp;l=en&quot; aria-label=&quot;View Samsung microSD Express 256GB for Nintendo Switch 2 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;sandisk_express_256&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for SanDisk microSD Express 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71h8AjGvWOL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;SanDisk microSD Express 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DFQGVLYF?q=SanDisk+microSD+Express+256GB&amp;amp;us=B0DFQGVLYF&amp;amp;l=en&quot; aria-label=&quot;View SanDisk microSD Express 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;SDSQXFN-256G-GN4NN&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for SanDisk microSD Express 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71h8AjGvWOL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;SanDisk microSD Express 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DFQGVLYF?q=SanDisk+microSD+Express+256GB&amp;amp;us=B0DFQGVLYF&amp;amp;l=en&quot; aria-label=&quot;View SanDisk microSD Express 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;sandisk_extreme_a2_256&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for SanDisk Extreme microSD 256GB (SDSQXH9)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61hSzpRypNL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;SanDisk Extreme microSD 256GB (SDSQXH9)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0G8M2FH2G?q=SanDisk+Extreme+microSD+256GB+%28SDSQXH9%29&amp;amp;us=B0G8M2FH2G&amp;amp;l=en&quot; aria-label=&quot;View SanDisk Extreme microSD 256GB (SDSQXH9) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;SDSQXH9-256G-GZ6MA&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for SanDisk Extreme microSD 256GB (SDSQXH9)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61hSzpRypNL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;SanDisk Extreme microSD 256GB (SDSQXH9)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0G8M2FH2G?q=SanDisk+Extreme+microSD+256GB+%28SDSQXH9%29&amp;amp;us=B0G8M2FH2G&amp;amp;l=en&quot; aria-label=&quot;View SanDisk Extreme microSD 256GB (SDSQXH9) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;samsung_pro_plus_256&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung PRO Plus microSD 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71AO8q2pYlL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung PRO Plus microSD 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DQX53MMF?q=Samsung+PRO+Plus+microSD+256GB&amp;amp;us=B0DQX53MMF&amp;amp;l=en&quot; aria-label=&quot;View Samsung PRO Plus microSD 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;MB-MD256SA&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung PRO Plus microSD 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71AO8q2pYlL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung PRO Plus microSD 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DQX53MMF?q=Samsung+PRO+Plus+microSD+256GB&amp;amp;us=B0DQX53MMF&amp;amp;l=en&quot; aria-label=&quot;View Samsung PRO Plus microSD 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;sandisk_high_endurance_256&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for SanDisk High Endurance microSD 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/51Es0BaQE2L._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;SanDisk High Endurance microSD 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0B21BNJVY?q=SanDisk+High+Endurance+microSD+256GB&amp;amp;us=B07P4HBRMV&amp;amp;l=en&quot; aria-label=&quot;View SanDisk High Endurance microSD 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;SDSQQNR-256G&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for SanDisk High Endurance microSD 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/51Es0BaQE2L._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;SanDisk High Endurance microSD 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0B21BNJVY?q=SanDisk+High+Endurance+microSD+256GB&amp;amp;us=B07P4HBRMV&amp;amp;l=en&quot; aria-label=&quot;View SanDisk High Endurance microSD 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;kingston_go_plus_256&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Kingston Canvas Go! Plus 256GB（Gen4）&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71PA2wAOOYL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Kingston Canvas Go! Plus 256GB（Gen4）&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F29YZWSM?q=Kingston+Canvas+Go%21+Plus+256GB%EF%BC%88Gen4%EF%BC%89&amp;amp;us=B0F29YZWSM&amp;amp;l=en&quot; aria-label=&quot;View Kingston Canvas Go! Plus 256GB（Gen4） on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;SDCG4/256GB&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Kingston Canvas Go! Plus 256GB（Gen4）&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71PA2wAOOYL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Kingston Canvas Go! Plus 256GB（Gen4）&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F29YZWSM?q=Kingston+Canvas+Go%21+Plus+256GB%EF%BC%88Gen4%EF%BC%89&amp;amp;us=B0F29YZWSM&amp;amp;l=en&quot; aria-label=&quot;View Kingston Canvas Go! Plus 256GB（Gen4） on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;kingston_select_plus_256&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Kingston Canvas Select Plus 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71JkfZ5xugL._SX522_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Kingston Canvas Select Plus 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FCZRCP67?q=Kingston+Canvas+Select+Plus+256GB&amp;amp;us=B0FCZRCP67&amp;amp;l=en&quot; aria-label=&quot;View Kingston Canvas Select Plus 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;SDCS3/256GB&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Kingston Canvas Select Plus 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71JkfZ5xugL._SX522_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Kingston Canvas Select Plus 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FCZRCP67?q=Kingston+Canvas+Select+Plus+256GB&amp;amp;us=B0FCZRCP67&amp;amp;l=en&quot; aria-label=&quot;View Kingston Canvas Select Plus 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;vMarks&quot;:[{&quot;id&quot;:&quot;V6&quot;,&quot;min&quot;:6},{&quot;id&quot;:&quot;V10&quot;,&quot;min&quot;:10},{&quot;id&quot;:&quot;V30&quot;,&quot;min&quot;:30},{&quot;id&quot;:&quot;V60&quot;,&quot;min&quot;:60},{&quot;id&quot;:&quot;V90&quot;,&quot;min&quot;:90}],&quot;uMarks&quot;:[{&quot;id&quot;:&quot;U1&quot;,&quot;min&quot;:10},{&quot;id&quot;:&quot;U3&quot;,&quot;min&quot;:30}],&quot;c10&quot;:10,&quot;uhs2Marks&quot;:[&quot;V60&quot;,&quot;V90&quot;],&quot;tightRatio&quot;:0.1,&quot;sdhcMaxGB&quot;:32,&quot;sdxcMaxGB&quot;:2000,&quot;sducMaxTB&quot;:128,&quot;a1&quot;:{&quot;r&quot;:1500,&quot;w&quot;:500},&quot;a2&quot;:{&quot;r&quot;:4000,&quot;w&quot;:2000},&quot;sw2MaxGB&quot;:2000,&quot;heHours&quot;:20000,&quot;mbpsOptions&quot;:[16,25,35,50,60,80,100,120,150,200,240,300,400,480,600,720,800],&quot;capOptions&quot;:[32,64,128,256,512,1000,2000],&quot;capName&quot;:{&quot;sdhc&quot;:&quot;SDHC&quot;,&quot;sdxc&quot;:&quot;SDXC&quot;,&quot;sduc&quot;:&quot;SDUC&quot;},&quot;fsName&quot;:{&quot;sdhc&quot;:&quot;FAT32&quot;,&quot;sdxc&quot;:&quot;exFAT&quot;,&quot;sduc&quot;:&quot;exFAT&quot;},&quot;cards&quot;:{&quot;sandisk_extreme_a2_256&quot;:{&quot;cat&quot;:&quot;microsd_uhs1&quot;,&quot;cap&quot;:256,&quot;marks&quot;:[&quot;U3&quot;,&quot;V30&quot;,&quot;A2&quot;],&quot;read&quot;:245,&quot;write&quot;:170,&quot;sustained&quot;:null,&quot;hours&quot;:null},&quot;samsung_express_256&quot;:{&quot;cat&quot;:&quot;microsd_express&quot;,&quot;cap&quot;:256,&quot;marks&quot;:[&quot;C10&quot;,&quot;V30&quot;,&quot;U3&quot;],&quot;read&quot;:800,&quot;write&quot;:null,&quot;sustained&quot;:null,&quot;hours&quot;:null},&quot;sandisk_express_256&quot;:{&quot;cat&quot;:&quot;microsd_express&quot;,&quot;cap&quot;:256,&quot;marks&quot;:[],&quot;read&quot;:880,&quot;write&quot;:650,&quot;sustained&quot;:210,&quot;hours&quot;:null},&quot;lexar_playpro_express_256&quot;:{&quot;cat&quot;:&quot;microsd_express&quot;,&quot;cap&quot;:256,&quot;marks&quot;:[],&quot;read&quot;:900,&quot;write&quot;:600,&quot;sustained&quot;:null,&quot;hours&quot;:null},&quot;samsung_pro_plus_256&quot;:{&quot;cat&quot;:&quot;microsd_uhs1&quot;,&quot;cap&quot;:256,&quot;marks&quot;:[&quot;C10&quot;,&quot;U3&quot;,&quot;V30&quot;,&quot;A2&quot;],&quot;read&quot;:180,&quot;write&quot;:130,&quot;sustained&quot;:null,&quot;hours&quot;:null},&quot;sandisk_high_endurance_256&quot;:{&quot;cat&quot;:&quot;microsd_endurance&quot;,&quot;cap&quot;:256,&quot;marks&quot;:[&quot;C10&quot;,&quot;U3&quot;,&quot;V30&quot;],&quot;read&quot;:100,&quot;write&quot;:40,&quot;sustained&quot;:null,&quot;hours&quot;:20000},&quot;sandisk_max_endurance_256&quot;:{&quot;cat&quot;:&quot;microsd_endurance&quot;,&quot;cap&quot;:256,&quot;marks&quot;:[&quot;C10&quot;,&quot;U3&quot;,&quot;V30&quot;],&quot;read&quot;:100,&quot;write&quot;:40,&quot;sustained&quot;:null,&quot;hours&quot;:120000},&quot;buffalo_a1_512&quot;:{&quot;cat&quot;:&quot;microsd_uhs1&quot;,&quot;cap&quot;:512,&quot;marks&quot;:[&quot;U1&quot;,&quot;V10&quot;,&quot;A1&quot;],&quot;read&quot;:100,&quot;write&quot;:null,&quot;sustained&quot;:null,&quot;hours&quot;:null}},&quot;slotIds&quot;:{&quot;switch2_express_256&quot;:[&quot;samsung_express_256&quot;,&quot;sandisk_express_256&quot;,&quot;lexar_playpro_express_256&quot;],&quot;video4k_v30_256&quot;:[&quot;sandisk_extreme_a2_256&quot;,&quot;samsung_pro_plus_256&quot;,&quot;sandisk_high_endurance_256&quot;,&quot;sandisk_max_endurance_256&quot;],&quot;phone_a1_256&quot;:[&quot;sandisk_extreme_a2_256&quot;,&quot;samsung_pro_plus_256&quot;,&quot;buffalo_a1_512&quot;],&quot;dashcam_endurance_256&quot;:[&quot;sandisk_high_endurance_256&quot;,&quot;sandisk_max_endurance_256&quot;]},&quot;videoIds&quot;:[&quot;sandisk_extreme_a2_256&quot;,&quot;samsung_pro_plus_256&quot;,&quot;sandisk_high_endurance_256&quot;,&quot;sandisk_max_endurance_256&quot;,&quot;buffalo_a1_512&quot;],&quot;buy&quot;:{&quot;samsung_express_256&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;Samsung microSD Express 256GB（Switch 2 用）&quot;,&quot;en&quot;:&quot;Samsung microSD Express 256GB for Nintendo Switch 2&quot;,&quot;jp&quot;:&quot;B0F54NFW3Y&quot;,&quot;us&quot;:&quot;B0F3VTCZK8&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0F54NFW3Y&quot;,&quot;asinUS&quot;:&quot;B0F3VTCZK8&quot;,&quot;title&quot;:&quot;Samsung microSD Express 256GB（Switch 2 用）&quot;,&quot;searchQuery&quot;:&quot;Samsung microSD Express 256GB（Switch 2 用）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ifEu2vW7L._AC_SY879_.jpg&quot;,&quot;jan&quot;:&quot;8806095700670&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0F54NFW3Y&quot;,&quot;asinUS&quot;:&quot;B0F3VTCZK8&quot;,&quot;title&quot;:&quot;Samsung microSD Express 256GB for Nintendo Switch 2&quot;,&quot;searchQuery&quot;:&quot;Samsung microSD Express 256GB for Nintendo Switch 2&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51+NEcdWJFL._SX466_.jpg&quot;}},&quot;rank_jp&quot;:0,&quot;rank_us&quot;:2},&quot;MB-MZ256S&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;Samsung microSD Express 256GB（Switch 2 用）&quot;,&quot;en&quot;:&quot;Samsung microSD Express 256GB for Nintendo Switch 2&quot;,&quot;jp&quot;:&quot;B0F54NFW3Y&quot;,&quot;us&quot;:&quot;B0F3VTCZK8&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0F54NFW3Y&quot;,&quot;asinUS&quot;:&quot;B0F3VTCZK8&quot;,&quot;title&quot;:&quot;Samsung microSD Express 256GB（Switch 2 用）&quot;,&quot;searchQuery&quot;:&quot;Samsung microSD Express 256GB（Switch 2 用）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ifEu2vW7L._AC_SY879_.jpg&quot;,&quot;jan&quot;:&quot;8806095700670&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0F54NFW3Y&quot;,&quot;asinUS&quot;:&quot;B0F3VTCZK8&quot;,&quot;title&quot;:&quot;Samsung microSD Express 256GB for Nintendo Switch 2&quot;,&quot;searchQuery&quot;:&quot;Samsung microSD Express 256GB for Nintendo Switch 2&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51+NEcdWJFL._SX466_.jpg&quot;}},&quot;rank_jp&quot;:0,&quot;rank_us&quot;:2},&quot;sandisk_express_256&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;SanDisk microSD Express 256GB&quot;,&quot;en&quot;:&quot;SanDisk microSD Express 256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DFQGVLYF&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DFQGVLYF&quot;,&quot;asinUS&quot;:&quot;B0DFQGVLYF&quot;,&quot;title&quot;:&quot;SanDisk microSD Express 256GB&quot;,&quot;searchQuery&quot;:&quot;SanDisk microSD Express 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71h8AjGvWOL._AC_SX425_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;SDSQXFN-256G-GN4NN&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;SanDisk microSD Express 256GB&quot;,&quot;en&quot;:&quot;SanDisk microSD Express 256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DFQGVLYF&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DFQGVLYF&quot;,&quot;asinUS&quot;:&quot;B0DFQGVLYF&quot;,&quot;title&quot;:&quot;SanDisk microSD Express 256GB&quot;,&quot;searchQuery&quot;:&quot;SanDisk microSD Express 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71h8AjGvWOL._AC_SX425_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;sandisk_extreme_a2_256&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;SanDisk Extreme microSD 256GB（SDSQXH9）&quot;,&quot;en&quot;:&quot;SanDisk Extreme microSD 256GB (SDSQXH9)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0G8M2FH2G&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0G8M2FH2G&quot;,&quot;asinUS&quot;:&quot;B0G8M2FH2G&quot;,&quot;title&quot;:&quot;SanDisk Extreme microSD 256GB (SDSQXH9)&quot;,&quot;searchQuery&quot;:&quot;SanDisk Extreme microSD 256GB (SDSQXH9)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61hSzpRypNL._AC_SX425_.jpg&quot;}},&quot;rank_us&quot;:4},&quot;SDSQXH9-256G-GZ6MA&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;SanDisk Extreme microSD 256GB（SDSQXH9）&quot;,&quot;en&quot;:&quot;SanDisk Extreme microSD 256GB (SDSQXH9)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0G8M2FH2G&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0G8M2FH2G&quot;,&quot;asinUS&quot;:&quot;B0G8M2FH2G&quot;,&quot;title&quot;:&quot;SanDisk Extreme microSD 256GB (SDSQXH9)&quot;,&quot;searchQuery&quot;:&quot;SanDisk Extreme microSD 256GB (SDSQXH9)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61hSzpRypNL._AC_SX425_.jpg&quot;}},&quot;rank_us&quot;:4},&quot;samsung_pro_plus_256&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;Samsung PRO Plus microSD 256GB&quot;,&quot;en&quot;:&quot;Samsung PRO Plus microSD 256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DQX53MMF&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DQX53MMF&quot;,&quot;asinUS&quot;:&quot;B0DQX53MMF&quot;,&quot;title&quot;:&quot;Samsung PRO Plus microSD 256GB&quot;,&quot;searchQuery&quot;:&quot;Samsung PRO Plus microSD 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71AO8q2pYlL._AC_SX425_.jpg&quot;}},&quot;rank_us&quot;:6},&quot;MB-MD256SA&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;Samsung PRO Plus microSD 256GB&quot;,&quot;en&quot;:&quot;Samsung PRO Plus microSD 256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DQX53MMF&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DQX53MMF&quot;,&quot;asinUS&quot;:&quot;B0DQX53MMF&quot;,&quot;title&quot;:&quot;Samsung PRO Plus microSD 256GB&quot;,&quot;searchQuery&quot;:&quot;Samsung PRO Plus microSD 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71AO8q2pYlL._AC_SX425_.jpg&quot;}},&quot;rank_us&quot;:6},&quot;sandisk_high_endurance_256&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;SanDisk High Endurance microSD 256GB&quot;,&quot;en&quot;:&quot;SanDisk High Endurance microSD 256GB&quot;,&quot;jp&quot;:&quot;B0B21BNJVY&quot;,&quot;us&quot;:&quot;B07P4HBRMV&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0B21BNJVY&quot;,&quot;asinUS&quot;:&quot;B07P4HBRMV&quot;,&quot;title&quot;:&quot;SanDisk High Endurance microSD 256GB&quot;,&quot;searchQuery&quot;:&quot;SanDisk High Endurance microSD 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71WIYULeCKL._AC_SX569_.jpg&quot;,&quot;jan&quot;:&quot;0619659173227&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0B21BNJVY&quot;,&quot;asinUS&quot;:&quot;B07P4HBRMV&quot;,&quot;title&quot;:&quot;SanDisk High Endurance microSD 256GB&quot;,&quot;searchQuery&quot;:&quot;SanDisk High Endurance microSD 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51Es0BaQE2L._AC_SX425_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:3},&quot;SDSQQNR-256G&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;SanDisk High Endurance microSD 256GB&quot;,&quot;en&quot;:&quot;SanDisk High Endurance microSD 256GB&quot;,&quot;jp&quot;:&quot;B0B21BNJVY&quot;,&quot;us&quot;:&quot;B07P4HBRMV&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0B21BNJVY&quot;,&quot;asinUS&quot;:&quot;B07P4HBRMV&quot;,&quot;title&quot;:&quot;SanDisk High Endurance microSD 256GB&quot;,&quot;searchQuery&quot;:&quot;SanDisk High Endurance microSD 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71WIYULeCKL._AC_SX569_.jpg&quot;,&quot;jan&quot;:&quot;0619659173227&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0B21BNJVY&quot;,&quot;asinUS&quot;:&quot;B07P4HBRMV&quot;,&quot;title&quot;:&quot;SanDisk High Endurance microSD 256GB&quot;,&quot;searchQuery&quot;:&quot;SanDisk High Endurance microSD 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51Es0BaQE2L._AC_SX425_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:3},&quot;kingston_go_plus_256&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;Kingston Canvas Go! Plus 256GB（Gen4）&quot;,&quot;en&quot;:&quot;Kingston Canvas Go! Plus 256GB（Gen4）&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F29YZWSM&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F29YZWSM&quot;,&quot;asinUS&quot;:&quot;B0F29YZWSM&quot;,&quot;title&quot;:&quot;Kingston Canvas Go! Plus 256GB（Gen4）&quot;,&quot;searchQuery&quot;:&quot;Kingston Canvas Go! Plus 256GB（Gen4）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71PA2wAOOYL._AC_SX425_.jpg&quot;}},&quot;rank_us&quot;:5},&quot;SDCG4/256GB&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;Kingston Canvas Go! Plus 256GB（Gen4）&quot;,&quot;en&quot;:&quot;Kingston Canvas Go! Plus 256GB（Gen4）&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F29YZWSM&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F29YZWSM&quot;,&quot;asinUS&quot;:&quot;B0F29YZWSM&quot;,&quot;title&quot;:&quot;Kingston Canvas Go! Plus 256GB（Gen4）&quot;,&quot;searchQuery&quot;:&quot;Kingston Canvas Go! Plus 256GB（Gen4）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71PA2wAOOYL._AC_SX425_.jpg&quot;}},&quot;rank_us&quot;:5},&quot;kingston_select_plus_256&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;Kingston Canvas Select Plus 256GB&quot;,&quot;en&quot;:&quot;Kingston Canvas Select Plus 256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FCZRCP67&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FCZRCP67&quot;,&quot;asinUS&quot;:&quot;B0FCZRCP67&quot;,&quot;title&quot;:&quot;Kingston Canvas Select Plus 256GB&quot;,&quot;searchQuery&quot;:&quot;Kingston Canvas Select Plus 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71JkfZ5xugL._SX522_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;SDCS3/256GB&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;Kingston Canvas Select Plus 256GB&quot;,&quot;en&quot;:&quot;Kingston Canvas Select Plus 256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FCZRCP67&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FCZRCP67&quot;,&quot;asinUS&quot;:&quot;B0FCZRCP67&quot;,&quot;title&quot;:&quot;Kingston Canvas Select Plus 256GB&quot;,&quot;searchQuery&quot;:&quot;Kingston Canvas Select Plus 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71JkfZ5xugL._SX522_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;buffalo_a1_512&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;バッファロー microSD 512GB RMSD-512U11HA/N&quot;,&quot;en&quot;:&quot;Buffalo microSD 512GB RMSD-512U11HA/N&quot;,&quot;jp&quot;:&quot;B0C5X8DP5G&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0C5X8DP5G&quot;,&quot;title&quot;:&quot;バッファロー microSD 512GB RMSD-512U11HA/N&quot;,&quot;searchQuery&quot;:&quot;バッファロー microSD 512GB RMSD-512U11HA/N&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61lAnUw3+0L._AC_SX569_.jpg&quot;,&quot;jan&quot;:&quot;4981254064160&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2},&quot;RMSD-512U11HA/N&quot;:{&quot;type&quot;:&quot;card&quot;,&quot;ja&quot;:&quot;バッファロー microSD 512GB RMSD-512U11HA/N&quot;,&quot;en&quot;:&quot;Buffalo microSD 512GB RMSD-512U11HA/N&quot;,&quot;jp&quot;:&quot;B0C5X8DP5G&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0C5X8DP5G&quot;,&quot;title&quot;:&quot;バッファロー microSD 512GB RMSD-512U11HA/N&quot;,&quot;searchQuery&quot;:&quot;バッファロー microSD 512GB RMSD-512U11HA/N&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61lAnUw3+0L._AC_SX569_.jpg&quot;,&quot;jan&quot;:&quot;4981254064160&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;card&quot;:&quot;samsung_express_256&quot;},&quot;en&quot;:{&quot;card&quot;:&quot;sandisk_express_256&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;microsd-card-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 値（速度クラスの最低書き込み速度・容量の区切りなど）は calc.mjs が data.json の facts から M に入れて渡す。

// 録画のビットレート（Mbps、メガビット毎秒）→ 必要な書き込み速度（MB/s、メガバイト毎秒）。1バイト = 8ビット
function mbsOf(mbps) {
  return mbps / 8;
}

// 必要な書き込み速度以上を「最低の書き込み速度」として決めている、いちばん下の表記（系統ごと）。
//   marks = [{ id: &quot;V30&quot;, min: 30 }, ...]（min の小さい順）。足りる表記が無ければ null
function lowestMark(mbs, marks) {
  return marks.find((m) =&gt; m.min &gt;= mbs - 1e-9) || null;
}

// 余裕（表記の最低の書き込み速度に対して、必要な書き込み速度がどれだけ下か）の割合。tightRatio 未満なら「ぎりぎり」
function marginRatio(mbs, mark) {
  return mark ? (mark.min - mbs) / mark.min : -Infinity;
}

// 動画の判定: ok = V30 以下の表記で余裕あり / cond = ぎりぎり、または V60・V90（UHS-II 以上のバスが要る）/ ng = V90 でも足りない
function videoFit(mbps, M) {
  const mbs = mbsOf(mbps);
  const v = lowestMark(mbs, M.vMarks);
  const u = lowestMark(mbs, M.uMarks);
  const c = mbs &lt;= M.c10 + 1e-9 ? &quot;C10&quot; : null;
  if (!v) return { mbs, v: null, u, c, status: &quot;ng&quot;, tight: false, uhs2: false };
  const tight = marginRatio(mbs, v) &lt; M.tightRatio;
  const uhs2 = M.uhs2Marks.includes(v.id);
  return { mbs, v, u, c, tight, uhs2, status: tight || uhs2 ? &quot;cond&quot; : &quot;ok&quot; };
}

// 容量（GB、カードの表記。1GB = 10億バイト）とビットレートから、録画できる時間（分、切り捨て）。
//   実際に使える容量は表記より少ないので、これは上限の目安
function minutesOf(capGB, mbps) {
  return Math.floor((capGB * 8000) / mbps / 60 + 1e-9);
}

// 容量の規格（SD Association の区切り）: 32GB までは SDHC、32GB を超え 2TB までは SDXC、2TB を超えると SDUC
function capClass(capGB, M) {
  if (capGB &lt;= M.sdhcMaxGB) return &quot;sdhc&quot;;
  if (capGB &lt;= M.sdxcMaxGB) return &quot;sdxc&quot;;
  return &quot;sduc&quot;;
}

// カードの表記が、必要な表記を満たすか（同じ系統の表記どうしで比べる。系統の違う表記は代わりにしない）
function cardMeets(card, need) {
  return (card.marks || []).some((id) =&gt; id[0] === need.id[0] &amp;&amp; Number(id.slice(1)) &gt;= Number(need.id.slice(1)));
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（使い方・録画のビットレート・容量）。カードは選ばせず、条件に合う買えるカードを1つ出す。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    use: &quot;使い方&quot;, mbps: &quot;録画のビットレート&quot;, cap: &quot;容量&quot;, mbpsKey: &quot;ビットレート&quot;,
    switch2: &quot;Switch 2&quot;, phone: &quot;スマホ&quot;, video: &quot;動画（カメラ）&quot;, dashcam: &quot;ドラレコ&quot;,
    need: (x) =&gt; `要る書き込み速度: ${x}MB/s（ビットレート ÷ 8）`,
    mark: (id, m) =&gt; `最低の表記: ビデオスピードクラス ${id}（最低 ${m}MB/s）`,
    uAlt: (id, m) =&gt; `UHS スピードクラスで指定する機器なら ${id}（最低 ${m}MB/s）`,
    cAlt: &quot;スピードクラスで指定する機器なら Class 10&quot;,
    family: &quot;系統の違う表記どうしは、期待どおりの速度が保証されません。機器の説明書と同じ系統の表記で選びます&quot;,
    uhs2: &quot;V60・V90 は UHS-II 以上のバスで使う表記です。機器とカードの両方が UHS-II に対応しているか確かめてください&quot;,
    tight: (x) =&gt; `余裕は${x}%で、ぎりぎりです`,
    over: (x) =&gt; `要る書き込み速度は V90 の最低 ${x}MB/s を超えます`,
    minutes: (c, x, h, m) =&gt; `${c} に録れる時間: 約${x}分（${h ? `約${h}時間${m}分。` : &quot;&quot;}上限の目安）`,
    loop: &quot;ドラレコは古い映像から上書きするので、これが上書きまでの長さの目安です&quot;,
    capClass: (c, k, fs) =&gt; `${c} は ${k}（${fs}）です`,
    sdxcHost: &quot;SDXC のカードは、SDXC か SDUC に対応した機器でしか使えません&quot;,
    sdhcHost: &quot;SDHC のカードは、SDHC 以上に対応した機器で使います&quot;,
    capNote: &quot;1GB を10億バイトとして計算しています。実際に使える容量は表記より少なくなります&quot;,
    sw2Only: &quot;Switch 2 で使える microSD は microSD Express だけです&quot;,
    sw2Cap: (x) =&gt; `容量は ${x} まで対応しています`,
    sw2Old: &quot;初代 Switch で使った普通の microSD では、ゲームとセーブデータを保存できません（画面写真と動画は取り出せます）&quot;,
    sw2First: &quot;microSD Express を初めて使うときは、インターネットでの本体の更新が要ります&quot;,
    a1: (r, w) =&gt; `A1 は、アプリの動作に効くランダムの読み出し ${r}IOPS・書き込み ${w}IOPS 以上`,
    a2: (r, w) =&gt; `A2 の最低は ${r}IOPS・${w}IOPS で、スマホも A2 に対応しているときだけ A2 の速さが出ます`,
    phoneCap: &quot;スマホが使える容量の上限は、機種の仕様で確かめてください&quot;,
    warranty: &quot;一般向けのカードには、ドラレコのような書き込みの多い使い方を保証の対象外にしているものがあります（Samsung PRO Plus・microSD Express）&quot;,
    endurance: (h) =&gt; `高耐久カードは録画時間を公表しています（SanDisk High Endurance 256GB は最大${h}時間。フルHD の場合）`,
    vSw2: &quot;○ microSD Express が要ります&quot;, vPhone: &quot;○ A1 以上の表記を選びます&quot;,
    vOk: (id) =&gt; `○ ${id} 以上の表記で足ります`, vTight: (id) =&gt; `△ ${id} でぎりぎり足ります`, vU2: (id) =&gt; `△ ${id} が要ります（UHS-II 以上）`, vNg: &quot;✕ V90 でも足りません&quot;,
    needL: (x) =&gt; `必要 ${x}MB/s`, stopTight: &quot;ぎりぎり&quot;, overBand: &quot;V90 超&quot;, gaugeCap: &quot;MB/s・目盛りは区切りごとに同じ幅&quot;, okL: (id, x) =&gt; `${id} の最低 ${x}MB/s`,
    note: &quot;結果は計算の目安です。要る書き込み速度はビットレート ÷ 8 で、録画中のビットレートの揺れは入れていません。表記の値は SD Association の表、Switch 2 は任天堂の米国サポートページによります。候補は、メーカーの公式ページで表記を確かめたカードから選んでいます。&quot;,
  },
  en: {
    use: &quot;Use&quot;, mbps: &quot;Recording bitrate&quot;, cap: &quot;Capacity&quot;, mbpsKey: &quot;Bitrate&quot;,
    switch2: &quot;Switch 2&quot;, phone: &quot;Phone&quot;, video: &quot;Video (camera)&quot;, dashcam: &quot;Dashcam&quot;,
    need: (x) =&gt; `Write speed needed: ${x} MB/s (bitrate ÷ 8)`,
    mark: (id, m) =&gt; `Lowest marking: Video Speed Class ${id} (at least ${m} MB/s)`,
    uAlt: (id, m) =&gt; `If your device specifies a UHS Speed Class: ${id} (at least ${m} MB/s)`,
    cAlt: &quot;If your device specifies a Speed Class: Class 10&quot;,
    family: &quot;Mixing symbol families isn&apos;t guaranteed to give the expected speed, so match the family in your device&apos;s manual&quot;,
    uhs2: &quot;V60 and V90 are meant for a UHS-II or faster bus. Check that both the device and the card support UHS-II&quot;,
    tight: (x) =&gt; `Only ${x}% to spare, so it&apos;s borderline`,
    over: (x) =&gt; `That&apos;s more than V90&apos;s minimum of ${x} MB/s`,
    minutes: (c, x, h, m) =&gt; `Recording time on ${c}: about ${x} min (${h ? `about ${h} h ${m} min, ` : &quot;&quot;}an upper estimate)`,
    loop: &quot;Dashcams overwrite the oldest footage, so this is roughly how far back it keeps&quot;,
    capClass: (c, k, fs) =&gt; `${c} is ${k} (${fs})`,
    sdxcHost: &quot;An SDXC card works only in devices that support SDXC or SDUC&quot;,
    sdhcHost: &quot;An SDHC card goes in devices that support SDHC or newer&quot;,
    capNote: &quot;This counts 1 GB as 1 billion bytes; usable space is a little less than the label&quot;,
    sw2Only: &quot;The Switch 2 only works with microSD Express cards&quot;,
    sw2Cap: (x) =&gt; `Supported up to ${x}`,
    sw2Old: &quot;A regular microSD card from the original Switch can&apos;t store games or save data (screenshots and videos can still be copied off)&quot;,
    sw2First: &quot;The first time you use a microSD Express card, the console needs a system update over the internet&quot;,
    a1: (r, w) =&gt; `A1 means at least ${r} random-read and ${w} random-write IOPS, which is what apps lean on`,
    a2: (r, w) =&gt; `A2 means at least ${r} and ${w} IOPS, but you only get A2 speed if the phone supports A2 too`,
    phoneCap: &quot;Check your phone&apos;s spec sheet for the largest card it takes&quot;,
    warranty: &quot;Some consumer cards exclude write-heavy use like dashcams from their warranty (Samsung PRO Plus and microSD Express)&quot;,
    endurance: (h) =&gt; `High-endurance cards publish a recording-hours rating (SanDisk High Endurance 256GB: up to ${h} hours, Full HD)`,
    vSw2: &quot;✓ You need microSD Express&quot;, vPhone: &quot;✓ Pick A1 or better&quot;,
    vOk: (id) =&gt; `✓ ${id} or better is enough`, vTight: (id) =&gt; `△ ${id} just covers it`, vU2: (id) =&gt; `△ You need ${id} (UHS-II or faster)`, vNg: &quot;✕ Even V90 falls short&quot;,
    needL: (x) =&gt; `Needs ${x} MB/s`, stopTight: &quot;borderline&quot;, overBand: &quot;Over V90&quot;, gaugeCap: &quot;MB/s · each band the same width&quot;, okL: (id, x) =&gt; `${id} minimum ${x} MB/s`,
    note: &quot;This is a calculated estimate. Write speed needed = bitrate ÷ 8, without allowing for bitrate swings while recording. Marking values come from the SD Association&apos;s tables, and the Switch 2 rules from Nintendo&apos;s US support page. Picks come from cards whose markings were confirmed on the maker&apos;s official page.&quot;,
  },
};

const capLabel_ = (c, lang) =&gt; (c &gt;= 1000 ? `${c / 1000}TB` : lang === &quot;ja&quot; ? `${c}GB` : `${c}GB`);
const n2_ = (x) =&gt; String(Number(x.toFixed(2)));

// スライダー（型 E）が止まる値: 早見表のよくあるビットレート（presets）・各ビデオスピードクラスの最低速度の Mbps（区切り）・
// その少し下のぎりぎりの点（余裕が tightRatio 未満になる最初の整数）。1 ずつは動かさない（2026-10 ユーザー指示）
const COMMON_ = [25, 50, 100, 150, 200, 240, 300, 400, 600, 800];
const MAJOR_ = [25, 50, 100, 200, 400, 800];
function mbpsStops_(M, lang) {
  const t = T_[lang] || T_.ja;
  const m = new Map();
  for (const x of COMMON_) m.set(x, { value: String(x), label: `${x}Mbps`, kind: &quot;common&quot; });
  for (const v of M.vMarks) {
    const cut = v.min * 8, b = Math.floor(cut * (1 - M.tightRatio)) + 1;
    m.set(cut, { value: String(cut), label: `${cut}Mbps`, kind: &quot;cut&quot;, tick: v.id, minorTick: v.id === &quot;V6&quot; || v.id === &quot;V60&quot; });
    if (!m.has(b)) m.set(b, { value: String(b), label: `${b}Mbps`, kind: &quot;tight&quot;, badge: t.stopTight });
  }
  return [...m.entries()].sort((a, b) =&gt; a[0] - b[0]).map(([x, o]) =&gt; (MAJOR_.includes(x) ? { ...o, major: String(x), minor: x === 50 || x === 200 } : o));
}

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;use&quot;, type: &quot;select&quot;, label: t.use, value: &quot;video&quot;, options: [&quot;switch2&quot;, &quot;phone&quot;, &quot;video&quot;, &quot;dashcam&quot;].map((x) =&gt; ({ value: x, label: t[x] })) },
    // ビットレートは、カメラの録画モードによくある値（動画とドラレコだけ）
    // gauge: 型 E のスライダー（いつも開いていて、意味のある値だけに止まる）
    { name: &quot;mbps&quot;, type: &quot;select&quot;, label: t.mbps, short: t.mbpsKey, value: &quot;100&quot;, gauge: true, when: (s) =&gt; s.use === &quot;video&quot; || s.use === &quot;dashcam&quot;, options: mbpsStops_(M, lang) },
    { name: &quot;cap&quot;, type: &quot;select&quot;, label: t.cap, value: &quot;256&quot;, options: M.capOptions.map((x) =&gt; ({ value: String(x), label: capLabel_(x, lang) })) },
  ];
}

function capLines_(cap, M, t, lang) {
  const k = capClass(cap, M);
  return [t.capClass(capLabel_(cap, lang), M.capName[k], M.fsName[k]), k === &quot;sdhc&quot; ? t.sdhcHost : t.sdxcHost];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const cap = Number(v.cap);
  if (!M.capOptions.includes(cap) || ![&quot;switch2&quot;, &quot;phone&quot;, &quot;video&quot;, &quot;dashcam&quot;].includes(v.use)) return { status: &quot;error&quot;, lines: [] };

  if (v.use === &quot;switch2&quot;) {
    const lines = [t.sw2Only, t.sw2Cap(capLabel_(M.sw2MaxGB, lang)), t.sw2Old, t.sw2First, ...capLines_(cap, M, t, lang)];
    return { status: &quot;ok&quot;, verdict: t.vSw2, lines, picks: M.slotIds.switch2_express_256 };
  }
  if (v.use === &quot;phone&quot;) {
    const lines = [t.a1(M.a1.r, M.a1.w), t.a2(M.a2.r, M.a2.w), ...capLines_(cap, M, t, lang), t.phoneCap];
    return { status: &quot;ok&quot;, verdict: t.vPhone, lines, picks: M.slotIds.phone_a1_256 };
  }

  const mbps = Number(v.mbps);
  if (!mbpsStops_(M, lang).some((o) =&gt; Number(o.value) === mbps)) return { status: &quot;error&quot;, lines: [] };
  const r = videoFit(mbps, M);
  const lines = [t.need(n2_(r.mbs))];
  const vmax = M.vMarks[M.vMarks.length - 1];
  let status = r.status, verdict, picks = [];
  if (!r.v) {
    lines.push(t.over(vmax.min));
    verdict = t.vNg;
  } else {
    lines.push(t.mark(r.v.id, r.v.min));
    if (r.u) lines.push(t.uAlt(r.u.id, r.u.min));
    if (r.c) lines.push(t.cAlt);
    if (r.u || r.c) lines.push(t.family);
    if (r.uhs2) lines.push(t.uhs2);
    // 余裕は切り捨て（甘い方向に丸めない）
    if (r.tight) lines.push(t.tight(Math.max(0, Math.floor(marginRatio(r.mbs, r.v) * 1000 + 1e-9) / 10)));
    verdict = r.uhs2 ? t.vU2(r.v.id) : r.tight ? t.vTight(r.v.id) : t.vOk(r.v.id);
    // 候補: カード自身のメーカー公表の表記（V○○）が、要る表記以上のもの。ドラレコは高耐久カードの枠から
    const pool = v.use === &quot;dashcam&quot; ? M.slotIds.dashcam_endurance_256 : M.videoIds;
    picks = pool.filter((id) =&gt; M.cards[id] &amp;&amp; cardMeets(M.cards[id], r.v));
  }
  const mins = minutesOf(cap, mbps);
  lines.push(t.minutes(capLabel_(cap, lang), mins.toLocaleString(&quot;en-US&quot;), Math.floor(mins / 60), mins % 60));
  if (v.use === &quot;dashcam&quot;) lines.push(t.loop, t.warranty, t.endurance(M.heHours.toLocaleString(&quot;en-US&quot;)));
  lines.push(...capLines_(cap, M, t, lang), t.capNote);
  // メーター: 要る書き込み速度と、答えの表記の最低書き込み速度（V90 でも足りなければ V90 の値）
  const ref = r.v || vmax;
  const max = Math.ceil((Math.max(r.mbs, ref.min) * 1.25) / 10) * 10;
  const meter = { min: 0, max, value: Math.min(r.mbs, max), ok: [0, ref.min], unit: &quot;MB/s&quot;, valueLabel: t.needL(n2_(r.mbs)), okLabel: t.okL(ref.id, ref.min) };
  // 型 E の目盛り: 区切り（各クラスの最低の書き込み速度）ごとの帯と、要る書き込み速度
  const gauge = { cuts: M.vMarks.map((x) =&gt; ({ id: x.id, min: x.min })), value: r.mbs, valueLabel: t.needL(n2_(r.mbs)), status, tightRatio: M.tightRatio, overLabel: t.overBand, caption: t.gaugeCap };
  return { status, verdict, lines, picks, meter, gauge };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（使い方ごとと、よくあるビットレート）
function presets() {
  const V = (mbps, cap = &quot;256&quot;) =&gt; ({ use: &quot;video&quot;, mbps: String(mbps), cap });
  return [
    { use: &quot;switch2&quot;, cap: &quot;256&quot; }, { use: &quot;phone&quot;, cap: &quot;256&quot; },
    V(50), V(100), V(150), V(200), V(240), V(300), V(400), V(600), V(800), V(100, &quot;128&quot;),
    { use: &quot;dashcam&quot;, mbps: &quot;25&quot;, cap: &quot;256&quot; }, { use: &quot;dashcam&quot;, mbps: &quot;50&quot;, cap: &quot;128&quot; },
  ];
}

// カードに出す仕様（そのカードのメーカー公表の表記・速度・容量。絞り込みの条件＝要る表記は出さない）
function pickSpecs(id, v, M, lang) {
  const c = M.cards[id];
  if (!c) return [];
  const ja = lang === &quot;ja&quot;;
  const out = [];
  const kind = c.cat === &quot;microsd_express&quot; ? &quot;microSD Express&quot; : c.cat === &quot;microsd_endurance&quot; ? (ja ? &quot;高耐久&quot; : &quot;High endurance&quot;) : &quot;UHS-I&quot;;
  out.push(`${capLabel_(c.cap, lang)}・${kind}`.replace(&quot;・&quot;, ja ? &quot;・&quot; : &quot;, &quot;));
  if (c.marks.length) out.push(c.marks.map((m) =&gt; (m === &quot;C10&quot; ? &quot;Class 10&quot; : m)).join(ja ? &quot;・&quot; : &quot;, &quot;));
  const sp = [];
  if (c.read) sp.push(ja ? `読み出し ${c.read}MB/s` : `${c.read} MB/s read`);
  if (c.write) sp.push(ja ? `書き込み ${c.write}MB/s` : `${c.write} MB/s write`);
  if (sp.length) out.push(ja ? `最大 ${sp.join(&quot;・&quot;)}（メーカー公表）` : `Up to ${sp.join(&quot;, &quot;)} (maker rating)`);
  if (c.hours) out.push(ja ? `録画 最大${c.hours.toLocaleString(&quot;en-US&quot;)}時間（フルHD）` : `Up to ${c.hours.toLocaleString(&quot;en-US&quot;)} recording hours (Full HD)`);
  return out;
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;gauge&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;dashcams-need-a-high-endurance-card&quot;&gt;Dashcams need a high-endurance card&lt;/h2&gt;
&lt;p&gt;Put high-endurance cards first for a dashcam. There are two reasons.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Per Samsung’s official pages, Samsung’s consumer PRO Plus and microSD Express cards exclude dashcams, security cameras and other write-heavy use from their warranty&lt;/li&gt;
&lt;li&gt;Per SanDisk’s official pages, the SanDisk High Endurance 256GB is rated for up to 20,000 hours of recording. That’s for Full HD; 4K gets fewer hours&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The official pages give no lifespan in years.&lt;/p&gt;
&lt;h2 id=&quot;capacity-speed-marks-and-buses&quot;&gt;Capacity, speed marks and buses&lt;/h2&gt;
&lt;h3 id=&quot;which-capacity-works-in-my-device&quot;&gt;Which capacity works in my device?&lt;/h3&gt;
&lt;p&gt;Per the SD Association, the capacity standards are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SDHC: above 2 GB up to 32 GB&lt;/li&gt;
&lt;li&gt;SDXC: above 32 GB up to 2 TB, for devices that support SDXC or SDUC&lt;/li&gt;
&lt;li&gt;SDUC: above 2 TB up to 128 TB&lt;/li&gt;
&lt;li&gt;SDHC cards use FAT32, and SDXC and SDUC cards use exFAT&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;which-speed-marking-do-i-match&quot;&gt;Which speed marking do I match?&lt;/h3&gt;
&lt;p&gt;Class 10, U1 and V10 all list 10 MB/s on paper, but mixing symbol families isn’t guaranteed to give the expected write speed. Match the family your device asks for.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;U3 and V30: at least 30 MB/s&lt;/li&gt;
&lt;li&gt;V60: at least 60 MB/s&lt;/li&gt;
&lt;li&gt;V90: at least 90 MB/s&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For recording, look at the write figure, not the read figure.&lt;/p&gt;
&lt;p&gt;A speed class is the standard way a card states a minimum write speed. Some makers also state one for a card, such as SanDisk’s 210 MB/s for its microSD Express 256GB.&lt;/p&gt;
&lt;h3 id=&quot;does-a-faster-card-or-bus-help&quot;&gt;Does a faster card or bus help?&lt;/h3&gt;
&lt;p&gt;An “up to” speed is a maximum, not a minimum. The same SanDisk Extreme (SDSQXH9) is rated up to 170 MB/s write at 256GB but 120 MB/s at 128GB. Both are maximums.&lt;/p&gt;
&lt;p&gt;A bigger card is not necessarily slower. In that example, the larger card has the higher maximum write speed.&lt;/p&gt;
&lt;p&gt;The bus is the path between the device and the card: UHS-I, then UHS-II, then SD Express, from slowest to fastest. A slow bus in the device holds back a fast card.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-condition&quot;&gt;Picks by condition&lt;/h2&gt;
&lt;p&gt;Check that your device accepts the capacity before you buy. The conditions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The maker’s official page lists the markings&lt;/li&gt;
&lt;li&gt;Sold new by Amazon.com or the maker&lt;/li&gt;
&lt;li&gt;At least 100 ratings and 4 stars or more&lt;/li&gt;
&lt;li&gt;Not a marked-up third-party import&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Among current models from major brands, each pick is the cheapest listing that met these. Check prices on the store.&lt;/p&gt;
&lt;h3 id=&quot;switch-2&quot;&gt;Switch 2&lt;/h3&gt;
&lt;p&gt;It is marked microSD Express, with up to 650 MB/s write.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for SanDisk microSD Express 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71h8AjGvWOL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;SanDisk microSD Express 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DFQGVLYF?q=SanDisk+microSD+Express+256GB&amp;amp;us=B0DFQGVLYF&amp;amp;l=en&quot; aria-label=&quot;View SanDisk microSD Express 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Whether the rating count is shared with other models on the listing wasn&amp;#39;t checked.&lt;/p&gt;
&lt;h3 id=&quot;video-up-to-240-mbps&quot;&gt;Video up to 240 Mbps&lt;/h3&gt;
&lt;p&gt;V30 is marked, and it is built for dashcams and security cameras. Recording from above 216 Mbps up to 240 Mbps is borderline.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for SanDisk High Endurance microSD 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/51Es0BaQE2L._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;SanDisk High Endurance microSD 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0B21BNJVY?q=SanDisk+High+Endurance+microSD+256GB&amp;amp;us=B07P4HBRMV&amp;amp;l=en&quot; aria-label=&quot;View SanDisk High Endurance microSD 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;phone&quot;&gt;Phone&lt;/h3&gt;
&lt;p&gt;A2, U3 and V30 are marked. A2 only helps if your phone supports it.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for SanDisk Extreme microSD 256GB (SDSQXH9)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61hSzpRypNL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;SanDisk Extreme microSD 256GB (SDSQXH9)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0G8M2FH2G?q=SanDisk+Extreme+microSD+256GB+%28SDSQXH9%29&amp;amp;us=B0G8M2FH2G&amp;amp;l=en&quot; aria-label=&quot;View SanDisk Extreme microSD 256GB (SDSQXH9) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;dashcam-or-security-camera&quot;&gt;Dashcam or security camera&lt;/h3&gt;
&lt;p&gt;It is a high-endurance card whose maker publishes recording hours.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for SanDisk High Endurance microSD 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/51Es0BaQE2L._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;SanDisk High Endurance microSD 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0B21BNJVY?q=SanDisk+High+Endurance+microSD+256GB&amp;amp;us=B07P4HBRMV&amp;amp;l=en&quot; aria-label=&quot;View SanDisk High Endurance microSD 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;which-microsd-card-works-with-the-nintendo-switch-2&quot;&gt;Which microSD card works with the Nintendo Switch 2?&lt;/h3&gt;
&lt;p&gt;Per Nintendo’s US support page, the Nintendo Switch 2 only works with microSD cards built to the SD Express standard, up to 2 TB.&lt;/p&gt;
&lt;h3 id=&quot;are-class-10-u1-and-v10-the-same&quot;&gt;Are Class 10, U1 and V10 the same?&lt;/h3&gt;
&lt;p&gt;Class 10, U1 and V10 all list 10 MB/s on paper, but mixing symbol families isn’t guaranteed to give the expected write speed. Match the family your device asks for.&lt;/p&gt;
&lt;h3 id=&quot;how-do-i-choose-between-v30-v60-and-v90&quot;&gt;How do I choose between V30, V60 and V90?&lt;/h3&gt;
&lt;p&gt;In this calculation, recording at up to 240 Mbps is covered by a V30 card (at least 30 MB/s). Above 216 Mbps up to 240 Mbps the headroom is under 10%, so it’s borderline.&lt;/p&gt;
&lt;p&gt;Above that, see the table for V60 and V90.&lt;/p&gt;
&lt;h3 id=&quot;is-the-up-to-speed-printed-on-a-card-guaranteed&quot;&gt;Is the “up to” speed printed on a card guaranteed?&lt;/h3&gt;
&lt;p&gt;No. An “up to” speed is a maximum, not a minimum. A speed class is the standard way a card states a minimum write speed, and some makers also state one for a specific card.&lt;/p&gt;
&lt;p&gt;One SanDisk card line is rated up to 170 MB/s write at 256GB but 120 MB/s at 128GB. Both are maximums.&lt;/p&gt;
&lt;h3 id=&quot;do-i-need-an-a2-microsd-card-for-my-phone&quot;&gt;Do I need an A2 microSD card for my phone?&lt;/h3&gt;
&lt;p&gt;Check that your phone supports A2 before you pay for it. Per the SD Association, A1 and A2 are markings for running apps.&lt;/p&gt;
&lt;p&gt;IOPS is how many small reads or writes a card can do per second. You only get A2 speed when the device supports A2 too.&lt;/p&gt;
&lt;h3 id=&quot;does-a-dashcam-need-a-high-endurance-card&quot;&gt;Does a dashcam need a high-endurance card?&lt;/h3&gt;
&lt;p&gt;Put high-endurance cards first for a dashcam. Per Samsung’s official pages, some of Samsung’s consumer cards exclude dashcams, security cameras and other write-heavy use from their warranty.&lt;/p&gt;
&lt;p&gt;Per SanDisk’s official pages, one of its high-endurance 256GB cards is rated for up to 20,000 hours of recording. That’s for Full HD; 4K gets fewer hours.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Worked out from the official pages of the SD Association and the makers as of October 2026. No card was tested in person.&lt;/p&gt;&lt;p&gt;Sources: &lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;SD Association speed class&lt;/a&gt; ／ &lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/application-performance-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;SD Association application performance class&lt;/a&gt; ／ &lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/bus-speed-default-speed-high-speed-uhs-sd-express/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;SD Association bus speed&lt;/a&gt; ／ &lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/capacity-sd-sdhc-sdxc-sduc/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;SD Association capacity standards&lt;/a&gt; ／ &lt;a href=&quot;https://en-americas-support.nintendo.com/app/answers/detail/a_id/68425&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Nintendo Switch 2 microSD (US)&lt;/a&gt; ／ &lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-extreme-uhs-i-microsd-a2?sku=SDSQXH9-256G-GZ6MA&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;SanDisk Extreme&lt;/a&gt; ／ &lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-high-endurance-uhs-i-microsd&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;SanDisk High Endurance&lt;/a&gt; ／ &lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-microsd-express-memory-card?sku=SDSQXFN-256G-GN4NN&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;SanDisk microSD Express&lt;/a&gt; ／ &lt;a href=&quot;https://download.semiconductor.samsung.com/resources/data-sheet/2025_Datasheet_Samsung_microSD_Express_Card_256GB_for_Nintendo_Switch_2.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Samsung microSD Express datasheet&lt;/a&gt; ／ &lt;a href=&quot;https://www.samsung.com/ca/memory-storage/memory-card/pro-plus-microsd-256gb-mb-md256sa-ca/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Samsung PRO Plus&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Write speed needed (MB/s) = recording bitrate (Mbps) ÷ 8. The bitrate is the device’s rated value for the recording mode; swings during recording aren’t modeled.&lt;/li&gt;
&lt;li&gt;The lowest marking is the lowest symbol in the SD Association’s speed class table whose minimum write speed is at least the speed needed. Video Speed Class: V6 = 6 MB/s, V10 = 10 MB/s, V30 = 30 MB/s, V60 = 60 MB/s, V90 = 90 MB/s; UHS Speed Class: U1 = 10 MB/s, U3 = 30 MB/s; Speed Class: Class 10 = 10 MB/s (read from the table image on the official page). The bitrate limits are 240 Mbps for V30, 480 Mbps for V60 and 720 Mbps for V90. If the headroom (marking minimum − speed needed) ÷ marking minimum is under 10%, it’s marked borderline (this article’s own threshold).&lt;/li&gt;
&lt;li&gt;The SD Association says combinations across symbol families (for example a Class 10 host with a U1 card) aren’t guaranteed to give the expected write speed, so different families aren’t treated as interchangeable. V60 and V90 are meant for a UHS-II or faster bus, so they’re shown as conditional.&lt;/li&gt;
&lt;li&gt;Recording time (minutes) = capacity (GB) × 8000 ÷ bitrate (Mbps) ÷ 60, rounded down. 1 GB counts as 1 billion bytes (as in SanDisk’s footnotes and on card labels); the space lost to the file system isn’t subtracted, so it’s an upper estimate.&lt;/li&gt;
&lt;li&gt;Capacity classes follow the SD Association’s table (SDHC above 2GB up to 32 GB, FAT32; SDXC above 32GB up to 2 TB, exFAT; SDUC above 2TB up to 128 TB). A1 and A2 follow the Application Performance Class table (A1: 1500 IOPS random read, 500 IOPS random write; A2: 4000 IOPS and 2000 IOPS; both 10 MB/s sustained write). The Switch 2 rules come from Nintendo’s US support page (microSD Express only, up to 2 TB).&lt;/li&gt;
&lt;li&gt;Makers’ read and write speeds are maximums, not guarantees. Picks are cards whose markings were confirmed on the maker’s official page or datasheet, among new listings sold by Amazon or the maker directly with at least 100 ratings and 4 stars, where the model bought matches the official model number; the cheapest including shipping is chosen. No card was tested in person.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;




































































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;SDHC capacity upper limit&lt;/td&gt;&lt;td&gt;32 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/capacity-sd-sdhc-sdxc-sduc/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Capacity table: SDHC more than 2GB up to 32GB (FAT32); SDXC more than 32GB up to&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SDXC capacity lower bound (more than this)&lt;/td&gt;&lt;td&gt;32 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/capacity-sd-sdhc-sdxc-sduc/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Capacity table: SDHC more than 2GB up to 32GB (FAT32); SDXC more than 32GB up to&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SDXC capacity upper limit&lt;/td&gt;&lt;td&gt;2 TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/capacity-sd-sdhc-sdxc-sduc/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Capacity table: SDHC more than 2GB up to 32GB (FAT32); SDXC more than 32GB up to&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SDUC capacity upper limit (more than 2TB)&lt;/td&gt;&lt;td&gt;128 TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/capacity-sd-sdhc-sdxc-sduc/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Capacity table: SDHC more than 2GB up to 32GB (FAT32); SDXC more than 32GB up to&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SDHC file system&lt;/td&gt;&lt;td&gt;FAT32&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/capacity-sd-sdhc-sdxc-sduc/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Capacity table: SDHC more than 2GB up to 32GB (FAT32); SDXC more than 32GB up to&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SDXC and SDUC file system&lt;/td&gt;&lt;td&gt;exFAT&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/capacity-sd-sdhc-sdxc-sduc/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Capacity table: SDHC more than 2GB up to 32GB (FAT32); SDXC more than 32GB up to&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hosts that accept an SDXC card&lt;/td&gt;&lt;td&gt;SDXC card works in SDXC and SDUC hosts only&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/consumers/about-sd-memory-card-choices/sd-sdhc-sdxc-and-sduc-card-capacity-choices/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; SDXC memory cards can be used with SDXC devices and SDUC Host Devices&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UHS-I bus speed (SDR104)&lt;/td&gt;&lt;td&gt;104 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/bus-speed-default-speed-high-speed-uhs-sd-express/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Bus speed table (re-read on the original page, 2026-10-08)&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UHS-II bus speed (full duplex)&lt;/td&gt;&lt;td&gt;156 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/bus-speed-default-speed-high-speed-uhs-sd-express/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Bus speed table (re-read on the original page, 2026-10-08)&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UHS-II bus speed (half duplex)&lt;/td&gt;&lt;td&gt;312 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/bus-speed-default-speed-high-speed-uhs-sd-express/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Bus speed table (re-read on the original page, 2026-10-08)&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UHS-III bus speed (full duplex, lower)&lt;/td&gt;&lt;td&gt;312 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/bus-speed-default-speed-high-speed-uhs-sd-express/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Bus speed table (re-read on the original page, 2026-10-08)&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UHS-III bus speed (full duplex, upper)&lt;/td&gt;&lt;td&gt;624 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/bus-speed-default-speed-high-speed-uhs-sd-express/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Bus speed table (re-read on the original page, 2026-10-08)&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SD Express bus speed (PCIe Gen3 x1)&lt;/td&gt;&lt;td&gt;985 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/bus-speed-default-speed-high-speed-uhs-sd-express/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Bus speed table (re-read on the original page, 2026-10-08)&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SD Express bus speed (PCIe Gen4 x1)&lt;/td&gt;&lt;td&gt;1970 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/bus-speed-default-speed-high-speed-uhs-sd-express/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Bus speed table (re-read on the original page, 2026-10-08)&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SD Express bus speed (PCIe Gen4 x2)&lt;/td&gt;&lt;td&gt;3940 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/bus-speed-default-speed-high-speed-uhs-sd-express/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Bus speed table (re-read on the original page, 2026-10-08)&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Class 2 minimum write speed&lt;/td&gt;&lt;td&gt;2 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Class 4 minimum write speed&lt;/td&gt;&lt;td&gt;4 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Class 6 minimum write speed&lt;/td&gt;&lt;td&gt;6 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Class 10 minimum write speed&lt;/td&gt;&lt;td&gt;10 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UHS Speed Class U1 minimum write speed&lt;/td&gt;&lt;td&gt;10 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;U3 minimum write speed&lt;/td&gt;&lt;td&gt;30 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video Speed Class V6 minimum write speed&lt;/td&gt;&lt;td&gt;6 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;V10 minimum write speed&lt;/td&gt;&lt;td&gt;10 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;V30 minimum write speed&lt;/td&gt;&lt;td&gt;30 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;V60 minimum write speed&lt;/td&gt;&lt;td&gt;60 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;V90 minimum write speed&lt;/td&gt;&lt;td&gt;90 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SD Express Speed Class E150 minimum write speed&lt;/td&gt;&lt;td&gt;150 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;E300 minimum write speed&lt;/td&gt;&lt;td&gt;300 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;E450 minimum write speed&lt;/td&gt;&lt;td&gt;450 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;E600 minimum write speed&lt;/td&gt;&lt;td&gt;600 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Table image (SpeedClass9.1EN.png, opened 2026-10-08): minimum sequential write s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Matching host and card speed class symbols&lt;/td&gt;&lt;td&gt;Choose the same or higher class symbol than the host’s; different symbol families are not guaranteed to substitute (e.g. host Class 10 with a U1 card)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Best Combination between Speed Class Host and Card&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bus mode needed for V60 / V90&lt;/td&gt;&lt;td&gt;V60 and V90 are used in UHS-II mode or faster; U1/U3 in SDR50/DDR50 or faster; E-classes in SD Express mode&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/speed-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Regarding bus mode, it is necessary to use a bus mode fast enough that does not&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A1 minimum random read&lt;/td&gt;&lt;td&gt;1500 IOPS&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/application-performance-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Specification table image (img_application.jpg, opened 2026-10-08): A1 1500 / 50&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A1 minimum random write&lt;/td&gt;&lt;td&gt;500 IOPS&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/application-performance-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Specification table image (img_application.jpg, opened 2026-10-08): A1 1500 / 50&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A2 minimum random read&lt;/td&gt;&lt;td&gt;4000 IOPS&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/application-performance-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Specification table image (img_application.jpg, opened 2026-10-08): A1 1500 / 50&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A2 minimum random write&lt;/td&gt;&lt;td&gt;2000 IOPS&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/application-performance-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Specification table image (img_application.jpg, opened 2026-10-08): A1 1500 / 50&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A1/A2 minimum sustained sequential write&lt;/td&gt;&lt;td&gt;10 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/application-performance-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Specification table image (img_application.jpg, opened 2026-10-08): A1 1500 / 50&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;When A2 performance is available&lt;/td&gt;&lt;td&gt;A2 performance is available only with an A2-capable host and an A2 card; at least A1 performance is available with A1 and A2 combinations&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sdcard.org/developers/sd-standard-overview/application-performance-class/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sdcard.org&lt;/a&gt; Specification table image (img_application.jpg, opened 2026-10-08): A1 1500 / 50&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;microSD cards usable in Switch 2&lt;/td&gt;&lt;td&gt;Nintendo Switch 2 is only compatible with microSD Express cards&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://en-americas-support.nintendo.com/app/answers/detail/a_id/68425&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;en-americas-support.nintendo.com&lt;/a&gt; ‘Nintendo Switch 2 is only compatible with microSD Express cards.’ (opened 2026-&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Old Switch microSD in Switch 2&lt;/td&gt;&lt;td&gt;A microSD card used with Nintendo Switch cannot save or load digital games or save data on Switch 2; screenshots and videos from the original Switch can still be retrieved&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://en-americas-support.nintendo.com/app/answers/detail/a_id/68425&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;en-americas-support.nintendo.com&lt;/a&gt; Inserting a microSD card previously used on a Nintendo Switch console into Switc&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Switch 2 microSD Express capacity limit&lt;/td&gt;&lt;td&gt;2 TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://en-americas-support.nintendo.com/app/answers/detail/a_id/68425&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;en-americas-support.nintendo.com&lt;/a&gt; microSD Express cards with a capacity of up to 2TB are supported&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;First-use system update&lt;/td&gt;&lt;td&gt;A system update via the internet is required the first time a microSD Express card is used&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://en-americas-support.nintendo.com/app/answers/detail/a_id/68425&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;en-americas-support.nintendo.com&lt;/a&gt; Please note: a system update via the internet is required the first time you use&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Express card in the original Switch&lt;/td&gt;&lt;td&gt;On a Nintendo Switch console a microSD Express card reads and writes at the speed of a microSD card&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://en-americas-support.nintendo.com/app/answers/detail/a_id/68425&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;en-americas-support.nintendo.com&lt;/a&gt; On a Nintendo Switch console, the data reading and writing speed for a microSD E&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SanDisk Extreme (SDSQXH9) 256GB max read&lt;/td&gt;&lt;td&gt;245 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-extreme-uhs-i-microsd-a2?sku=SDSQXH9-256G-GZ6MA&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; [256GB-1TB] Up to 245MB/s read speed (beyond UHS-I 104MB/s; compatible devices r&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SanDisk Extreme (SDSQXH9) 256GB max write&lt;/td&gt;&lt;td&gt;170 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-extreme-uhs-i-microsd-a2?sku=SDSQXH9-256G-GZ6MA&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; [256GB-1TB] Up to 170MB/s write speed&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Same card, 128GB max write (varies by capacity)&lt;/td&gt;&lt;td&gt;120 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-extreme-uhs-i-microsd-a2?sku=SDSQXH9-256G-GZ6MA&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; [128GB] Up to 120MB/s write speed&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Previous Extreme 128GB max write&lt;/td&gt;&lt;td&gt;90 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-extreme-uhs-i-microsd&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; Footnote: For 128GB: Up to 90MB/s write speeds (256GB-1TB: up to 130MB/s)&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SanDisk High Endurance max read&lt;/td&gt;&lt;td&gt;100 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-high-endurance-uhs-i-microsd&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; Up to 100MB/s read speed&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SanDisk High Endurance max write&lt;/td&gt;&lt;td&gt;40 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-high-endurance-uhs-i-microsd&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; Up to 40MB/s write speed&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SanDisk High Endurance 256GB recording hours (Full HD only, up to)&lt;/td&gt;&lt;td&gt;20000 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-high-endurance-uhs-i-microsd&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; Up to 20,000 hours for 256GB. Full HD video only; total hours less for 4K UHD vi&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SanDisk MAX ENDURANCE 256GB recording hours (Full HD only, up to)&lt;/td&gt;&lt;td&gt;120000 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-max-endurance-uhs-i-microsd&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; Up to 120,000 hours/over 13 years for 256GB. Full HD video only&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SanDisk MAX ENDURANCE max write&lt;/td&gt;&lt;td&gt;40 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-max-endurance-uhs-i-microsd&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; Up to 100MB/s read speed, up to 40MB/s write speed&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SanDisk microSD Express 256GB max write&lt;/td&gt;&lt;td&gt;650 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-microsd-express-memory-card?sku=SDSQXFN-256G-GN4NN&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; [256GB] Up to 880MB/s read, up to 650MB/s write&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SanDisk microSD Express 256GB minimum sustained write&lt;/td&gt;&lt;td&gt;210 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-microsd-express-memory-card?sku=SDSQXFN-256G-GN4NN&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; [256GB] 210MB/s minimum sustained write speed&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Same card 512GB minimum sustained write&lt;/td&gt;&lt;td&gt;220 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/memory-cards/microsd-cards/sandisk-microsd-express-memory-card?sku=SDSQXFN-256G-GN4NN&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; [512GB] 220MB/s minimum sustained write; [1TB] 745MB/s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung microSD Express 256GB max read&lt;/td&gt;&lt;td&gt;800 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://download.semiconductor.samsung.com/resources/data-sheet/2025_Datasheet_Samsung_microSD_Express_Card_256GB_for_Nintendo_Switch_2.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;download.semiconductor.samsung.com&lt;/a&gt; Sequential Read Speed (SD Express) 800 MB/s, (UHS-I) 90 MB/s; Speed Class Class&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Same card read speed in UHS-I mode&lt;/td&gt;&lt;td&gt;90 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://download.semiconductor.samsung.com/resources/data-sheet/2025_Datasheet_Samsung_microSD_Express_Card_256GB_for_Nintendo_Switch_2.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;download.semiconductor.samsung.com&lt;/a&gt; Sequential Read Speed (UHS-I) 90 MB/s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lexar PLAY PRO Express max read&lt;/td&gt;&lt;td&gt;900 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://americas.lexar.com/?p=7581&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;americas.lexar.com&lt;/a&gt; Up to 900MB/s read and 600MB/s write&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lexar PLAY PRO Express max write&lt;/td&gt;&lt;td&gt;600 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://americas.lexar.com/?p=7581&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;americas.lexar.com&lt;/a&gt; Up to 900MB/s read and 600MB/s write&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung PRO Plus 256GB max read&lt;/td&gt;&lt;td&gt;180 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/ca/memory-storage/memory-card/pro-plus-microsd-256gb-mb-md256sa-ca/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Read: up to 180MB/s, Write: up to 130MB/s; Speed Class U3, V30, A2&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung PRO Plus 256GB max write&lt;/td&gt;&lt;td&gt;130 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/ca/memory-storage/memory-card/pro-plus-microsd-256gb-mb-md256sa-ca/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Read: up to 180MB/s, Write: up to 130MB/s&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dashcam use excluded from warranty on consumer cards&lt;/td&gt;&lt;td&gt;Samsung’s warranty for PRO Plus and microSD Express does not extend to dashcam, CCTV, surveillance and other write-intensive uses&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/ca/memory-storage/memory-card/pro-plus-microsd-256gb-mb-md256sa-ca/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Warranty does not extend to dashcam, CCTV, surveillance camera and other write-i&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;How card capacity is labeled (1 GB = 1 billion bytes)&lt;/td&gt;&lt;td&gt;1GB = 1,000,000,000 bytes (1TB = 1 trillion bytes); actual usable capacity is less&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/ja-jp/products/memory-cards/microsd-cards/sandisk-extreme-uhs-i-microsd&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Which microSD marking you need (from the use and bitrate): quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;















































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Switch 2, 256GB&lt;/td&gt;&lt;td&gt;✓ You need microSD Express. The Switch 2 only works with microSD Express cards. Supported up to 2TB. A regular microSD card from the original Switch can’t store games or save data (screenshots and videos can still be copied off). The first time you use a microSD Express card, the console needs a system update over the internet. 256GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=switch2&amp;amp;microsd-card-calc-cap=256#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Phone, 256GB&lt;/td&gt;&lt;td&gt;✓ Pick A1 or better. A1 means at least 1500 random-read and 500 random-write IOPS, which is what apps lean on. A2 means at least 4000 and 2000 IOPS, but you only get A2 speed if the phone supports A2 too. 256GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC. Check your phone’s spec sheet for the largest card it takes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=phone&amp;amp;microsd-card-calc-cap=256#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video (camera), 50Mbps, 256GB&lt;/td&gt;&lt;td&gt;✓ V10 or better is enough. Write speed needed: 6.25 MB/s (bitrate ÷ 8). Lowest marking: Video Speed Class V10 (at least 10 MB/s). If your device specifies a UHS Speed Class: U1 (at least 10 MB/s). If your device specifies a Speed Class: Class 10. Mixing symbol families isn’t guaranteed to give the expected speed, so match the family in your device’s manual. Recording time on 256GB: about 682 min (about 11 h 22 min, an upper estimate). 256GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC. This counts 1 GB as 1 billion bytes; usable space is a little less than the label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=video&amp;amp;microsd-card-calc-mbps=50&amp;amp;microsd-card-calc-cap=256#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video (camera), 100Mbps, 256GB&lt;/td&gt;&lt;td&gt;✓ V30 or better is enough. Write speed needed: 12.5 MB/s (bitrate ÷ 8). Lowest marking: Video Speed Class V30 (at least 30 MB/s). If your device specifies a UHS Speed Class: U3 (at least 30 MB/s). Mixing symbol families isn’t guaranteed to give the expected speed, so match the family in your device’s manual. Recording time on 256GB: about 341 min (about 5 h 41 min, an upper estimate). 256GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC. This counts 1 GB as 1 billion bytes; usable space is a little less than the label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=video&amp;amp;microsd-card-calc-mbps=100&amp;amp;microsd-card-calc-cap=256#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video (camera), 150Mbps, 256GB&lt;/td&gt;&lt;td&gt;✓ V30 or better is enough. Write speed needed: 18.75 MB/s (bitrate ÷ 8). Lowest marking: Video Speed Class V30 (at least 30 MB/s). If your device specifies a UHS Speed Class: U3 (at least 30 MB/s). Mixing symbol families isn’t guaranteed to give the expected speed, so match the family in your device’s manual. Recording time on 256GB: about 227 min (about 3 h 47 min, an upper estimate). 256GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC. This counts 1 GB as 1 billion bytes; usable space is a little less than the label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=video&amp;amp;microsd-card-calc-mbps=150&amp;amp;microsd-card-calc-cap=256#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video (camera), 200Mbps, 256GB&lt;/td&gt;&lt;td&gt;✓ V30 or better is enough. Write speed needed: 25 MB/s (bitrate ÷ 8). Lowest marking: Video Speed Class V30 (at least 30 MB/s). If your device specifies a UHS Speed Class: U3 (at least 30 MB/s). Mixing symbol families isn’t guaranteed to give the expected speed, so match the family in your device’s manual. Recording time on 256GB: about 170 min (about 2 h 50 min, an upper estimate). 256GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC. This counts 1 GB as 1 billion bytes; usable space is a little less than the label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=video&amp;amp;microsd-card-calc-mbps=200&amp;amp;microsd-card-calc-cap=256#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video (camera), 240Mbps, 256GB&lt;/td&gt;&lt;td&gt;△ V30 just covers it. Write speed needed: 30 MB/s (bitrate ÷ 8). Lowest marking: Video Speed Class V30 (at least 30 MB/s). If your device specifies a UHS Speed Class: U3 (at least 30 MB/s). Mixing symbol families isn’t guaranteed to give the expected speed, so match the family in your device’s manual. Only 0% to spare, so it’s borderline. Recording time on 256GB: about 142 min (about 2 h 22 min, an upper estimate). 256GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC. This counts 1 GB as 1 billion bytes; usable space is a little less than the label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=video&amp;amp;microsd-card-calc-mbps=240&amp;amp;microsd-card-calc-cap=256#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video (camera), 300Mbps, 256GB&lt;/td&gt;&lt;td&gt;△ You need V60 (UHS-II or faster). Write speed needed: 37.5 MB/s (bitrate ÷ 8). Lowest marking: Video Speed Class V60 (at least 60 MB/s). V60 and V90 are meant for a UHS-II or faster bus. Check that both the device and the card support UHS-II. Recording time on 256GB: about 113 min (about 1 h 53 min, an upper estimate). 256GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC. This counts 1 GB as 1 billion bytes; usable space is a little less than the label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=video&amp;amp;microsd-card-calc-mbps=300&amp;amp;microsd-card-calc-cap=256#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video (camera), 400Mbps, 256GB&lt;/td&gt;&lt;td&gt;△ You need V60 (UHS-II or faster). Write speed needed: 50 MB/s (bitrate ÷ 8). Lowest marking: Video Speed Class V60 (at least 60 MB/s). V60 and V90 are meant for a UHS-II or faster bus. Check that both the device and the card support UHS-II. Recording time on 256GB: about 85 min (about 1 h 25 min, an upper estimate). 256GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC. This counts 1 GB as 1 billion bytes; usable space is a little less than the label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=video&amp;amp;microsd-card-calc-mbps=400&amp;amp;microsd-card-calc-cap=256#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video (camera), 600Mbps, 256GB&lt;/td&gt;&lt;td&gt;△ You need V90 (UHS-II or faster). Write speed needed: 75 MB/s (bitrate ÷ 8). Lowest marking: Video Speed Class V90 (at least 90 MB/s). V60 and V90 are meant for a UHS-II or faster bus. Check that both the device and the card support UHS-II. Recording time on 256GB: about 56 min (an upper estimate). 256GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC. This counts 1 GB as 1 billion bytes; usable space is a little less than the label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=video&amp;amp;microsd-card-calc-mbps=600&amp;amp;microsd-card-calc-cap=256#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video (camera), 800Mbps, 256GB&lt;/td&gt;&lt;td&gt;✕ Even V90 falls short. Write speed needed: 100 MB/s (bitrate ÷ 8). That’s more than V90’s minimum of 90 MB/s. Recording time on 256GB: about 42 min (an upper estimate). 256GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC. This counts 1 GB as 1 billion bytes; usable space is a little less than the label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=video&amp;amp;microsd-card-calc-mbps=800&amp;amp;microsd-card-calc-cap=256#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video (camera), 100Mbps, 128GB&lt;/td&gt;&lt;td&gt;✓ V30 or better is enough. Write speed needed: 12.5 MB/s (bitrate ÷ 8). Lowest marking: Video Speed Class V30 (at least 30 MB/s). If your device specifies a UHS Speed Class: U3 (at least 30 MB/s). Mixing symbol families isn’t guaranteed to give the expected speed, so match the family in your device’s manual. Recording time on 128GB: about 170 min (about 2 h 50 min, an upper estimate). 128GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC. This counts 1 GB as 1 billion bytes; usable space is a little less than the label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=video&amp;amp;microsd-card-calc-mbps=100&amp;amp;microsd-card-calc-cap=128#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dashcam, 25Mbps, 256GB&lt;/td&gt;&lt;td&gt;✓ V6 or better is enough. Write speed needed: 3.13 MB/s (bitrate ÷ 8). Lowest marking: Video Speed Class V6 (at least 6 MB/s). If your device specifies a UHS Speed Class: U1 (at least 10 MB/s). If your device specifies a Speed Class: Class 10. Mixing symbol families isn’t guaranteed to give the expected speed, so match the family in your device’s manual. Recording time on 256GB: about 1,365 min (about 22 h 45 min, an upper estimate). Dashcams overwrite the oldest footage, so this is roughly how far back it keeps. Some consumer cards exclude write-heavy use like dashcams from their warranty (Samsung PRO Plus and microSD Express). High-endurance cards publish a recording-hours rating (SanDisk High Endurance 256GB: up to 20,000 hours, Full HD). 256GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC. This counts 1 GB as 1 billion bytes; usable space is a little less than the label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=dashcam&amp;amp;microsd-card-calc-mbps=25&amp;amp;microsd-card-calc-cap=256#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dashcam, 50Mbps, 128GB&lt;/td&gt;&lt;td&gt;✓ V10 or better is enough. Write speed needed: 6.25 MB/s (bitrate ÷ 8). Lowest marking: Video Speed Class V10 (at least 10 MB/s). If your device specifies a UHS Speed Class: U1 (at least 10 MB/s). If your device specifies a Speed Class: Class 10. Mixing symbol families isn’t guaranteed to give the expected speed, so match the family in your device’s manual. Recording time on 128GB: about 341 min (about 5 h 41 min, an upper estimate). Dashcams overwrite the oldest footage, so this is roughly how far back it keeps. Some consumer cards exclude write-heavy use like dashcams from their warranty (Samsung PRO Plus and microSD Express). High-endurance cards publish a recording-hours rating (SanDisk High Endurance 256GB: up to 20,000 hours, Full HD). 128GB is SDXC (exFAT). An SDXC card works only in devices that support SDXC or SDUC. This counts 1 GB as 1 billion bytes; usable space is a little less than the label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2022-02-26-micro-sd-base/?microsd-card-calc-use=dashcam&amp;amp;microsd-card-calc-mbps=50&amp;amp;microsd-card-calc-cap=128#microsd-card-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>microsd</category></item><item><title>Manfrotto PIXI EVO review — a ball-head mini tripod that holds a full-frame body and still fits in a bag</title><link>https://aulvem.com/blog/2022-02-16-manfrotto-pixi-evo/</link><guid isPermaLink="true">https://aulvem.com/blog/2022-02-16-manfrotto-pixi-evo/</guid><description>Two-plus years with the Manfrotto PIXI EVO. A rated 2.5 kg load means it carries a full-frame body, and the low-to-high height range covers desk and eye-level scenes. At 270g it is on the heavy side, and the stiff ball-head lock makes 1° tweaks awkward.</description><pubDate>Wed, 16 Feb 2022 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported from the old VuePress blog. The PIXI EVO is still in Manfrotto’s current line-up in 2026 as a staple model. The angles reviewed here — load rating, two-stage leg angle plus four-section legs, stiff ball-head lock — still hold up as practical buying criteria. The numbers are the manufacturer’s published figures from the original writing; current official specs may differ.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When I picked up a mirrorless body, I went looking for a single mini tripod that could cover desk, café, and outdoor snap shooting. Conditions: it had to stay rigid with a full-frame body on top, fit in a bag, and span low and high heights within reason.&lt;/p&gt;
&lt;p&gt;I landed on the &lt;strong&gt;Manfrotto PIXI EVO&lt;/strong&gt;. It is one step heavier than the plain PIXI from the same family, and in exchange you get four-section telescoping legs and two leg-angle modes. After more than two years of carrying it from indoor product shots to travel snaps, this is the write-up.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--a-strong-pick-if-you-want-one-mini-tripod-that-takes-a-full-frame-body&quot;&gt;The verdict — a strong pick if you want one mini tripod that takes a full-frame body&lt;/h2&gt;
&lt;p&gt;Short answer: a rated 2.5 kg load covers a full-frame body, and two leg angles plus four-section telescoping legs span desk-low to just-below-eye-level. As all-rounder ball-head mini tripods go, it is one of the few practical ones.&lt;/p&gt;
&lt;p&gt;The reasoning is simple. Mini tripods that combine “carries real weight” with “covers a real height range” are rarer than the category suggests. Most mini tripods rate at around 1 kg, have fixed-length legs, and either cannot take a full-frame body or can but never change height. The PIXI EVO addresses both gaps at once.&lt;/p&gt;
&lt;p&gt;That said, some buyers will be happier elsewhere:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;People who want to wrap legs around a pillar or handrail&lt;/strong&gt;: the flexible-leg &lt;a href=&quot;https://aulvem.com/blog/2021-03-03-jobygorillapod-jb01542-pkk/&quot;&gt;JOBY GorillaPod&lt;/a&gt; fits that use case better&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;People counting every gram&lt;/strong&gt;: at 270g it is heavy for its class&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;People who need 1° video levelling&lt;/strong&gt;: the ball-head lock is stiff, so micro-adjustments are awkward&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build--red-logo-on-top-stubby-integrated-head-silhouette&quot;&gt;Build — red logo on top, stubby integrated-head silhouette&lt;/h2&gt;
&lt;p&gt;Short answer: matte-black legs with the red Manfrotto logo on the ball head — a familiar Manfrotto palette. The head and legs are one piece, and the head lock is the unusual “turn the logo on top” mechanism.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Manfrotto PIXI EVO seen from the front&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-02-16-manfrotto-pixi-evo/2022-02-16-Manfrotto-Pixi-Evo-front.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Categorically it is a &lt;strong&gt;1/4-inch ball-head mini tripod&lt;/strong&gt;. The legs carry an angle-mode switch at the base and a push-button telescoping lock on each leg. The silhouette is distinctive enough to stick in memory.&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Item&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Value&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Own weight&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;About 270g (rated)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Maximum load&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;About 2.5 kg (rated)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Head&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Ball head (1/4-inch screw top plate)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Leg sections&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Leg-angle modes&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 (normal / low)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;img width=&quot;800&quot; alt=&quot;Close-up of the PIXI EVO ball head&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-02-16-manfrotto-pixi-evo/2022-02-16-Manfrotto-Pixi-Evo-heads.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;You lock the head by turning the red Manfrotto logo on the front. It is firm enough that it does not slip on its own. The 1/4-inch screw tightens via the dial on the head. An Arca-Swiss compatible clamp will screw on, but it is close to twice the head’s width, so the rig leans top-heavy.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Leg-angle mode switch at the base of the PIXI EVO&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-02-16-manfrotto-pixi-evo/2022-02-16-Manfrotto-Pixi-Evo-switch.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;A slide switch at the base of the legs flips between normal and low leg-angle modes. The two modes are printed under the switch, so first-time use is unambiguous.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;PIXI EVO in low leg-angle mode, sitting flat on a surface&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-02-16-manfrotto-pixi-evo/2022-02-16-Manfrotto-Pixi-Evo-open.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;In low mode the legs splay almost flat to the surface. Useful when you are shooting product photos on a desk and want the camera right at subject height.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;PIXI EVO folded down into a slim cylinder&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-02-16-manfrotto-pixi-evo/2022-02-16-Manfrotto-Pixi-Evo-foldable.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Folded, it is a slim cylinder. The backs of the three legs are cut at an angle so they sit flush against each other when closed. The result fits into a gap in a camera bag or the side pocket of a jacket.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Push-button telescoping lock on each PIXI EVO leg&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-02-16-manfrotto-pixi-evo/2022-02-16-Manfrotto-Pixi-Evo-button.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Each leg has a push-button telescoping lock. Press, pull, release — that is the whole interaction.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;PIXI EVO with all legs extended fully&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-02-16-manfrotto-pixi-evo/2022-02-16-Manfrotto-Pixi-Evo-stretch.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The legs telescope in four sections. They lock at intermediate stops too, but in practice almost every shoot ends up using either fully extended or fully retracted. Treat the in-between stops as fine adjustment and the design reads more cleanly.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;PIXI EVO with a GoPro mounted, for scale&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-02-16-manfrotto-pixi-evo/2022-02-16-Manfrotto-Pixi-Evo-gopro.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The camera body was in use for these review shots, so a GoPro stands in. For a GoPro-class load the PIXI EVO is wildly overspec’d, but the stability feels reassuring all the same.&lt;/p&gt;
&lt;h2 id=&quot;what-worked&quot;&gt;What worked&lt;/h2&gt;
&lt;p&gt;Short answer: it stays rigid with a full-frame body on top; the two leg-angle modes plus four-section legs give it a real working height range; folded, it collapses into a slim stick that goes in a bag.&lt;/p&gt;
&lt;h3 id=&quot;a-25-kg-load-rating--full-frame-bodies-are-realistic&quot;&gt;A 2.5 kg load rating — full-frame bodies are realistic&lt;/h3&gt;
&lt;p&gt;Unusually for a mini tripod, the head does not give up under a full-frame body with a standard zoom. A pro-grade telephoto zoom puts the centre of gravity too high to recommend, but anything up to a standard zoom is fine for desk product shots, table photography, and low-position street snaps.&lt;/p&gt;
&lt;p&gt;The leg tips are rubber and grip on flooring and desk tops well. On gravel or concrete steps outdoors you have to adjust the leg angle so they bite, but that is a mini-tripod constraint in general, not a PIXI EVO one.&lt;/p&gt;
&lt;h3 id=&quot;two-leg-angle-modes-plus-four-section-legs--real-working-height-range&quot;&gt;Two leg-angle modes plus four-section legs — real working height range&lt;/h3&gt;
&lt;p&gt;A typical mini tripod has fixed-length legs, which means it has exactly one usable height: “sitting on a desk.” The PIXI EVO sits flat on the floor in low mode, and reaches just below eye level in normal mode with the legs fully extended.&lt;/p&gt;
&lt;p&gt;On a desk, low mode puts the camera at subject height for product shots. Outdoors, normal mode plus fully extended legs hits hip height for snap shots. Switching between scenes is fast. If you only want to carry one mini tripod across two or three shooting contexts, that flexibility earns its keep.&lt;/p&gt;
&lt;h3 id=&quot;folds-into-a-stick--fits-in-the-gaps-in-a-bag&quot;&gt;Folds into a stick — fits in the gaps in a bag&lt;/h3&gt;
&lt;p&gt;The angled cuts on the back of each leg mean the closed unit becomes a slim cylinder. It slides into the divider gap in a camera bag, or into the side pocket of a daypack. As “carryable in spite of being built for full-frame bodies” goes, it lands in the realm of “heavy but you will still bring it.”&lt;/p&gt;
&lt;h3 id=&quot;doubles-as-a-selfie-stick&quot;&gt;Doubles as a selfie stick&lt;/h3&gt;
&lt;p&gt;With the legs folded, you can hold the column as a handle and get a passable selfie stick. Extending the legs while keeping them closed buys another few dozen centimetres. It will not match a dedicated selfie stick for length or weight, but on a trip the fact that you do not have to pack both a tripod and a selfie stick adds up.&lt;/p&gt;
&lt;h2 id=&quot;what-didnt&quot;&gt;What didn’t&lt;/h2&gt;
&lt;p&gt;Short answer: 270g is heavy for the class; the stiff ball-head lock makes 1° tweaks awkward; the bare 1/4-inch screw on top is exposed.&lt;/p&gt;
&lt;h3 id=&quot;270g-own-weight--you-notice-it-in-the-pouch&quot;&gt;270g own weight — you notice it in the pouch&lt;/h3&gt;
&lt;p&gt;This is the flip side of “rigid enough for a full-frame body.” For a mini tripod it is on the heavy end. Drop it into a sacoche or a small pouch and you get a “do I really need to bring this today?” moment before heading out.&lt;/p&gt;
&lt;p&gt;If portability is the deciding factor, a sub-60g flexible-leg option like the &lt;a href=&quot;https://aulvem.com/blog/2021-03-03-jobygorillapod-jb01542-pkk/&quot;&gt;JOBY GorillaPod JB01542-PKK&lt;/a&gt; is the lighter answer. Load capacity and rigidity are separate concerns, though — the choice is “lighter, or higher load.”&lt;/p&gt;
&lt;h3 id=&quot;stiff-ball-head-lock-awkward-at-fine-adjustments&quot;&gt;Stiff ball-head lock, awkward at fine adjustments&lt;/h3&gt;
&lt;p&gt;The red logo plate that doubles as the head lock is firm. From a “do not let the camera fall” angle that is the right design choice, but when you are tightening a composition by one degree at a time, loosening the lock often shifts the framing more than you intended.&lt;/p&gt;
&lt;p&gt;For video work where you want strict horizon levelling, or panning at a controlled speed, a three-way head or a dedicated ball head with independent lock pressure is the better tool. For stills, it is rarely a problem.&lt;/p&gt;
&lt;h3 id=&quot;the-bare-14-inch-screw-on-top&quot;&gt;The bare 1/4-inch screw on top&lt;/h3&gt;
&lt;p&gt;There is no quick-release plate — the 1/4-inch screw sits exposed on the head’s top plate. Take the camera off and toss the tripod into a bag, and the screw rubs against the bag’s inner lining. A fabric inner case is enough to dodge the issue, but it is a design quirk.&lt;/p&gt;
&lt;h2 id=&quot;comparison&quot;&gt;Comparison&lt;/h2&gt;
&lt;p&gt;Short answer: heavier than a flexible-leg tripod but more rigid; heavier and pricier than the plain PIXI but with more load capacity and height range; less tall than a typical telescoping mini tripod, but more compact head-and-all.&lt;/p&gt;
&lt;h3 id=&quot;vs-joby-gorillapod-jb01542-pkk--light-and-unusual-placements-vs-rigid-and-high-load&quot;&gt;vs JOBY GorillaPod JB01542-PKK — “light and unusual placements” vs “rigid and high load”&lt;/h3&gt;








































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;Manfrotto PIXI EVO&lt;/th&gt;&lt;th&gt;JOBY GorillaPod JB01542-PKK&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Intended gear&lt;/td&gt;&lt;td&gt;Phone to full-frame standard zoom&lt;/td&gt;&lt;td&gt;Phone, webcam, GoPro&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Own weight&lt;/td&gt;&lt;td&gt;About 270g (rated)&lt;/td&gt;&lt;td&gt;About 52g (rated)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Maximum load&lt;/td&gt;&lt;td&gt;About 2.5 kg (rated)&lt;/td&gt;&lt;td&gt;About 325g (rated)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Mounting site&lt;/td&gt;&lt;td&gt;Flat floor or desk&lt;/td&gt;&lt;td&gt;Floor, pillar, handrail, shelf edge&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Height adjustment&lt;/td&gt;&lt;td&gt;2 leg angles + 4-section legs&lt;/td&gt;&lt;td&gt;Bend the legs as needed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ball-head lock&lt;/td&gt;&lt;td&gt;Yes (firm)&lt;/td&gt;&lt;td&gt;Yes (firm, stepless)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The PIXI EVO is for &lt;strong&gt;planting heavy gear on a flat surface&lt;/strong&gt;. The GorillaPod is for &lt;strong&gt;hooking light gear onto a non-flat one&lt;/strong&gt;. The use cases are opposite, so the decision is “do I want to carry weight, or to place it in odd spots.” For a full comparison, see the &lt;a href=&quot;https://aulvem.com/blog/2021-03-03-jobygorillapod-jb01542-pkk/&quot;&gt;JOBY GorillaPod JB01542-PKK review&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;vs-the-plain-pixi--lighter-and-cheaper-vs-more-load-and-more-height&quot;&gt;vs the plain PIXI — “lighter and cheaper” vs “more load and more height”&lt;/h3&gt;



































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;PIXI EVO&lt;/th&gt;&lt;th&gt;Plain PIXI&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Intended gear&lt;/td&gt;&lt;td&gt;Up to full-frame standard zoom&lt;/td&gt;&lt;td&gt;Up to mirrorless standard zoom&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Maximum load&lt;/td&gt;&lt;td&gt;About 2.5 kg (rated)&lt;/td&gt;&lt;td&gt;About 1 kg (rated)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Leg sections&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;None (fixed length)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Leg-angle modes&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Price tier&lt;/td&gt;&lt;td&gt;Mid&lt;/td&gt;&lt;td&gt;Entry&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;If a phone, a compact, or a mirrorless body with a kit zoom is the full scope of use, the plain PIXI is enough. If “I might bring a full-frame body one day” or “I want to switch between low and high” is part of the plan, the EVO’s price premium is meaningful.&lt;/p&gt;
&lt;h3 id=&quot;vs-a-typical-telescoping-mini-tripod&quot;&gt;vs a typical telescoping mini tripod&lt;/h3&gt;



































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;PIXI EVO&lt;/th&gt;&lt;th&gt;Typical telescoping mini tripod&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Maximum height&lt;/td&gt;&lt;td&gt;4-section legs + normal angle&lt;/td&gt;&lt;td&gt;Centre column reaches higher&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Head&lt;/td&gt;&lt;td&gt;Integrated ball head&lt;/td&gt;&lt;td&gt;Sometimes three-way heads&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Fine adjustment&lt;/td&gt;&lt;td&gt;Weak (lock is firm)&lt;/td&gt;&lt;td&gt;Three-way heads handle this well&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Folded form&lt;/td&gt;&lt;td&gt;Legs flush, slim cylinder&lt;/td&gt;&lt;td&gt;Head tends to protrude&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Portability&lt;/td&gt;&lt;td&gt;Fits gaps in a bag&lt;/td&gt;&lt;td&gt;Depends on size&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;If “slim when folded” and “switch between desk-low and just-below-eye-level” matter, the PIXI EVO wins. If “tallest possible” and “smooth video adjustment” matter, you are looking at a different category. Same “mini tripod” label, different target situations.&lt;/p&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Manfrotto PIXI EVO (MTPIXIEVO-BK)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2022-02-16-manfrotto-pixi-evo/2022-02-16-Manfrotto-Pixi-Evo.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Manfrotto PIXI EVO (MTPIXIEVO-BK)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0152X16XO?q=Manfrotto+PIXI+EVO+%28MTPIXIEVO-BK%29&amp;amp;l=en&quot; aria-label=&quot;View Manfrotto PIXI EVO (MTPIXIEVO-BK) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Should I pick the plain PIXI or the PIXI EVO?&lt;/strong&gt;
A. Decide by the gear you plan to mount. For a phone, a compact, or a mirrorless body with a kit zoom, the plain PIXI is enough. If a full-frame body with a standard-to-short-telephoto zoom is in scope, the PIXI EVO’s 2.5 kg rating and four-section legs are the safer choice. Conversely, if you only ever sit it on a desk to shoot phone vlogs, the EVO’s extra weight and bulk are overkill.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Can it double as a selfie stick for a GoPro or a phone?&lt;/strong&gt;
A. With the legs closed, you can grip the column as a handle and treat it as a makeshift selfie stick. Extending the legs while keeping them closed buys another few dozen centimetres of reach. It will not match a dedicated selfie stick for length or weight, so think of it as a tripod that occasionally pulls double duty.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Will it carry an Arca-Swiss compatible clamp?&lt;/strong&gt;
A. The head’s top plate is a 1/4-inch screw, so a standard Arca-Swiss clamp screws on directly. The clamp is usually close to twice the width of the head itself, so the rig ends up top-heavy. If Arca-Swiss is your default, picking the smallest clamp you can live with is steadier than swapping the head outright.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Can I use it outdoors with a full-frame DSLR or mirrorless?&lt;/strong&gt;
A. Within the stated 2.5 kg load it carries fine, but ground and wind matter. On gravel or concrete steps, adjust the leg angle so the rubber feet bite. For long exposures, keep the centre of gravity low — no centre-column extension, no strap wrapped around the body. On windy days, hang a bag under the tripod as ballast.&lt;/p&gt;
&lt;h2 id=&quot;verdict--a-strong-pick-if-you-want-exactly-one-mini-tripod&quot;&gt;Verdict — a strong pick if you want exactly one mini tripod&lt;/h2&gt;
&lt;p&gt;The PIXI EVO is one of the few mini tripods that simultaneously delivers load capacity, rigidity, a working height range, and a slim folded form. It is heavier than phone-only ultralights, and it cannot wrap legs around a pillar like a flexible-leg tripod, but it does make the realistic case — “carry one tripod that handles full-frame bodies indoors and outdoors” — actually work.&lt;/p&gt;
&lt;p&gt;In more than two years of daily-ish use, neither the head lock nor the telescoping locks have loosened with age. For someone who would rather carry a little more weight in exchange for a tripod that lasts, it is the right tool.&lt;/p&gt;
&lt;p&gt;If “as light as possible” or “wrap it around a pillar” is the real requirement, a different category will be a happier purchase. If the use case is “plant slightly heavy gear on a flat surface,” this is a hard one to regret.&lt;/p&gt;
</content:encoded><category>reviews</category><category>cameraEquipment</category></item><item><title>Minecraft PC Requirements: RAM, GPU and What to Buy</title><link>https://aulvem.com/blog/2021-04-27-minecraft-pc/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-27-minecraft-pc/</guid><description>Per Mojang&apos;s requirements table, Java Edition recommends 16 GB of RAM and a CPU such as a Core i5-12400. The GPU should have 6 GB of VRAM (its own memory), such as a GeForce RTX 2060. The minimum is 8 GB of RAM (12 GB with integrated graphics), 2 GB of VRAM and a CPU with 4 physical cores.</description><pubDate>Tue, 27 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Per Mojang’s requirements table, Java Edition recommends 16 GB of RAM and a CPU such as a Core i5-12400. The GPU should have 6 GB of VRAM (its own memory), such as a GeForce RTX 2060. The minimum is 8 GB of RAM (12 GB with integrated graphics), 2 GB of VRAM and a CPU with 4 physical cores.&lt;/p&gt;
&lt;p&gt;The GPU is the part that draws the picture. The figures come from official sources as of October 2026, and no hardware was tested.&lt;/p&gt;
&lt;p&gt;The mod and shader numbers have no primary source, so they are this guide’s assumptions. Shaders are extra lighting and shadow effects.&lt;/p&gt;
&lt;h2 id=&quot;minimum-and-recommended-specs-for-java-and-bedrock&quot;&gt;Minimum and recommended specs for Java and Bedrock&lt;/h2&gt;
&lt;p&gt;Per Mojang’s requirements table, Bedrock Edition needs 4 GB of RAM at minimum and recommends 8 GB, half of Java’s 8 GB minimum and 16 GB recommendation.&lt;/p&gt;
&lt;p&gt;Per the FAQ on Mojang’s store page, the PC edition includes both Java and Bedrock. Bedrock runs on Windows, and Java runs on Windows, Mac and Linux.&lt;/p&gt;
&lt;p&gt;Free storage: Java needs 2 GB minimum and 4 GB recommended; Bedrock needs 4 GB minimum and 8 GB recommended. Whether an SSD is required, and how much space modpacks need, couldn’t be confirmed from the sources.&lt;/p&gt;
&lt;p&gt;To play with consoles or phones, Bedrock is the edition that crosses over; Java only plays with Windows, Mac and Linux. The mods and shaders in this guide are about Java Edition.&lt;/p&gt;
&lt;p&gt;The Java and Bedrock columns use only the RAM and VRAM in Mojang’s requirements table (Bedrock: RAM only), so compare GPU and CPU models yourself. The mod and shader columns have no official numbers, so they compare against this guide’s assumptions (6–12 GB allocated to a heavy modpack, 8–16 GB VRAM for shaders). The 8–16 GB comparison is for discrete GPUs; shared memory on integrated graphics isn’t assessed.&lt;/p&gt;





























































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Setup&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Java&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Bedrock&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Heavy mods (assumed)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Shaders (assumed)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Allocation ceiling&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Integrated GPU, 8 GB RAM&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;RAM below the minimum&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;RAM meets recommended (borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Below the assumed range&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not assessed for integrated graphics&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;4 GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Integrated GPU, 16 GB RAM&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;RAM meets recommended (borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;RAM meets recommended&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Part of the assumed range&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not assessed for integrated graphics&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4 GB VRAM, 8 GB RAM&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Exactly at the minimum (borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;RAM meets recommended (borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Below the assumed range&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Below the assumed range&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;4 GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;6 GB VRAM (RTX 4050 Laptop), 16 GB RAM&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Meets recommended (borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;RAM meets recommended&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Part of the assumed range&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Below the assumed range&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 GB VRAM (e.g. RTX 5060), 16 GB RAM&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Meets recommended (borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;RAM meets recommended&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Part of the assumed range&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Part of the assumed range&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;16 GB VRAM, 32 GB RAM&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Meets recommended&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;RAM meets recommended&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Whole assumed range&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Whole assumed range&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;16 GB&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;how-to-check-whether-your-pc-meets-the-specs&quot;&gt;How to check whether your PC meets the specs&lt;/h2&gt;
&lt;p&gt;Capacity and performance are two separate checks. Compare RAM and VRAM as numbers, and compare CPU and GPU models with Mojang’s examples.&lt;/p&gt;









































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Edition&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Spec level&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;CPU examples&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;GPU examples&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Java&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Minimum (discrete GPU)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Intel Core i3-10100, AMD Ryzen 3 3100, Snapdragon X or Apple M1 (4 or more physical cores)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Discrete GPU: NVIDIA GTX 950 or newer, AMD Radeon RX 460 or newer, Intel Arc A310 or newer (Vulkan 1.3, 2 GB or more of VRAM)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Java&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Minimum (integrated GPU)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Intel Core i3-10100, AMD Ryzen 3 3100, Snapdragon X or Apple M1 (4 or more physical cores)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Integrated GPU: Intel i5-6400 or newer, Apple M1 or newer, Snapdragon X (Vulkan 1.3, 2 GB or more of VRAM)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Java&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Rec.&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Intel Core i5-12400, AMD Ryzen 5 5600 or Apple M2 Pro&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;NVIDIA RTX 2060, AMD RX 5600 XT, Intel Arc A580 or Apple M2 Pro (6 GB of VRAM)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Bedrock&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Minimum&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Intel Celeron J4105, AMD FX-4100&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Intel HD Graphics 4000, AMD Radeon R5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Bedrock&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Rec.&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Intel Core i7-6500U, AMD A8-6600K&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;NVIDIA GeForce 940M, AMD Radeon HD 8570D&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;ol&gt;
&lt;li&gt;Check your installed RAM. In Windows, go to Start &amp;gt; Settings &amp;gt; System &amp;gt; About. Compare it with the numbers at the top and in the table above (the capacity check).&lt;/li&gt;
&lt;li&gt;Look up your CPU and GPU models. For the GPU, also check the VRAM on the maker’s spec page. Integrated graphics is the GPU built into the CPU, and a discrete GPU is a separate graphics card.&lt;/li&gt;
&lt;li&gt;Compare the models with the examples above. Where a model is listed with “or newer”, check whether yours falls in that range. Java needs at least 4 physical cores and 2 GB of VRAM at minimum, 6 GB recommended.&lt;/li&gt;
&lt;li&gt;Per Mojang’s requirements table, this guide doesn’t judge the performance of models not in these examples. Before buying, give the store or maker the CPU and GPU models and your edition, and ask whether it meets Mojang’s recommended specs.&lt;/li&gt;
&lt;li&gt;The allocation ceiling is half your installed RAM. With 16 GB of RAM installed, you can allocate up to 8 GB.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In this guide’s tool, pick your edition, how you play and your current PC (laptop or desktop, RAM, GPU). It shows whether you meet the minimum and recommended RAM and VRAM, what to add, and how much memory to give the game. It doesn’t check the CPU, so compare CPU models yourself.&lt;/p&gt;
&lt;section id=&quot;minecraft-pc-check&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;minecraft-pc-check-title&quot;&gt; &lt;h3 id=&quot;minecraft-pc-check-title&quot;&gt;Minecraft PC spec check&lt;/h3&gt; &lt;p&gt;Pick your edition (Java or Bedrock), how you play and your current PC (laptop or desktop, GPU, RAM, VRAM) to see whether it meets Mojang&amp;#39;s minimum and recommended specs, what to add, and how much memory to give the game.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;asus_dual_rx9060xt_16g&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS Dual Radeon RX 9060 XT 16GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71WTt-GxSpL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS Dual Radeon RX 9060 XT 16GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FLHBFFX4?q=ASUS+Dual+Radeon+RX+9060+XT+16GB&amp;amp;us=B0FLHBFFX4&amp;amp;l=en&quot; aria-label=&quot;View ASUS Dual Radeon RX 9060 XT 16GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;DUAL-RX9060XT-16G&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS Dual Radeon RX 9060 XT 16GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71WTt-GxSpL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS Dual Radeon RX 9060 XT 16GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FLHBFFX4?q=ASUS+Dual+Radeon+RX+9060+XT+16GB&amp;amp;us=B0FLHBFFX4&amp;amp;l=en&quot; aria-label=&quot;View ASUS Dual Radeon RX 9060 XT 16GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;corsair_cmk32gx5m2b6000z30&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61-Ag2lc5BL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CBRJ63RT?q=CORSAIR+VENGEANCE+DDR5+32GB%EF%BC%88CMK32GX5M2B6000Z30%EF%BC%89&amp;amp;us=B0CBRJ63RT&amp;amp;l=en&quot; aria-label=&quot;View CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30） on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;CMK32GX5M2B6000Z30&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61-Ag2lc5BL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CBRJ63RT?q=CORSAIR+VENGEANCE+DDR5+32GB%EF%BC%88CMK32GX5M2B6000Z30%EF%BC%89&amp;amp;us=B0CBRJ63RT&amp;amp;l=en&quot; aria-label=&quot;View CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30） on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This checker needs JavaScript. If it doesn&amp;#39;t run, find the closest setup in the quick table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;java&quot;:{&quot;minRamD&quot;:8,&quot;minRamI&quot;:12,&quot;recRam&quot;:16,&quot;minVram&quot;:2,&quot;recVram&quot;:6},&quot;bed&quot;:{&quot;minRam&quot;:4,&quot;recRam&quot;:8},&quot;defAlloc&quot;:4,&quot;lowRam&quot;:4,&quot;lowAlloc&quot;:2,&quot;modAlloc&quot;:[6,12],&quot;shaderVram&quot;:[8,16],&quot;streamHead&quot;:[4,8],&quot;ramSteps&quot;:[4,8,12,16,24,32,64],&quot;vramSteps&quot;:[2,4,6,8,12,16],&quot;slots&quot;:{&quot;ram_desktop&quot;:&quot;ram32&quot;,&quot;gpu&quot;:&quot;gpu&quot;,&quot;pc_laptop&quot;:&quot;pc_laptop&quot;,&quot;pc_desktop&quot;:&quot;pc_desktop&quot;},&quot;picks&quot;:{&quot;ram32&quot;:[&quot;corsair_cmk32gx5m2b6000z38&quot;,&quot;corsair_cmk32gx5m2b6000z30&quot;],&quot;gpu&quot;:[&quot;asus_dual_rx9060xt_16g&quot;,&quot;asrock_rx9060xt_cl_16go&quot;],&quot;pc_laptop&quot;:[&quot;alienware16_aurora_rtx5050&quot;],&quot;pc_desktop&quot;:[]},&quot;specs&quot;:{&quot;corsair_cmk32gx5m2b6000z38&quot;:{&quot;vram&quot;:null,&quot;ram&quot;:32,&quot;ddr&quot;:&quot;DDR5&quot;,&quot;gpu&quot;:null},&quot;asus_dual_rx9060xt_16g&quot;:{&quot;vram&quot;:16,&quot;ram&quot;:null,&quot;ddr&quot;:null,&quot;gpu&quot;:&quot;AMD Radeon RX 9060 XT&quot;},&quot;msi_rtx5060ti_16g_ventus_2x_oc_plus&quot;:{&quot;vram&quot;:16,&quot;ram&quot;:null,&quot;ddr&quot;:null,&quot;gpu&quot;:&quot;NVIDIA GeForce RTX 5060 Ti&quot;},&quot;corsair_cmk32gx5m2b6000z30&quot;:{&quot;vram&quot;:null,&quot;ram&quot;:32,&quot;ddr&quot;:&quot;DDR5&quot;,&quot;gpu&quot;:null},&quot;asrock_rx9060xt_cl_16go&quot;:{&quot;vram&quot;:16,&quot;ram&quot;:null,&quot;ddr&quot;:null,&quot;gpu&quot;:&quot;AMD Radeon RX 9060 XT&quot;},&quot;alienware16_aurora_rtx5050&quot;:{&quot;vram&quot;:8,&quot;ram&quot;:16,&quot;ddr&quot;:&quot;DDR5&quot;,&quot;gpu&quot;:&quot;NVIDIA GeForce RTX 5050 Laptop GPU&quot;}},&quot;txt&quot;:{&quot;jMinCpu&quot;:{&quot;ja&quot;:&quot;Intel Core i3-10100、AMD Ryzen 3 3100、Qualcomm Snapdragon X、Apple M1（物理4コア以上）&quot;,&quot;en&quot;:&quot;Intel Core i3-10100, AMD Ryzen 3 3100, Qualcomm Snapdragon X, or Apple M1 (4 physical cores minimum)&quot;},&quot;jRecCpu&quot;:{&quot;ja&quot;:&quot;Intel Core i5-12400、AMD Ryzen 5 5600、Apple M2 Pro&quot;,&quot;en&quot;:&quot;Intel Core i5-12400, AMD Ryzen 5 5600, or Apple M2 Pro&quot;},&quot;bMinCpu&quot;:{&quot;ja&quot;:&quot;Intel Celeron J4105 | AMD FX-4100&quot;,&quot;en&quot;:&quot;Intel Celeron J4105 | AMD FX-4100&quot;},&quot;bRecCpu&quot;:{&quot;ja&quot;:&quot;Intel i7-6500U | AMD A8-6600K&quot;,&quot;en&quot;:&quot;Intel i7-6500U | AMD A8-6600K&quot;},&quot;bMinGpu&quot;:{&quot;ja&quot;:&quot;Intel HD Graphics 4000 | AMD Radeon R5&quot;,&quot;en&quot;:&quot;Intel HD Graphics 4000 | AMD Radeon R5&quot;},&quot;bRecGpu&quot;:{&quot;ja&quot;:&quot;NVIDIA GeForce 940M | AMD Radeon HD 8570D&quot;,&quot;en&quot;:&quot;NVIDIA GeForce 940M | AMD Radeon HD 8570D&quot;},&quot;jRecGpu&quot;:{&quot;ja&quot;:&quot;NVIDIA GeForce RTX 2060、AMD Radeon RX 5600 XT、Intel Arc A580、Apple M2 Pro（VRAM 6GB）&quot;,&quot;en&quot;:&quot;NVIDIA GeForce RTX 2060, AMD Radeon RX 5600 XT, Intel Arc A580, or Apple M2 Pro; 6 GB VRAM&quot;}},&quot;cores&quot;:4,&quot;buy&quot;:{&quot;corsair_cmk32gx5m2b6000z38&quot;:{&quot;type&quot;:&quot;ram_desktop&quot;,&quot;ja&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z38）&quot;,&quot;en&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z38）&quot;,&quot;jp&quot;:&quot;B0G5Q1XTKM&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0G5Q1XTKM&quot;,&quot;title&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z38）&quot;,&quot;searchQuery&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z38）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61-Ag2lc5BL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;0840440422198&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;CMK32GX5M2B6000Z38&quot;:{&quot;type&quot;:&quot;ram_desktop&quot;,&quot;ja&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z38）&quot;,&quot;en&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z38）&quot;,&quot;jp&quot;:&quot;B0G5Q1XTKM&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0G5Q1XTKM&quot;,&quot;title&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z38）&quot;,&quot;searchQuery&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z38）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61-Ag2lc5BL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;0840440422198&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;asus_dual_rx9060xt_16g&quot;:{&quot;type&quot;:&quot;gpu&quot;,&quot;ja&quot;:&quot;ASUS Dual Radeon RX 9060 XT 16GB&quot;,&quot;en&quot;:&quot;ASUS Dual Radeon RX 9060 XT 16GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FLHBFFX4&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FLHBFFX4&quot;,&quot;asinUS&quot;:&quot;B0FLHBFFX4&quot;,&quot;title&quot;:&quot;ASUS Dual Radeon RX 9060 XT 16GB&quot;,&quot;searchQuery&quot;:&quot;ASUS Dual Radeon RX 9060 XT 16GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71WTt-GxSpL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;DUAL-RX9060XT-16G&quot;:{&quot;type&quot;:&quot;gpu&quot;,&quot;ja&quot;:&quot;ASUS Dual Radeon RX 9060 XT 16GB&quot;,&quot;en&quot;:&quot;ASUS Dual Radeon RX 9060 XT 16GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FLHBFFX4&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FLHBFFX4&quot;,&quot;asinUS&quot;:&quot;B0FLHBFFX4&quot;,&quot;title&quot;:&quot;ASUS Dual Radeon RX 9060 XT 16GB&quot;,&quot;searchQuery&quot;:&quot;ASUS Dual Radeon RX 9060 XT 16GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71WTt-GxSpL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;corsair_cmk32gx5m2b6000z30&quot;:{&quot;type&quot;:&quot;ram_desktop&quot;,&quot;ja&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&quot;,&quot;en&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0CBRJ63RT&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0CBRJ63RT&quot;,&quot;asinUS&quot;:&quot;B0CBRJ63RT&quot;,&quot;title&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&quot;,&quot;searchQuery&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61-Ag2lc5BL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;CMK32GX5M2B6000Z30&quot;:{&quot;type&quot;:&quot;ram_desktop&quot;,&quot;ja&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&quot;,&quot;en&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0CBRJ63RT&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0CBRJ63RT&quot;,&quot;asinUS&quot;:&quot;B0CBRJ63RT&quot;,&quot;title&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&quot;,&quot;searchQuery&quot;:&quot;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61-Ag2lc5BL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;asrock_rx9060xt_cl_16go&quot;:{&quot;type&quot;:&quot;gpu&quot;,&quot;ja&quot;:&quot;ASRock Radeon RX 9060 XT Challenger 16GB OC&quot;,&quot;en&quot;:&quot;ASRock Radeon RX 9060 XT Challenger 16GB OC&quot;,&quot;jp&quot;:&quot;B0F8B59WP7&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0F8B59WP7&quot;,&quot;title&quot;:&quot;ASRock Radeon RX 9060 XT Challenger 16GB OC&quot;,&quot;searchQuery&quot;:&quot;ASRock Radeon RX 9060 XT Challenger 16GB OC&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81kTwAgKZJL._AC_SX679_.jpg&quot;,&quot;jan&quot;:&quot;4711581491205&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1},&quot;RX9060XT CL 16GO&quot;:{&quot;type&quot;:&quot;gpu&quot;,&quot;ja&quot;:&quot;ASRock Radeon RX 9060 XT Challenger 16GB OC&quot;,&quot;en&quot;:&quot;ASRock Radeon RX 9060 XT Challenger 16GB OC&quot;,&quot;jp&quot;:&quot;B0F8B59WP7&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0F8B59WP7&quot;,&quot;title&quot;:&quot;ASRock Radeon RX 9060 XT Challenger 16GB OC&quot;,&quot;searchQuery&quot;:&quot;ASRock Radeon RX 9060 XT Challenger 16GB OC&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81kTwAgKZJL._AC_SX679_.jpg&quot;,&quot;jan&quot;:&quot;4711581491205&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;ram_desktop&quot;:&quot;corsair_cmk32gx5m2b6000z38&quot;,&quot;gpu&quot;:&quot;asrock_rx9060xt_cl_16go&quot;,&quot;pc_laptop&quot;:null,&quot;pc_desktop&quot;:null},&quot;en&quot;:{&quot;ram_desktop&quot;:&quot;corsair_cmk32gx5m2b6000z30&quot;,&quot;gpu&quot;:&quot;asus_dual_rx9060xt_16g&quot;,&quot;pc_laptop&quot;:null,&quot;pc_desktop&quot;:null}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;minecraft-pc-check&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 1. 動作環境（Mojang の表）: Java 版の最低メモリは独立 GPU 8GB・内蔵 GPU 12GB、推奨 16GB。VRAM は最低 2GB・推奨 6GB。
//    Bedrock は最低 4GB・推奨 8GB（GPU は型番だけで、VRAM の数字は無い）
// 2. 割り当てメモリ（Java 版。Mojang のヘルプ）: 64ビット OS は搭載メモリの半分が推奨の上限。26.1 から既定は 4GB。
//    搭載 4GB 以下は 2GB に下げる
// 3. 重い MOD パック（仮定 m.modAlloc = [下限, 上限]）: 割り当てる量が「搭載の半分」に収まるか
// 4. 影 MOD（仮定 m.shaderVram = [下限, 上限]）: 公式の数字が無いので、記事が比べる現行 GPU の帯との比較としてだけ使う
// 5. 配信（仮定 m.streamHead = [下限, 上限]）: ゲームの割り当てとは別に、Windows・OBS・ブラウザに残すメモリ
// 判定: &quot;ok&quot;（仮定の幅の全部で満たす）/ &quot;cond&quot;（一部で満たす）/ &quot;ng&quot;（どれでも満たさない。記事では「目安未満」）

function reqs(edition, igpu, m) {
  if (edition === &quot;bedrock&quot;) return { minRam: m.bed.minRam, recRam: m.bed.recRam, minVram: null, recVram: null };
  return { minRam: igpu ? m.java.minRamI : m.java.minRamD, recRam: m.java.recRam, minVram: m.java.minVram, recVram: m.java.recVram };
}

// 割り当ての推奨の上限（Mojang: 64ビット OS は搭載の半分）
function allocMax(ram) {
  return ram / 2;
}

// 割り当ての目安（Java 版）。既定 4GB が上限（半分）を超えるときは、Mojang のヘルプのとおり 2GB に下げる
function allocDefault(ram, m) {
  return ram &lt;= m.lowRam ? m.lowAlloc : m.defAlloc;
}

// 重い MOD パックの割り当て（仮定 a GB）が、搭載の半分に収まるか
function modFits(ram, a) {
  return a &lt;= allocMax(ram) + 1e-9;
}

// 仮定の幅 [lo, hi] の全部で成り立つか / 一部か / どれでもないか
function band(holds, [lo, hi]) {
  const a = holds(lo), b = holds(hi);
  return a &amp;&amp; b ? &quot;ok&quot; : a || b ? &quot;cond&quot; : &quot;ng&quot;;
}

function modClass(ram, m) {
  return band((a) =&gt; modFits(ram, a), m.modAlloc);
}

// 影 MOD: 独立 GPU の VRAM と、仮定の帯（記事が比べる現行 GPU の 8〜16GB）
function shaderClass(vram, igpu, m) {
  if (igpu) return &quot;na&quot;; // 内蔵 GPU の共有メモリは判定しない（VRAM 0 の不足判定にしない）
  return band((x) =&gt; vram &gt;= x - 1e-9, m.shaderVram);
}

// 配信: ゲームの割り当て（既定）＋残すメモリ（仮定）が搭載メモリに収まるか
function streamClass(ram, m) {
  return band((h) =&gt; allocDefault(ram, m) + h &lt;= ram + 1e-9, m.streamHead);
}

// 読者の PC の判定
// x: { edition: &quot;java&quot; | &quot;bedrock&quot;, play: &quot;vanilla&quot; | &quot;mod&quot; | &quot;shader&quot; | &quot;stream&quot;, form: &quot;desktop&quot; | &quot;laptop&quot;, gpu: &quot;igpu&quot; | &quot;dgpu&quot;, ram, vram }
function judge(x, m) {
  const igpu = x.gpu === &quot;igpu&quot;;
  const ram = Number(x.ram), vram = igpu ? 0 : Number(x.vram);
  const r = reqs(x.edition, igpu, m);
  const java = x.edition === &quot;java&quot;;
  const ramMin = ram &gt;= r.minRam, ramRec = ram &gt;= r.recRam;
  // GPU: Java は VRAM（独立 GPU）。内蔵 GPU は Mojang の最低の表に内蔵の例（Intel i5-6400 以降）があり、推奨の例は Apple M2 Pro 以外は独立 GPU
  // Bedrock は型番だけで VRAM の数字が無いので、VRAM では判定しない（null）
  const gpuMin = java ? (igpu ? null : vram &gt;= r.minVram) : null;
  const gpuRec = java ? (igpu ? null : vram &gt;= r.recVram) : null;
  const meetsMin = ramMin &amp;&amp; gpuMin !== false;
  const meetsRec = ramRec &amp;&amp; gpuRec !== false;
  const level = meetsRec ? &quot;rec&quot; : meetsMin ? &quot;min&quot; : &quot;below&quot;;
  const out = { edition: x.edition, play: x.play, form: x.form, igpu, ram, vram, r, ramMin, ramRec, gpuMin, gpuRec, level };
  // 余裕（推奨ちょうど = ぎりぎり）
  out.ramMargin = ram - r.recRam;
  out.vramMargin = java &amp;&amp; !igpu ? vram - r.recVram : null;
  if (java) {
    out.alloc = { def: allocDefault(ram, m), max: allocMax(ram) };
    if (x.play === &quot;mod&quot;) out.mod = modClass(ram, m);
    if (x.play === &quot;stream&quot;) out.stream = streamClass(ram, m);
  }
  if (java &amp;&amp; x.play === &quot;shader&quot;) out.shader = shaderClass(vram, igpu, m);
  // 足すもの: メモリは「推奨」と（MOD なら）仮定の上限まで半分に収まる量の、選択肢の中で最小のもの
  let needRam = r.recRam;
  if (java &amp;&amp; x.play === &quot;mod&quot;) needRam = Math.max(needRam, 2 * m.modAlloc[1]);
  out.needRam = needRam;
  out.ramTo = ram &gt;= needRam ? null : (m.ramSteps.find((s) =&gt; s &gt;= needRam) ?? null);
  // GPU: Java の推奨 VRAM（影 MOD なら仮定の帯の上限）に届かない、または内蔵 GPU
  const needVram = java ? (x.play === &quot;shader&quot; ? Math.max(r.recVram, m.shaderVram[1]) : r.recVram) : null;
  out.needVram = needVram;
  out.gpuTo = java &amp;&amp; (igpu ? x.play === &quot;shader&quot; : vram &lt; needVram) ? needVram : null;
  return out;
}

// 足すものの提案（デスクトップはパーツ、ノートは本体）
function plan(j) {
  const add = [];
  if (j.ramTo) add.push(j.form === &quot;desktop&quot; ? &quot;ram_desktop&quot; : &quot;ram_laptop&quot;);
  if (j.gpuTo) add.push(j.form === &quot;desktop&quot; ? (j.igpu ? &quot;gpu_new&quot; : &quot;gpu_swap&quot;) : &quot;pc_laptop&quot;);
  return add;
}

// 全体の判定（ツールの ○△✕）
function status(j) {
  if (j.level === &quot;below&quot;) return &quot;ng&quot;;
  const extra = j.mod ?? j.shader ?? j.stream ?? &quot;ok&quot;;
  if (j.level === &quot;rec&quot; &amp;&amp; extra === &quot;ok&quot; &amp;&amp; !tightRec(j)) return &quot;ok&quot;;
  return &quot;cond&quot;;
}

// 推奨ちょうど（メモリか VRAM の余裕が0）
function tightRec(j) {
  return j.level === &quot;rec&quot; &amp;&amp; (j.ramMargin === 0 || j.vramMargin === 0);
}

// 最低ちょうど（メモリか VRAM が最低と同じで、推奨には届かない）
function tightMin(j) {
  return j.level === &quot;min&quot; &amp;&amp; (j.ram === j.r.minRam || (j.vramMargin !== null &amp;&amp; j.vram === j.r.minVram));
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。
// 入力は条件だけ（版・遊び方・PC の形・GPU の種類・メモリ・VRAM）。機種は選ばせない。
// 出力（sheet＋ruler。2026-10-15 に型 D の仕様書から移した）: メモリと VRAM は帯の物差し（最低・推奨の区切りと自分の値。値は model.mjs の judge のまま）、
// CPU・割り当て・遊び方の仮定・足すものは仕様書の行。足すものに合う買える商品（picks / accessory）は前のまま。

const T_ = {
  ja: {
    edition: &quot;版&quot;, java: &quot;Java版&quot;, bedrock: &quot;Bedrock版（統合版）&quot;,
    play: &quot;遊び方&quot;, vanilla: &quot;MODなし&quot;, mod: &quot;重いMODパック&quot;, shader: &quot;シェーダー&quot;, stream: &quot;配信しながら&quot;,
    form: &quot;今のPC&quot;, desktop: &quot;デスクトップ&quot;, laptop: &quot;ノート&quot;,
    gpu: &quot;GPU&quot;, igpu: &quot;内蔵GPU（CPU内蔵）&quot;, dgpu: &quot;独立したGPU&quot;,
    ram: &quot;メモリ&quot;, vram: &quot;GPUのVRAM&quot;,
    gbs: (x) =&gt; `${x}GB`,
    key: { play: &quot;遊び方&quot;, vram: &quot;VRAM&quot; }, sh: { bedrock: &quot;統合版&quot;, mod: &quot;重いMOD&quot;, stream: &quot;配信&quot;, igpu: &quot;内蔵&quot;, dgpu: &quot;独立&quot;, desktop: &quot;デスク&quot; },
    cMin: (x) =&gt; `最低 ${x}GB`, cRec: (x) =&gt; `推奨 ${x}GB`,
    kRam: &quot;メモリ&quot;, kGpu: &quot;GPU&quot;, kCpu: &quot;CPU&quot;, kAlloc: &quot;割り当て&quot;, kMod: &quot;重いMOD（仮定）&quot;, kShader: &quot;シェーダー（仮定）&quot;, kStream: &quot;配信（仮定）&quot;, kAdd: &quot;足すもの&quot;,
    vRec: &quot;推奨を満たす&quot;, vRecTight: &quot;推奨ちょうど（ぎりぎり）&quot;, vMin: &quot;最低は満たす（推奨に届かない）&quot;, vMinTight: &quot;最低ちょうど（ぎりぎり）&quot;, vBelow: &quot;最低に届かない&quot;,
    bRec: &quot;メモリは推奨を満たす&quot;, bRecTight: &quot;メモリは推奨ちょうど（ぎりぎり）&quot;, bMin: &quot;メモリは最低を満たす（推奨に届かない）&quot;, bMinTight: &quot;メモリは最低ちょうど（ぎりぎり）&quot;, bBelow: &quot;メモリが最低に届かない&quot;,
    lTight: &quot;メモリかVRAMが推奨か最低ちょうどで、余裕はありません&quot;,
    ramWhy: (a, b) =&gt; `最低${a}GB・推奨${b}GB（Mojangの表）`,
    vramWhy: (a, b) =&gt; `最低${a}GB・推奨${b}GB（Mojangの表）`,
    igpuVal: &quot;型番で比べる&quot;, igpuWhy: &quot;内蔵GPUはVRAMの数字で判定できません。最低の例はIntel Core i5-6400以降・Apple M1以降・Snapdragon X、推奨の例はApple M2 Proです。自分の型番を調べて比べます（例に無い型番はこの記事では判定できません）&quot;,
    bedGpu: &quot;型番で比べる&quot;, bedGpuWhy: (a, b) =&gt; `最低: ${a}。推奨: ${b}（MojangはVRAMの数字を出していません）`,
    cpuVal: &quot;型番で比べる（判定に入っていません）&quot;, cpuWhy: (a, b) =&gt; `最低: ${a}。推奨: ${b}。自分のCPUの型番を調べて比べます`,
    allocVal: (d, mx) =&gt; `既定${d}GB・上限${mx}GB`, allocWhy: &quot;上限は搭載メモリの半分（Mojangのヘルプ、64ビットのOS）&quot;,
    allocLow: (d) =&gt; `搭載4GB以下なので${d}GBに下げる（Mojangのヘルプ）`,
    modVal: { ok: &quot;仮定の全部が収まる&quot;, cond: &quot;仮定の一部だけ収まる&quot;, ng: &quot;仮定の下限も収まらない&quot; },
    modWhy: (lo, hi, mx) =&gt; `重いMODパックに${lo}〜${hi}GBを割り当てるとした仮定で、この搭載メモリの上限は${mx}GBです。パックごとの推奨は配布ページで確かめてください`,
    shVal: { ok: &quot;仮定の全部で足りる&quot;, cond: &quot;仮定の一部だけ足りる&quot;, ng: &quot;仮定に足りない&quot;, na: &quot;内蔵GPUは判定していません&quot; },
    shNa: &quot;8〜16GBの比べは独立GPU向けです。内蔵GPUの共有メモリは判定していません&quot;,
    shWhy: (lo, hi) =&gt; `シェーダーのVRAMは公式の数字が無いので、この記事が試算する${lo}〜${hi}GBと比べています`,
    stVal: { ok: &quot;残す量の仮定の全部が収まる&quot;, cond: &quot;残す量の仮定の一部だけ収まる&quot;, ng: &quot;残す量の仮定が収まらない&quot; },
    stWhy: (d, lo, hi) =&gt; `ゲームの${d}GBとは別に、Windows・OBS・ブラウザ用に${lo}〜${hi}GBを残すとした仮定です。OBSは決まった数字を出していません`,
    addNone: &quot;なし&quot;,
    addRam: (x) =&gt; `メモリを${x}GB以上に`, addRamD: &quot;デスクトップ用（DIMM）。マザーボードの規格（DDR4かDDR5か）と空きスロットを確かめます&quot;,
    addRamL: &quot;ノート用はSO-DIMMという別の規格です。増設できるかは、機種の仕様書で確かめます&quot;,
    addGpu: (x) =&gt; `VRAM ${x}GB以上のグラフィックボード`, addGpuWhy: &quot;デスクトップのPCI Expressのスロット・電源・ケースの長さを確かめます&quot;,
    addPc: (r, x) =&gt; `メモリ${r}GB以上・VRAM ${x}GB以上のゲーミングノート`, addPcWhy: &quot;この記事のグラフィックボードの候補はデスクトップ用なので、ノートPCは本体の候補を出します&quot;,
    tight: &quot;ちょうど&quot;,
    lBelow: &quot;最低を下回っても起動はするはずですが、性能と画質は保証されません（Mojangの告知）&quot;,
    lVulkan: &quot;Java版の動作環境の表はVulkan 1.3対応のGPUを求めています&quot;,
    lBedrock: &quot;Bedrock版はGPUとCPUを型番で比べます。この判定はメモリだけです&quot;,
    lCpu: &quot;CPUは判定に入っていません。CPUの行を見て、自分のCPUの型番と比べてください（MinecraftはGPUよりCPUに負荷がかかります）&quot;,
    vOk: (x) =&gt; `○ ${x}`, vCond: (x) =&gt; `△ ${x}`, vNg: (x) =&gt; x,
    note: &quot;結果は目安です。判定はMojangの動作環境の表のメモリとVRAMだけで、CPUとGPUの型番は比べていません。重いMOD・シェーダー・配信の行は一次情報の数字が無いので、この記事の仮定との比較です。&quot;,
  },
  en: {
    edition: &quot;Edition&quot;, java: &quot;Java Edition&quot;, bedrock: &quot;Bedrock Edition&quot;,
    play: &quot;How you play&quot;, vanilla: &quot;No mods&quot;, mod: &quot;Heavy modpack&quot;, shader: &quot;Shaders&quot;, stream: &quot;While streaming&quot;,
    form: &quot;Current PC&quot;, desktop: &quot;Desktop&quot;, laptop: &quot;Laptop&quot;,
    gpu: &quot;GPU&quot;, igpu: &quot;Integrated graphics&quot;, dgpu: &quot;Discrete GPU&quot;,
    ram: &quot;RAM&quot;, vram: &quot;GPU VRAM&quot;,
    gbs: (x) =&gt; `${x} GB`,
    key: { play: &quot;Play&quot;, form: &quot;PC&quot;, vram: &quot;VRAM&quot; }, sh: { java: &quot;Java&quot;, bedrock: &quot;Bedrock&quot;, igpu: &quot;iGPU&quot;, dgpu: &quot;dGPU&quot;, stream: &quot;Streaming&quot;, desktop: &quot;Desk&quot; },
    cMin: (x) =&gt; `Min ${x} GB`, cRec: (x) =&gt; `Rec. ${x} GB`,
    kRam: &quot;RAM&quot;, kGpu: &quot;GPU&quot;, kCpu: &quot;CPU&quot;, kAlloc: &quot;Allocation&quot;, kMod: &quot;Heavy mods (assumed)&quot;, kShader: &quot;Shaders (assumed)&quot;, kStream: &quot;Streaming (assumed)&quot;, kAdd: &quot;What to add&quot;,
    vRec: &quot;Meets recommended&quot;, vRecTight: &quot;Exactly at recommended (borderline)&quot;, vMin: &quot;Meets minimum only&quot;, vMinTight: &quot;Exactly at the minimum (borderline)&quot;, vBelow: &quot;Below the minimum&quot;,
    bRec: &quot;RAM meets recommended&quot;, bRecTight: &quot;RAM exactly at recommended (borderline)&quot;, bMin: &quot;RAM meets minimum only&quot;, bMinTight: &quot;RAM exactly at the minimum (borderline)&quot;, bBelow: &quot;RAM below the minimum&quot;,
    lTight: &quot;RAM or VRAM is exactly at the recommendation or minimum, with nothing to spare&quot;,
    ramWhy: (a, b) =&gt; `Minimum ${a} GB, recommended ${b} GB (Mojang&apos;s table)`,
    vramWhy: (a, b) =&gt; `Minimum ${a} GB, recommended ${b} GB (Mojang&apos;s table)`,
    igpuVal: &quot;Compare by model&quot;, igpuWhy: &quot;Integrated graphics can&apos;t be judged by a VRAM figure. Minimum examples: Intel i5-6400 or newer, Apple M1 or newer, Snapdragon X. Recommended example: Apple M2 Pro. Look up your model and compare (a model not listed can&apos;t be judged here)&quot;,
    bedGpu: &quot;Compare by model&quot;, bedGpuWhy: (a, b) =&gt; `Minimum: ${a}. Recommended: ${b} (Mojang lists no VRAM figure)`,
    cpuVal: &quot;Compare by model (not checked)&quot;, cpuWhy: (a, b) =&gt; `Minimum: ${a}. Recommended: ${b}. Look up your CPU model and compare`,
    allocVal: (d, mx) =&gt; `Default ${d} GB, max ${mx} GB`, allocWhy: &quot;The max is half your RAM (Mojang Help, 64-bit OS)&quot;,
    allocLow: (d) =&gt; `With 4 GB or less, lower it to ${d} GB (Mojang Help)`,
    modVal: { ok: &quot;Whole assumed range fits&quot;, cond: &quot;Only part of the range fits&quot;, ng: &quot;Even the low end doesn&apos;t fit&quot; },
    modWhy: (lo, hi, mx) =&gt; `Assuming a heavy modpack takes ${lo}–${hi} GB, this RAM allows up to ${mx} GB. Check each pack&apos;s page for its own figure`,
    shVal: { ok: &quot;Whole assumed band&quot;, cond: &quot;Part of the assumed band&quot;, ng: &quot;Below the assumed band&quot;, na: &quot;Not assessed for integrated graphics&quot; },
    shNa: &quot;The 8–16 GB comparison is for discrete GPUs. Shared memory on integrated graphics isn&apos;t assessed&quot;,
    shWhy: (lo, hi) =&gt; `There&apos;s no official VRAM figure for shaders, so this compares against the ${lo}–${hi} GB band of current GPUs this guide looks at`,
    stVal: { ok: &quot;Whole assumed headroom fits&quot;, cond: &quot;Only part of the headroom fits&quot;, ng: &quot;The assumed headroom doesn&apos;t fit&quot; },
    stWhy: (d, lo, hi) =&gt; `Assumes ${lo}–${hi} GB left for Windows, OBS and a browser on top of the game&apos;s ${d} GB. OBS gives no fixed number`,
    addNone: &quot;Nothing&quot;,
    addRam: (x) =&gt; `RAM to ${x} GB or more`, addRamD: &quot;Desktop DIMMs. Check your motherboard&apos;s type (DDR4 or DDR5) and free slots&quot;,
    addRamL: &quot;Laptops use SO-DIMM modules. Check the model&apos;s spec sheet to see whether RAM can be added&quot;,
    addGpu: (x) =&gt; `A graphics card with ${x} GB+ VRAM`, addGpuWhy: &quot;Check the PCI Express slot, power supply and case length&quot;,
    addPc: (r, x) =&gt; `A gaming laptop with ${r} GB+ RAM and ${x} GB+ VRAM`, addPcWhy: &quot;This guide&apos;s graphics card picks are desktop cards, so for a laptop it suggests a whole laptop&quot;,
    tight: &quot;Exactly&quot;,
    lBelow: &quot;Below the minimum the game should still launch, but performance and visual quality aren&apos;t guaranteed (Mojang)&quot;,
    lVulkan: &quot;Java Edition&apos;s requirements table asks for a Vulkan 1.3 capable GPU&quot;,
    lBedrock: &quot;For Bedrock, compare the GPU and CPU by model. This check covers RAM only&quot;,
    lCpu: &quot;The CPU isn&apos;t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&quot;,
    vOk: (x) =&gt; `✓ ${x}`, vCond: (x) =&gt; `△ ${x}`, vNg: (x) =&gt; x,
    note: &quot;This is a rough guide. It checks only the RAM and VRAM in Mojang&apos;s requirements table, not CPU or GPU models. The heavy-mod, shader and streaming rows have no official numbers, so they compare against this guide&apos;s assumptions.&quot;,
  },
};

function fields(M, lang) {
  const t = T_[lang];
  const o = (xs) =&gt; xs.map((x) =&gt; ({ value: x, label: t[x], short: t.sh[x] }));
  return [
    { name: &quot;edition&quot;, type: &quot;select&quot;, label: t.edition, value: &quot;java&quot;, options: o([&quot;java&quot;, &quot;bedrock&quot;]) },
    { name: &quot;play&quot;, type: &quot;select&quot;, label: t.play, short: t.key.play, value: &quot;vanilla&quot;, options: o([&quot;vanilla&quot;, &quot;mod&quot;, &quot;shader&quot;, &quot;stream&quot;]), when: (s) =&gt; s.edition === &quot;java&quot; },
    { name: &quot;form&quot;, type: &quot;select&quot;, label: t.form, short: t.key.form, value: &quot;desktop&quot;, options: o([&quot;desktop&quot;, &quot;laptop&quot;]) },
    { name: &quot;gpu&quot;, type: &quot;select&quot;, label: t.gpu, value: &quot;dgpu&quot;, options: o([&quot;dgpu&quot;, &quot;igpu&quot;]) },
    { name: &quot;ram&quot;, type: &quot;select&quot;, label: t.ram, value: &quot;16&quot;, options: M.ramSteps.map((x) =&gt; ({ value: String(x), label: `${t.ram} ${t.gbs(x)}`, short: t.gbs(x) })) },
    { name: &quot;vram&quot;, type: &quot;select&quot;, label: t.vram, short: t.key.vram, value: &quot;8&quot;, options: M.vramSteps.map((x) =&gt; ({ value: String(x), label: `VRAM ${t.gbs(x)}`, short: t.gbs(x) })), when: (s) =&gt; s.gpu === &quot;dgpu&quot; },
  ];
}

function inputs(v) {
  return { edition: v.edition, play: v.edition === &quot;java&quot; ? v.play : &quot;vanilla&quot;, form: v.form, gpu: v.gpu, ram: Number(v.ram), vram: v.gpu === &quot;dgpu&quot; ? Number(v.vram) : 0 };
}

function compute(v, M, lang) {
  const t = T_[lang];
  const x = inputs(v);
  if (!(x.ram &gt; 0)) return { status: &quot;error&quot;, lines: [] };
  const j = judge(x, M);
  const java = x.edition === &quot;java&quot;;
  const sheet = [];
  sheet.push({ key: t.kRam, value: t.gbs(j.ram), reason: t.ramWhy(j.r.minRam, j.r.recRam), ng: !j.ramMin, tight: j.ramMargin === 0 || j.ram === j.r.minRam, badge: j.ramMargin === 0 || j.ram === j.r.minRam ? t.tight : undefined });
  if (!java) sheet.push({ key: t.kGpu, value: t.bedGpu, reason: t.bedGpuWhy(M.txt.bMinGpu[lang], M.txt.bRecGpu[lang]) });
  else if (j.igpu) sheet.push({ key: t.kGpu, value: t.igpuVal, reason: t.igpuWhy, ng: false, badge: undefined });
  else sheet.push({ key: t.kGpu, value: `VRAM ${t.gbs(j.vram)}`, reason: t.vramWhy(j.r.minVram, j.r.recVram), ng: j.gpuMin === false, tight: j.vramMargin === 0 || j.vram === j.r.minVram, badge: j.vramMargin === 0 || j.vram === j.r.minVram ? t.tight : undefined });
  sheet.push({ key: t.kCpu, value: t.cpuVal, reason: java ? t.cpuWhy(M.txt.jMinCpu[lang], M.txt.jRecCpu[lang]) : t.cpuWhy(M.txt.bMinCpu[lang], M.txt.bRecCpu[lang]) });
  if (java) {
    sheet.push({ key: t.kAlloc, value: t.allocVal(j.alloc.def, j.alloc.max), reason: j.ram &lt;= M.lowRam ? t.allocLow(M.lowAlloc) : t.allocWhy, tight: j.alloc.def === j.alloc.max, badge: j.alloc.def === j.alloc.max ? t.tight : undefined });
    if (j.mod) sheet.push({ key: t.kMod, value: t.modVal[j.mod], reason: t.modWhy(M.modAlloc[0], M.modAlloc[1], j.alloc.max), ng: j.mod === &quot;ng&quot; });
    if (j.shader) sheet.push({ key: t.kShader, value: t.shVal[j.shader], reason: j.shader === &quot;na&quot; ? t.shNa : t.shWhy(M.shaderVram[0], M.shaderVram[1]), ng: j.shader === &quot;ng&quot; });
    if (j.stream) sheet.push({ key: t.kStream, value: t.stVal[j.stream], reason: t.stWhy(j.alloc.def, M.streamHead[0], M.streamHead[1]), ng: j.stream === &quot;ng&quot; });
  }
  // 足すもの
  const add = plan(j);
  const adds = [];
  let picks, accessory;
  const pool = (slot) =&gt; (M.picks[slot] || []).slice();
  for (const a of add) {
    if (a === &quot;ram_desktop&quot;) { adds.push({ v: t.addRam(j.ramTo), w: t.addRamD }); accessory = pool(M.slots.ram_desktop); }
    else if (a === &quot;ram_laptop&quot;) adds.push({ v: t.addRam(j.ramTo), w: t.addRamL });
    else if (a === &quot;gpu_new&quot; || a === &quot;gpu_swap&quot;) { adds.push({ v: t.addGpu(j.gpuTo), w: t.addGpuWhy }); picks = pool(M.slots.gpu); }
    else if (a === &quot;pc_laptop&quot;) { adds.push({ v: t.addPc(Math.max(j.r.recRam, j.ramTo || 0), j.gpuTo), w: t.addPcWhy }); picks = pool(M.slots.pc_laptop); accessory = undefined; }
  }
  // メモリだけ足すデスクトップは、メモリを本体の枠に
  if (!picks &amp;&amp; accessory) { picks = accessory; accessory = undefined; }
  if (picks &amp;&amp; !picks.length) picks = undefined;
  if (accessory &amp;&amp; !accessory.length) accessory = undefined;
  sheet.push({ key: t.kAdd, value: adds.length ? adds.map((a) =&gt; a.v).join(lang === &quot;ja&quot; ? &quot;、&quot; : &quot;; &quot;) : t.addNone, reason: adds.map((a) =&gt; a.w).join(lang === &quot;ja&quot; ? &quot;。&quot; : &quot;. &quot;) || undefined });
  const lines = [];
  lines.push(`${t.kAdd}: ${adds.length ? adds.map((a) =&gt; a.v).join(lang === &quot;ja&quot; ? &quot;、&quot; : &quot;; &quot;) : t.addNone}`);
  if (tightRec(j) || tightMin(j)) lines.push(t.lTight);
  if (j.level === &quot;below&quot;) lines.push(t.lBelow);
  lines.push(java ? t.lVulkan : t.lBedrock);
  lines.push(t.lCpu);
  // ruler（帯の物差し）: メモリと VRAM（Java 版の独立 GPU だけ）。区切りは Mojang の表の最低・推奨、印は自分の値。
  // 行の判定は sheet の印と同じ（最低に届かない ✕、推奨より上 ○、それ以外（最低〜推奨ちょうど）△）。区切りごとに同じ幅（band）
  const rowSt = (ok, min, margin) =&gt; (!min ? &quot;ng&quot; : ok &amp;&amp; margin &gt; 0 ? &quot;ok&quot; : &quot;cond&quot;);
  const rrow = (key, val, mn, rc, st0) =&gt; ({ key, cuts: [{ at: mn, label: t.cMin(mn) }, { at: rc, label: t.cRec(rc) }], value: val, valueLabel: t.gbs(val), status: st0, scale: &quot;band&quot; });
  const ruler = [rrow(t.kRam, j.ram, j.r.minRam, j.r.recRam, rowSt(j.ramRec, j.ramMin, j.ramMargin))];
  const vramRow = java &amp;&amp; !j.igpu;
  if (vramRow) ruler.push(rrow(t.vram, j.vram, j.r.minVram, j.r.recVram, rowSt(j.gpuRec, j.gpuMin, j.vramMargin)));
  // 仕様書は物差しに出した行（メモリ・VRAM）を除く
  // 足すもの（答え）を先に、CPU・割り当てなどはそのあと
  const sheet2 = sheet.filter((x) =&gt; x.key !== t.kRam &amp;&amp; !(vramRow &amp;&amp; x.key === t.kGpu)).sort((a, b) =&gt; (b.key === t.kAdd) - (a.key === t.kAdd));
  const st = status(j);
  const tm = tightMin(j);
  const word = java
    ? (j.level === &quot;rec&quot; ? (tightRec(j) ? t.vRecTight : t.vRec) : j.level === &quot;min&quot; ? (tm ? t.vMinTight : t.vMin) : t.vBelow)
    : (j.level === &quot;rec&quot; ? (tightRec(j) ? t.bRecTight : t.bRec) : j.level === &quot;min&quot; ? (tm ? t.bMinTight : t.bMin) : t.bBelow);
  const verdict = st === &quot;ok&quot; ? t.vOk(word) : st === &quot;cond&quot; ? t.vCond(word) : t.vNg(word);
  // 1画面に収める（2026-10-15。表し方だけ）: 物差しは dense（スマホでも行の名前を帯の左に）、仕様書はスマホでは全部「根拠と注意」の中・PC は1行（残りは「ほか n 行」。足すものは lines[0] にもある）
  return { status: st, verdict, lines, sheet: sheet2, sheetPhone: &quot;more&quot;, sheetPc: 1, ruler: { rows: ruler, dense: true }, picks, accessory };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件
function presets() {
  const b = { form: &quot;desktop&quot;, play: &quot;vanilla&quot; };
  return [
    { ...b, edition: &quot;java&quot;, gpu: &quot;igpu&quot;, ram: &quot;8&quot;, vram: &quot;8&quot; },
    { ...b, edition: &quot;java&quot;, gpu: &quot;igpu&quot;, ram: &quot;16&quot;, vram: &quot;8&quot; },
    { ...b, edition: &quot;java&quot;, gpu: &quot;dgpu&quot;, ram: &quot;8&quot;, vram: &quot;4&quot; },
    { ...b, edition: &quot;java&quot;, gpu: &quot;dgpu&quot;, ram: &quot;8&quot;, vram: &quot;8&quot; },
    { ...b, edition: &quot;java&quot;, gpu: &quot;dgpu&quot;, ram: &quot;16&quot;, vram: &quot;6&quot;, form: &quot;laptop&quot; },
    { ...b, edition: &quot;java&quot;, gpu: &quot;dgpu&quot;, ram: &quot;16&quot;, vram: &quot;8&quot; },
    { ...b, edition: &quot;java&quot;, gpu: &quot;dgpu&quot;, ram: &quot;16&quot;, vram: &quot;8&quot;, play: &quot;mod&quot; },
    { ...b, edition: &quot;java&quot;, gpu: &quot;dgpu&quot;, ram: &quot;32&quot;, vram: &quot;8&quot;, play: &quot;mod&quot; },
    { ...b, edition: &quot;java&quot;, gpu: &quot;dgpu&quot;, ram: &quot;16&quot;, vram: &quot;8&quot;, play: &quot;shader&quot; },
    { ...b, edition: &quot;java&quot;, gpu: &quot;dgpu&quot;, ram: &quot;32&quot;, vram: &quot;16&quot;, play: &quot;shader&quot; },
    { ...b, edition: &quot;java&quot;, gpu: &quot;dgpu&quot;, ram: &quot;16&quot;, vram: &quot;8&quot;, play: &quot;stream&quot; },
    { ...b, edition: &quot;bedrock&quot;, gpu: &quot;igpu&quot;, ram: &quot;4&quot;, vram: &quot;8&quot; },
    { ...b, edition: &quot;bedrock&quot;, gpu: &quot;igpu&quot;, ram: &quot;8&quot;, vram: &quot;8&quot; },
  ];
}

// カードに出す仕様（その商品の公式仕様のうち、この計算で使った値）
function pickSpecs(id, v, M, lang) {
  const p = M.specs[id];
  if (!p) return [];
  const t = T_[lang], out = [];
  if (p.vram) out.push(`VRAM ${t.gbs(p.vram)}`);
  if (p.ram) out.push(`${lang === &quot;ja&quot; ? &quot;メモリ&quot; : &quot;RAM&quot;} ${t.gbs(p.ram)}${p.ddr &amp;&amp; !p.vram ? ` ${p.ddr}` : &quot;&quot;}`);
  return out;
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;sheet&quot;, RESULT: &quot;ruler&quot;, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;how-much-ram-to-have-and-how-to-allocate-it&quot;&gt;How much RAM to have and how to allocate it&lt;/h2&gt;
&lt;p&gt;Per the Java 26.1 release notes, the default memory allocation, meaning the RAM you let the game use, is 4 GB from 26.1, up from 2 GB before. Per Mojang’s Help Center, the recommended maximum allocation on a 64-bit OS is half your RAM: up to 8 GB with 16 GB installed, or 16 GB with 32 GB.&lt;/p&gt;
&lt;p&gt;Whether giving the game more memory makes it faster couldn’t be confirmed from the sources; check a modpack’s download page for its recommended amount.&lt;/p&gt;
&lt;p&gt;Under this guide’s assumptions, 24 GB of installed RAM covers the full heavy-mod allocation range, with no headroom. If the pack takes 6–12 GB, the top of that range fits within half your RAM from 24 GB, and exactly 24 GB is borderline. With 16 GB installed you can give it up to 8 GB.&lt;/p&gt;
&lt;p&gt;To change the allocation, open the launcher’s Installations tab and pick More options. In the JVM arguments field (the setting passed to the part that runs Java), change the number in “-Xmx4G” to the amount you want. For 8 GB, that is “-Xmx8G”.&lt;/p&gt;
&lt;h2 id=&quot;how-to-choose-a-cpu-and-gpu&quot;&gt;How to choose a CPU and GPU&lt;/h2&gt;
&lt;p&gt;Per the FAQ on Mojang’s store page, Minecraft is more CPU-intensive than GPU-intensive. If you’re unsure, start with a CPU that reaches the recommended models.&lt;/p&gt;
&lt;p&gt;Yes. The integrated GPUs in Mojang’s minimum GPU examples are the Intel i5-6400 or newer, Apple M1 or newer and Snapdragon X. That covers the GPU only, so check the CPU separately and compare Bedrock’s GPU by model.&lt;/p&gt;
&lt;p&gt;Java’s recommended GPU examples are all discrete cards except the Apple M2 Pro.&lt;/p&gt;
&lt;p&gt;Per Mojang’s official pages, Bedrock ray tracing is available on DirectX-capable devices such as GeForce RTX and select AMD GPUs; check Minecraft’s official notes for supported GPUs. Vibrant Visuals on PC needs Minecraft to run on DX12, and it is planned for Java Edition later.&lt;/p&gt;
&lt;h3 id=&quot;gpu-and-vram-for-shaders&quot;&gt;GPU and VRAM for shaders&lt;/h3&gt;
&lt;p&gt;Under this guide’s assumptions, for shaders, aim for 8 GB of VRAM or more, and 16 GB for headroom. An official figure wasn’t found in the sources checked, so this is an estimate over 8–16 GB, not a measurement.&lt;/p&gt;
&lt;p&gt;Per the Iris FAQ, a VRAM figure for shaders wasn’t found in the sources checked (Iris site, Mojang). Mojang’s recommended 6 GB of VRAM is for the Fancy preset without shaders.&lt;/p&gt;
&lt;p&gt;Per NVIDIA’s published specs, the GeForce RTX 5060 Ti comes in 8 GB and 16 GB versions, so check for “16G” or “16GB” in the model name when you buy.&lt;/p&gt;
&lt;p&gt;Iris is the mod that runs shaders. Iris supports Fabric on 1.16.5 and higher and NeoForge on 1.21.1 and higher, not Forge, and ships with Sodium.&lt;/p&gt;
&lt;p&gt;Per Modrinth’s public data, 26.x support looks like this.&lt;/p&gt;





















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Mod&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;26.x support&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Iris (Fabric)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Builds available for 26.1, 26.2 and 26.3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Iris (NeoForge)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not verified&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Sodium&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Lists versions through 26.3 (loader-by-loader support not checked)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;For MODs and shaders on a laptop, this only compares capacity with the assumptions, and performance wasn’t tested. With 16 GB installed the allocation ceiling is 8 GB, so the top of the heavy-mod assumption (6-12 GB) doesn’t fit. Against the shader assumption (8-16 GB), the RTX 4050 Laptop’s 6 GB of VRAM falls short and the RTX 5060 Laptop’s 8 GB covers part of it.&lt;/p&gt;
&lt;p&gt;The same FAQ says, Optifine, Canvas and Vulkan mods can’t be used with the Iris shader mod and crash the game.&lt;/p&gt;
&lt;h3 id=&quot;streaming&quot;&gt;Streaming&lt;/h3&gt;
&lt;p&gt;The memory comparisons here are this guide’s assumptions, not measurements.&lt;/p&gt;
&lt;p&gt;Per OBS’s official requirements, OBS says CPU needs vary a lot with the encoder, resolution, fps and scene, so there’s no fixed number. RTX 50 cards have a 9th-generation NVENC (the GPU’s video encoder) that can also encode AV1. If you stream, leaving 4–8 GB for Windows, OBS and a browser on top of the game’s 4 GB still fits in the recommended 16 GB.&lt;/p&gt;
&lt;h3 id=&quot;budget&quot;&gt;Budget&lt;/h3&gt;
&lt;p&gt;Settle on a build that meets the recommended RAM and VRAM first, then raise it for mods and shaders. Check prices on the store page.&lt;/p&gt;
&lt;h2 id=&quot;requirement-changes-and-vulkan&quot;&gt;Requirement changes and Vulkan&lt;/h2&gt;
&lt;p&gt;Per Mojang’s announcement, both the minimum and recommended Java Edition requirements went up on July 21, 2026. The minimum targets 1080p at 30 FPS on the Fast preset, and the recommended spec targets 1080p at 60 FPS on Fancy.&lt;/p&gt;
&lt;p&gt;The same announcement says, a PC below the minimum should still launch the game. Performance and visual quality are no longer guaranteed, and it may stop launching as the game moves to Vulkan (a newer way for the GPU to draw).&lt;/p&gt;
&lt;p&gt;Per Mojang’s requirements table, the requirements table asks for a Vulkan 1.3 capable GPU. The separate in-game Vulkan renderer (added experimentally in 26.2) needs Vulkan 1.2, and that can change. Older GPUs without Vulkan run the game on OpenGL.&lt;/p&gt;
&lt;p&gt;Mods that render with OpenGL need extra work to support Vulkan; check each mod’s page for its status.&lt;/p&gt;
&lt;p&gt;Per the Java 26.1 release notes, from 26.1 the game requires Java 25.&lt;/p&gt;
&lt;p&gt;From 26.1 Java 25 comes bundled with the game, so with the bundled version you don’t need to install Java yourself. With a third-party launcher, check that it uses Java 25. For an older modpack, check the Minecraft and Java versions its page supports.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-need&quot;&gt;Picks by need&lt;/h2&gt;
&lt;p&gt;Where a listing met the bar, one is picked per need. The bar is a new item sold by Amazon or the maker’s own store, with 100 or more ratings and 4 stars or higher. In the US, there is no complete gaming PC pick among the products checked.&lt;/p&gt;
&lt;p&gt;Among this guide’s picks, this guide’s RAM and graphics card picks are desktop parts and won’t fit a laptop. Laptop memory uses a different, smaller module type called SO-DIMM. The RAM picks are DDR5, so first check that your motherboard supports DDR5.&lt;/p&gt;
&lt;h3 id=&quot;ddr5-memory-kit&quot;&gt;DDR5 memory kit&lt;/h3&gt;
&lt;p&gt;It meets the recommended 16 GB, and the top of the heavy-mod assumption (12 GB) fits within half of it.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61-Ag2lc5BL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30）&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CBRJ63RT?q=CORSAIR+VENGEANCE+DDR5+32GB%EF%BC%88CMK32GX5M2B6000Z30%EF%BC%89&amp;amp;us=B0CBRJ63RT&amp;amp;l=en&quot; aria-label=&quot;View CORSAIR VENGEANCE DDR5 32GB（CMK32GX5M2B6000Z30） on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;graphics-card-with-16-gb-of-vram&quot;&gt;Graphics card with 16 GB of VRAM&lt;/h3&gt;
&lt;p&gt;It covers the upper end of the shader assumption (16 GB). Per ASUS’s published specs, the recommended PSU is 550W, it needs 1 8-pin power connector, and it is 202 mm long. Check your PSU and case first.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS Dual Radeon RX 9060 XT 16GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71WTt-GxSpL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS Dual Radeon RX 9060 XT 16GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FLHBFFX4?q=ASUS+Dual+Radeon+RX+9060+XT+16GB&amp;amp;us=B0FLHBFFX4&amp;amp;l=en&quot; aria-label=&quot;View ASUS Dual Radeon RX 9060 XT 16GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;The selector also lists an 8GB PRIME model and an RX 7600 model; choose Dual Fans, RX9060XT|16GB|Black.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;what-are-the-recommended-specs-for-minecraft-java-edition&quot;&gt;What are the recommended specs for Minecraft Java Edition?&lt;/h3&gt;
&lt;p&gt;Java Edition recommends 16 GB of RAM and a CPU such as a Core i5-12400. The GPU should have 6 GB of VRAM (its own memory), such as a GeForce RTX 2060.&lt;/p&gt;
&lt;p&gt;The minimum is 8 GB of RAM (12 GB with integrated graphics), 2 GB of VRAM and a CPU with 4 physical cores.&lt;/p&gt;
&lt;h3 id=&quot;did-the-minecraft-system-requirements-change-can-my-old-pc-still-run-it&quot;&gt;Did the Minecraft system requirements change? Can my old PC still run it?&lt;/h3&gt;
&lt;p&gt;Both the minimum and recommended Java Edition requirements went up on July 21, 2026. The same announcement says, a PC below the minimum should still launch the game.&lt;/p&gt;
&lt;p&gt;Performance and visual quality are no longer guaranteed, and it may stop launching as the game moves to Vulkan (a newer way for the GPU to draw).&lt;/p&gt;
&lt;h3 id=&quot;is-16-gb-of-ram-enough-for-minecraft&quot;&gt;Is 16 GB of RAM enough for Minecraft?&lt;/h3&gt;
&lt;p&gt;For Java without mods, yes, because 16 GB is Mojang’s recommended figure. Under this guide’s assumptions, 24 GB of installed RAM covers the full heavy-mod allocation range, with no headroom.&lt;/p&gt;
&lt;p&gt;If the pack takes 6–12 GB, the top of that range fits within half your RAM from 24 GB, and exactly 24 GB is borderline. With 16 GB installed you can give it up to 8 GB.&lt;/p&gt;
&lt;h3 id=&quot;how-much-ram-should-i-allocate-to-minecraft&quot;&gt;How much RAM should I allocate to Minecraft?&lt;/h3&gt;
&lt;p&gt;Per the Java 26.1 release notes, the default memory allocation, meaning the RAM you let the game use, is 4 GB from 26.1, up from 2 GB before. The recommended maximum allocation on a 64-bit OS is half your RAM: up to 8 GB with 16 GB installed, or 16 GB with 32 GB.&lt;/p&gt;
&lt;p&gt;Per Mojang’s Help Center, whether giving the game more memory makes it faster couldn’t be confirmed from the sources; check a modpack’s download page for its recommended amount.&lt;/p&gt;
&lt;h3 id=&quot;what-gpu-and-how-much-vram-do-i-need-for-shaders&quot;&gt;What GPU and how much VRAM do I need for shaders?&lt;/h3&gt;
&lt;p&gt;Under this guide’s assumptions, for shaders, aim for 8 GB of VRAM or more, and 16 GB for headroom. An official figure wasn’t found in the sources checked, so this is an estimate over 8–16 GB, not a measurement.&lt;/p&gt;
&lt;p&gt;Per the Iris FAQ, a VRAM figure for shaders wasn’t found in the sources checked (Iris site, Mojang). Mojang’s recommended 6 GB of VRAM is for the Fancy preset without shaders.&lt;/p&gt;
&lt;h3 id=&quot;can-i-play-minecraft-on-integrated-graphics&quot;&gt;Can I play Minecraft on integrated graphics?&lt;/h3&gt;
&lt;p&gt;Yes. The integrated GPUs in Mojang’s minimum GPU examples are the Intel i5-6400 or newer, Apple M1 or newer and Snapdragon X.&lt;/p&gt;
&lt;p&gt;That covers the GPU only, so check the CPU separately and compare Bedrock’s GPU by model.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Requirements: &lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Mojang’s requirements table&lt;/a&gt;, &lt;a href=&quot;https://www.minecraft.net/en-us/article/minecraft-java-edition-system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;the requirements announcement&lt;/a&gt;, &lt;a href=&quot;https://www.minecraft.net/en-us/article/minecraft-java-edition-26-1&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;the Java 26.1 announcement&lt;/a&gt;. Allocation: &lt;a href=&quot;https://help.minecraft.net/hc/en-us/articles/39083573916941-Fix-Minecraft-Java-Edition-Game-Crashes-by-Checking-Memory-Allocation&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Mojang’s Help Center&lt;/a&gt;, &lt;a href=&quot;https://blog.curseforge.com/how-to-allocate-more-ram-to-minecraft/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;CurseForge&lt;/a&gt;, &lt;a href=&quot;https://modrinth.com/mod/distanthorizons&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Distant Horizons&lt;/a&gt;. GPU, streaming and mods: &lt;a href=&quot;https://www.nvidia.com/en-us/geforce/graphics-cards/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;NVIDIA&lt;/a&gt;, &lt;a href=&quot;https://www.amd.com/en/products/graphics/desktops/radeon/9000-series/amd-radeon-rx-9060xt.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;AMD&lt;/a&gt;, &lt;a href=&quot;https://obsproject.com/kb/system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;OBS&lt;/a&gt;, &lt;a href=&quot;https://irisshaders.dev/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Iris&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Java and Bedrock verdicts use only the RAM and VRAM in Mojang’s requirements table (the Java requirements were revised on 2026-07-21). Java minimum: 8 GB of RAM with a discrete GPU, 12 GB with integrated graphics, and 2 GB of VRAM. Java recommended: 16 GB of RAM and 6 GB of VRAM. Bedrock needs 4 GB of RAM at minimum and 8 GB recommended. CPU and GPU models are compared with the examples in the table, not calculated.&lt;/li&gt;
&lt;li&gt;The allocation ceiling is installed RAM divided by 2 (Mojang’s Help Center, 64-bit OS), lowered to 2 GB if you have 4 GB or less. The Java default is 4 GB from 26.1 (it was 2 GB before). For example, 16 GB installed gives 8 GB and 32 GB gives 16 GB.&lt;/li&gt;
&lt;li&gt;The heavy-mod allocation is an assumption of 6 GB to 12 GB, set from CurseForge’s general guidance (Vanilla 2-4 GB; light modded 4-6 GB; heavy modpacks 6-10 GB or more) and the Distant Horizons guidance (Distant Horizons FAQ: for CPUs with 4-8 cores try 6-8 GB; for CPUs with 10+ cores try 12-16 GB (when the game stutters)). It is not a measurement. If half your RAM is 12 GB or more (installed 24 GB or more), the whole range fits; if half is 6 GB or more, part of it fits.&lt;/li&gt;
&lt;li&gt;The shader VRAM is an assumed band of 8 GB to 16 GB, from the 8 GB of the current RTX 5060 and 5050 up to the 16 GB versions of the RTX 5060 Ti and RX 9060 XT. Neither Iris nor Mojang gives a number, so a card inside the whole band gets a check mark and one inside part of it gets a triangle. For streaming, the assumption is the game’s default 4 GB plus 4 to 8 GB left for Windows, OBS and a browser, which all fits from 12 GB installed. OBS gives no fixed number (OBS Studio on Windows needs Windows 10 or 11 and a DirectX 10.1 compatible GPU; CPU requirements vary considerably with encoder, resolution, FPS and scene complexity).&lt;/li&gt;
&lt;li&gt;The 8-16 GB shader comparison is for discrete GPUs; shared memory on integrated graphics is not assessed (integrated rows show “Not assessed”).&lt;/li&gt;
&lt;li&gt;VRAM figures are NVIDIA’s and AMD’s published values (RTX 5060 Ti 16 GB version 16 GB, 8 GB version 8 GB, RTX 4050 Laptop 6 GB, RTX 5050 Laptop 8 GB). Picks come from new listings on Amazon.com with 100 or more ratings, 4 stars or higher, sold by Amazon or the maker’s own store, whose official specs meet the condition; the pick is the cheapest with shipping included. Listings whose rating count is shared with a different configuration are not counted. The hardware was not tested.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;








































































































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Date Mojang changed the Java Edition requirements&lt;/td&gt;&lt;td&gt;2026-07-21&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/article/minecraft-java-edition-system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Published 7/21/26. ‘The recommended system requirements change on July 21’ / ‘Mi&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Performance target of the Java minimum spec&lt;/td&gt;&lt;td&gt;1080p @ 30 FPS, Fast preset&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Java System Requirements Target Minimum: ‘1080p @ 30 FPS, Fast preset’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Performance target of the Java recommended spec&lt;/td&gt;&lt;td&gt;1080p @ 60 FPS, Fancy preset&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Java System Requirements Target Recommended: ‘1080p @ 60 FPS, Fancy preset’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java minimum RAM (discrete GPU)&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Memory Minimum: ‘8 GB (with discrete GPU) or 12 GB (with integrated GPU)‘&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java minimum RAM (integrated GPU)&lt;/td&gt;&lt;td&gt;12 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Memory Minimum: ’… or 12 GB (with integrated GPU)‘&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java recommended RAM&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Memory Recommended: ‘16 GB’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java minimum CPU physical cores&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Processor Minimum: ’… (4 physical cores minimum)‘&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java minimum CPU&lt;/td&gt;&lt;td&gt;Intel Core i3-10100, AMD Ryzen 3 3100, Qualcomm Snapdragon X, or Apple M1 (4 physical cores minimum)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Java System Requirements Processor Minimum&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java recommended CPU&lt;/td&gt;&lt;td&gt;Intel Core i5-12400, AMD Ryzen 5 5600, or Apple M2 Pro&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Java System Requirements Processor Recommended&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java minimum GPU&lt;/td&gt;&lt;td&gt;Vulkan 1.3 capable GPU with at least 2 GB VRAM: NVIDIA GTX 950 or newer, AMD Radeon RX 460 or newer, Intel Arc A310 or newer (discrete) or Intel i5-6400 or newer (integrated), Apple M1 or newer, or Qualcomm Snapdragon X&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Java System Requirements Graphics Minimum&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java recommended GPU&lt;/td&gt;&lt;td&gt;NVIDIA GeForce RTX 2060, AMD Radeon RX 5600 XT, Intel Arc A580, or Apple M2 Pro; 6 GB VRAM&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Java System Requirements Graphics Recommended&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java minimum VRAM&lt;/td&gt;&lt;td&gt;2 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; ‘Vulkan 1.3 capable GPU with at least 2 GB VRAM’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java recommended VRAM&lt;/td&gt;&lt;td&gt;6 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Recommended graphics: ’… 6 GB VRAM.‘&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Vulkan version required in the Java requirements table&lt;/td&gt;&lt;td&gt;Vulkan 1.3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Minimum Graphics: ‘Vulkan 1.3 capable GPU’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;What Java 26.2’s experimental Vulkan renderer needs&lt;/td&gt;&lt;td&gt;Vulkan 1.2 with dynamic rendering and push descriptors&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/article/minecraft-java-edition-26-2&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Vulkan Support: ‘The current requirement is Vulkan 1.2 with dynamic rendering an&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java minimum OS&lt;/td&gt;&lt;td&gt;Windows 10 64-bit, Windows on ARM, macOS 12+, or Linux 64-bit&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Java System Requirements OS Minimum&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java recommended OS&lt;/td&gt;&lt;td&gt;Windows 11 64-bit, macOS 14+, or Linux 64-bit&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Java System Requirements OS Recommended&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java minimum storage&lt;/td&gt;&lt;td&gt;2 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; FAQ ‘How much storage do I need’: ‘Java Edition: 2 GB minimum, 4 GB recommended’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java recommended storage&lt;/td&gt;&lt;td&gt;4 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; FAQ: ‘Java Edition: 2 GB minimum, 4 GB recommended’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;How Mojang treats PCs below the minimum&lt;/td&gt;&lt;td&gt;Java Edition should still launch below the minimum, but performance and visual quality are no longer guaranteed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/article/minecraft-java-edition-system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; ‘If your computer falls below the new minimum requirements, Java Edition should&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CPU or GPU load (Mojang FAQ)&lt;/td&gt;&lt;td&gt;Minecraft is more CPU-intensive than GPU-intensive&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; FAQ: ‘Minecraft is more CPU-intensive than GPU-intensive.‘&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock minimum CPU&lt;/td&gt;&lt;td&gt;Intel Celeron J4105 ／ AMD FX-4100&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Bedrock System Requirements Processor Minimum&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock recommended CPU&lt;/td&gt;&lt;td&gt;Intel i7-6500U ／ AMD A8-6600K&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Bedrock System Requirements Processor Recommended&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock minimum GPU&lt;/td&gt;&lt;td&gt;Intel HD Graphics 4000 ／ AMD Radeon R5&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Bedrock System Requirements Graphics Minimum&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock recommended GPU&lt;/td&gt;&lt;td&gt;NVIDIA GeForce 940M ／ AMD Radeon HD 8570D&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Bedrock System Requirements Graphics Recommended&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock minimum RAM&lt;/td&gt;&lt;td&gt;4 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Bedrock Memory Minimum: 4 GB&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock recommended RAM&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Bedrock Memory Recommended: 8 GB&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock OS (same for minimum and recommended)&lt;/td&gt;&lt;td&gt;Windows 10 version 19041.0 or higher (ARM or x64)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Bedrock System Requirements OS: Windows 10 version 19041.0 or higher; Architectu&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock minimum storage&lt;/td&gt;&lt;td&gt;4 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; FAQ: ‘Bedrock Edition: 4 GB minimum, 8 GB recommended’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock recommended storage&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; FAQ: ‘Bedrock Edition: 4 GB minimum, 8 GB recommended’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GPUs for Bedrock ray tracing (Mojang wording)&lt;/td&gt;&lt;td&gt;DirectX capable devices, such as GeForce RTX GPU and select AMD GPUs&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/article/ray-tracing&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Vibrant Visuals requirement on PC (Mojang)&lt;/td&gt;&lt;td&gt;PC: running Minecraft on DX12&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/vibrant-visuals-update&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; ‘Vibrant Visuals graphics upgrade is currently only available for Minecraft: Bed&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Vibrant Visuals on Java (Mojang)&lt;/td&gt;&lt;td&gt;Vibrant Visuals is planned for Java Edition in the future&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/vibrant-visuals-update&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; ‘plans to bring it to Java Edition in the future’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Controller support (Mojang FAQ)&lt;/td&gt;&lt;td&gt;Java Edition has no native controller support; Bedrock supports controller and touch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; FAQ: ‘Java Edition doesn’t currently have native controller support at this time&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Crossplay scope (Mojang FAQ)&lt;/td&gt;&lt;td&gt;Bedrock: Windows 10, Windows 11, Xbox, Nintendo Switch, PS5, and mobile; Java: Windows, Mac, Linux only&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; FAQ ‘Can you play Minecraft cross-platform?‘&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PC edition bundles Java and Bedrock (Mojang)&lt;/td&gt;&lt;td&gt;Minecraft: Java &amp;amp; Bedrock Edition for PC includes both Bedrock and Java; Bedrock runs on Windows only, Java on Windows, Mac and Linux&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A1%7D&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Store page: Standard Edition lists ‘Minecraft: Bedrock Edition’, ‘Minecraft: Jav&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java runtime version required (from 26.1)&lt;/td&gt;&lt;td&gt;The game requires Java 25 from 26.1&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/article/minecraft-26-1-snapshot-1&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Published 12/16/25 (26.1 Snapshot 1): ‘The game now requires Java 25’; marks the&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java 26.1 release date&lt;/td&gt;&lt;td&gt;2026-03-24&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/article/minecraft-java-edition-26-1&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Published 3/24/26&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java default memory allocation (26.1 onward)&lt;/td&gt;&lt;td&gt;4 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/article/minecraft-java-edition-26-1&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Default JVM Options: ‘The game now allocates 4 GB of RAM by default (up from 2 G&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Recommended allocation ceiling (Mojang Help)&lt;/td&gt;&lt;td&gt;64-bit OS: half of your RAM is the recommended maximum&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://help.minecraft.net/hc/en-us/articles/39083573916941-Fix-Minecraft-Java-Edition-Game-Crashes-by-Checking-Memory-Allocation&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;help.minecraft.net&lt;/a&gt; ‘64-bit operating systems: Half of your RAM is the recommended maximum.’ Change&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Plan to remove OpenGL (Mojang, Feb 18, 2026)&lt;/td&gt;&lt;td&gt;Mojang will remove OpenGL once Vulkan is stable; players will be notified in advance and the minimum requirements will be updated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/article/another-step-towards-vibrant-visuals-for-java-edition&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Published 2/18/26: ‘Once we’re happy with the performance and stability of Vulka&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Experimental Vulkan rendering (Java 26.2)&lt;/td&gt;&lt;td&gt;26.2 (June 16, 2026) added experimental Vulkan rendering and a Graphics API video setting&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/article/minecraft-java-edition-26-2&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Published 6/16/26: ‘Added experimental support for rendering the game through Vu&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Impact on mods (Mojang)&lt;/td&gt;&lt;td&gt;Mods that render with OpenGL will take modders more effort to update to Vulkan&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/article/another-step-towards-vibrant-visuals-for-java-edition&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; ‘Switching from OpenGL to Vulkan will have an impact on the mods that currently&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;What Iris supports (Iris official FAQ)&lt;/td&gt;&lt;td&gt;Iris supports Minecraft 1.16.5 and higher; Fabric on 1.16.5+, NeoForge on 1.21.1+; Forge is not supported; Iris ships with Sodium&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://irisshaders.dev/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;irisshaders.dev&lt;/a&gt; FAQ ‘What versions does Iris support?’ / ‘What mod loaders does Iris support?‘;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;What does not work with Iris (Iris FAQ)&lt;/td&gt;&lt;td&gt;Optifine, Canvas, or Vulkan mods are incompatible with Iris and will crash the game; resource packs that use core shaders will not work with a shader pack enabled&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://irisshaders.dev/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;irisshaders.dev&lt;/a&gt; FAQ ‘Does insert mod work with Iris?’: ‘Optifine, Canvas, or Vulkan mods: Incomp&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Iris 26.x availability (Modrinth data)&lt;/td&gt;&lt;td&gt;Iris for Fabric has builds for Minecraft 26.1, 26.2 and 26.3 (latest 1.11.7+26.3-fabric, published 2026-09-30)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://api.modrinth.com/v2/project/iris/version&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;api.modrinth.com&lt;/a&gt; Modrinth API (loaders=fabric): 1.11.7+26.3-fabric 2026-09-30; 1.11.4+26.2-fabric&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sodium 26.x availability (Modrinth data)&lt;/td&gt;&lt;td&gt;Sodium lists game versions up to 26.3 (project updated 2026-09-20)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://api.modrinth.com/v2/project/sodium&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;api.modrinth.com&lt;/a&gt; Modrinth API: game_versions end with 26.2, 26.3-rc-1, 26.3-rc-2, 26.3; updated 2&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CurseForge’s official allocation guidance&lt;/td&gt;&lt;td&gt;Vanilla 2-4 GB; light modded 4-6 GB; heavy modpacks 6-10 GB or more&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://blog.curseforge.com/how-to-allocate-more-ram-to-minecraft/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;blog.curseforge.com&lt;/a&gt; Published Aug 14, 2025: Vanilla ‘2–4 GB’, Light modded gameplay ‘4–6 GB’, Heavy&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Distant Horizons’ own RAM guidance&lt;/td&gt;&lt;td&gt;Distant Horizons FAQ: for CPUs with 4-8 cores try 6-8 GB; for CPUs with 10+ cores try 12-16 GB (when the game stutters)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://modrinth.com/mod/distanthorizons&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;modrinth.com&lt;/a&gt; Modrinth page FAQ ‘My game is stuttering, help!’: 1. use a concurrent GC such as&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OBS Studio official requirements&lt;/td&gt;&lt;td&gt;OBS Studio on Windows needs Windows 10 or 11 and a DirectX 10.1 compatible GPU; CPU requirements vary considerably with encoder, resolution, FPS and scene complexity&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://obsproject.com/kb/system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;obsproject.com&lt;/a&gt; System Requirements: Windows ‘DirectX 10.1 compatible GPU’, ‘Windows 10, or Wind&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RTX 50 series encoder (NVIDIA)&lt;/td&gt;&lt;td&gt;RTX 50 series: 9th-generation NVENC, AV1 encode supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/graphics-cards/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt; RTX 50 series table: NVIDIA Encoder (NVENC) 9th Generation (RTX 5060 Ti / 5060 /&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GeForce RTX 5060 Ti (16 GB model) VRAM&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/graphics-cards/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt; Standard Memory Config (RTX 5060 Ti): ‘16 GB / 8 GB GDDR7’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GeForce RTX 5060 Ti (8 GB model) VRAM&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/graphics-cards/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt; RTX 5060 Ti: ‘16 GB / 8 GB GDDR7’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GeForce RTX 5060 VRAM&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/graphics-cards/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt; RTX 5060: ‘8 GB GDDR7’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GeForce RTX 5050 VRAM&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/graphics-cards/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt; RTX 5050: ‘8 GB GDDR6’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GeForce RTX 5070 VRAM&lt;/td&gt;&lt;td&gt;12 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/graphics-cards/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt; RTX 5070: ‘12 GB GDDR7’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GeForce RTX 4050 Laptop GPU VRAM&lt;/td&gt;&lt;td&gt;6 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/laptops/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt; 40 Series laptop table: RTX 4050 Laptop GPU ‘Standard Memory Config 6 GB GDDR6’&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GeForce RTX 5060 Laptop GPU VRAM&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/laptops/50-series/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt; 50 Series laptop page: Standard Memory Configuration ‘8 GB GDDR7’ (5060 Laptop G&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Radeon RX 9060 XT (16 GB model) VRAM&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.amd.com/en/products/graphics/desktops/radeon/9000-series/amd-radeon-rx-9060xt.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;amd.com&lt;/a&gt; AMD page title ‘AMD Radeon RX 9060 XT (16GB)‘&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GeForce RTX 5050 Laptop GPU VRAM&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/laptops/50-series/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt; 50 Series laptop table: Standard Memory Configuration row ends with ‘8 GB GDDR7&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Older GPUs without Vulkan (Java 26.2)&lt;/td&gt;&lt;td&gt;Vulkan is not supported by older hardware or drivers; OpenGL is used as a fallback&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/article/minecraft-java-edition-26-2&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Vulkan Support: ‘Vulkan is not supported by older hardware or drivers - OpenGL w&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Where to see installed RAM (Windows, per Mojang Help)&lt;/td&gt;&lt;td&gt;Start menu Settings System About&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://help.minecraft.net/hc/en-us/articles/39083573916941-Fix-Minecraft-Java-Edition-Game-Crashes-by-Checking-Memory-Allocation&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;help.minecraft.net&lt;/a&gt; ‘Verify the installed RAM on your computer. Windows: Start menu Settings System&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RX 9060 XT 16 GB (ASUS Dual) recommended power supply, per ASUS&lt;/td&gt;&lt;td&gt;550W&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/motherboards-components/graphics-cards/dual/dual-rx9060xt-16g/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RX 9060 XT 16 GB (ASUS Dual) auxiliary power connector&lt;/td&gt;&lt;td&gt;1 x 8-pin&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/motherboards-components/graphics-cards/dual/dual-rx9060xt-16g/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Tech Specs Power Connectors: 1 x 8-pin&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RX 9060 XT 16 GB (ASUS Dual) dimensions&lt;/td&gt;&lt;td&gt;202 x 120 x 49 mm (2.5 slot)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/motherboards-components/graphics-cards/dual/dual-rx9060xt-16g/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Tech Specs Dimensions: 202 x 120 x 49mm / Slot: 2.5 Slot&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RX 9060 XT 16 GB (ASRock Challenger) recommended power supply, per ASRock&lt;/td&gt;&lt;td&gt;550W&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asrock.com/Graphics-Card/AMD/Radeon%20RX%209060%20XT%20Challenger%2016GB%20OC/index.asp#Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asrock.com&lt;/a&gt; Specification Recommended PSU: 550W&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RX 9060 XT 16 GB (ASRock Challenger) auxiliary power connector&lt;/td&gt;&lt;td&gt;1 x 8-pin&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asrock.com/Graphics-Card/AMD/Radeon%20RX%209060%20XT%20Challenger%2016GB%20OC/index.asp#Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asrock.com&lt;/a&gt; Specification Power Connector: 1 x 8-pin&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RX 9060 XT 16 GB (ASRock Challenger) dimensions&lt;/td&gt;&lt;td&gt;249 x 132 x 41 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asrock.com/Graphics-Card/AMD/Radeon%20RX%209060%20XT%20Challenger%2016GB%20OC/index.asp#Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asrock.com&lt;/a&gt; Specification Dimensions: 249 x 132 x 41 mm&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java bundled with the game from 26.1&lt;/td&gt;&lt;td&gt;The included Java distribution is now the Microsoft build of OpenJDK 25&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.minecraft.net/en-us/article/minecraft-java-edition-26-1&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;minecraft.net&lt;/a&gt; Published 3/24/26 (26.1 release): ‘The game now requires Java 25’; ‘The included&lt;/td&gt;&lt;td&gt;2026-10-10&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Minecraft PC spec check: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;










































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Java Edition, No mods, Desktop, Integrated graphics, RAM 8 GB&lt;/td&gt;&lt;td&gt;Below the minimum. What to add: RAM to 16 GB or more. Below the minimum the game should still launch, but performance and visual quality aren’t guaranteed (Mojang). Java Edition’s requirements table asks for a Vulkan 1.3 capable GPU. The CPU isn’t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-27-minecraft-pc/?minecraft-pc-check-edition=java&amp;amp;minecraft-pc-check-play=vanilla&amp;amp;minecraft-pc-check-form=desktop&amp;amp;minecraft-pc-check-gpu=igpu&amp;amp;minecraft-pc-check-ram=8#minecraft-pc-check&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java Edition, No mods, Desktop, Integrated graphics, RAM 16 GB&lt;/td&gt;&lt;td&gt;△ Exactly at recommended (borderline). What to add: Nothing. RAM or VRAM is exactly at the recommendation or minimum, with nothing to spare. Java Edition’s requirements table asks for a Vulkan 1.3 capable GPU. The CPU isn’t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-27-minecraft-pc/?minecraft-pc-check-edition=java&amp;amp;minecraft-pc-check-play=vanilla&amp;amp;minecraft-pc-check-form=desktop&amp;amp;minecraft-pc-check-gpu=igpu&amp;amp;minecraft-pc-check-ram=16#minecraft-pc-check&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java Edition, No mods, Desktop, Discrete GPU, RAM 8 GB, VRAM 4 GB&lt;/td&gt;&lt;td&gt;△ Exactly at the minimum (borderline). What to add: RAM to 16 GB or more; A graphics card with 6 GB+ VRAM. RAM or VRAM is exactly at the recommendation or minimum, with nothing to spare. Java Edition’s requirements table asks for a Vulkan 1.3 capable GPU. The CPU isn’t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-27-minecraft-pc/?minecraft-pc-check-edition=java&amp;amp;minecraft-pc-check-play=vanilla&amp;amp;minecraft-pc-check-form=desktop&amp;amp;minecraft-pc-check-gpu=dgpu&amp;amp;minecraft-pc-check-ram=8&amp;amp;minecraft-pc-check-vram=4#minecraft-pc-check&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java Edition, No mods, Desktop, Discrete GPU, RAM 8 GB, VRAM 8 GB&lt;/td&gt;&lt;td&gt;△ Exactly at the minimum (borderline). What to add: RAM to 16 GB or more. RAM or VRAM is exactly at the recommendation or minimum, with nothing to spare. Java Edition’s requirements table asks for a Vulkan 1.3 capable GPU. The CPU isn’t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-27-minecraft-pc/?minecraft-pc-check-edition=java&amp;amp;minecraft-pc-check-play=vanilla&amp;amp;minecraft-pc-check-form=desktop&amp;amp;minecraft-pc-check-gpu=dgpu&amp;amp;minecraft-pc-check-ram=8&amp;amp;minecraft-pc-check-vram=8#minecraft-pc-check&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java Edition, No mods, Laptop, Discrete GPU, RAM 16 GB, VRAM 6 GB&lt;/td&gt;&lt;td&gt;△ Exactly at recommended (borderline). What to add: Nothing. RAM or VRAM is exactly at the recommendation or minimum, with nothing to spare. Java Edition’s requirements table asks for a Vulkan 1.3 capable GPU. The CPU isn’t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-27-minecraft-pc/?minecraft-pc-check-edition=java&amp;amp;minecraft-pc-check-play=vanilla&amp;amp;minecraft-pc-check-form=laptop&amp;amp;minecraft-pc-check-gpu=dgpu&amp;amp;minecraft-pc-check-ram=16&amp;amp;minecraft-pc-check-vram=6#minecraft-pc-check&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java Edition, No mods, Desktop, Discrete GPU, RAM 16 GB, VRAM 8 GB&lt;/td&gt;&lt;td&gt;△ Exactly at recommended (borderline). What to add: Nothing. RAM or VRAM is exactly at the recommendation or minimum, with nothing to spare. Java Edition’s requirements table asks for a Vulkan 1.3 capable GPU. The CPU isn’t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-27-minecraft-pc/?minecraft-pc-check-edition=java&amp;amp;minecraft-pc-check-play=vanilla&amp;amp;minecraft-pc-check-form=desktop&amp;amp;minecraft-pc-check-gpu=dgpu&amp;amp;minecraft-pc-check-ram=16&amp;amp;minecraft-pc-check-vram=8#minecraft-pc-check&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java Edition, Heavy modpack, Desktop, Discrete GPU, RAM 16 GB, VRAM 8 GB&lt;/td&gt;&lt;td&gt;△ Exactly at recommended (borderline). What to add: RAM to 24 GB or more. RAM or VRAM is exactly at the recommendation or minimum, with nothing to spare. Java Edition’s requirements table asks for a Vulkan 1.3 capable GPU. The CPU isn’t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-27-minecraft-pc/?minecraft-pc-check-edition=java&amp;amp;minecraft-pc-check-play=mod&amp;amp;minecraft-pc-check-form=desktop&amp;amp;minecraft-pc-check-gpu=dgpu&amp;amp;minecraft-pc-check-ram=16&amp;amp;minecraft-pc-check-vram=8#minecraft-pc-check&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java Edition, Heavy modpack, Desktop, Discrete GPU, RAM 32 GB, VRAM 8 GB&lt;/td&gt;&lt;td&gt;✓ Meets recommended. What to add: Nothing. Java Edition’s requirements table asks for a Vulkan 1.3 capable GPU. The CPU isn’t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-27-minecraft-pc/?minecraft-pc-check-edition=java&amp;amp;minecraft-pc-check-play=mod&amp;amp;minecraft-pc-check-form=desktop&amp;amp;minecraft-pc-check-gpu=dgpu&amp;amp;minecraft-pc-check-ram=32&amp;amp;minecraft-pc-check-vram=8#minecraft-pc-check&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java Edition, Shaders, Desktop, Discrete GPU, RAM 16 GB, VRAM 8 GB&lt;/td&gt;&lt;td&gt;△ Exactly at recommended (borderline). What to add: A graphics card with 16 GB+ VRAM. RAM or VRAM is exactly at the recommendation or minimum, with nothing to spare. Java Edition’s requirements table asks for a Vulkan 1.3 capable GPU. The CPU isn’t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-27-minecraft-pc/?minecraft-pc-check-edition=java&amp;amp;minecraft-pc-check-play=shader&amp;amp;minecraft-pc-check-form=desktop&amp;amp;minecraft-pc-check-gpu=dgpu&amp;amp;minecraft-pc-check-ram=16&amp;amp;minecraft-pc-check-vram=8#minecraft-pc-check&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java Edition, Shaders, Desktop, Discrete GPU, RAM 32 GB, VRAM 16 GB&lt;/td&gt;&lt;td&gt;✓ Meets recommended. What to add: Nothing. Java Edition’s requirements table asks for a Vulkan 1.3 capable GPU. The CPU isn’t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-27-minecraft-pc/?minecraft-pc-check-edition=java&amp;amp;minecraft-pc-check-play=shader&amp;amp;minecraft-pc-check-form=desktop&amp;amp;minecraft-pc-check-gpu=dgpu&amp;amp;minecraft-pc-check-ram=32&amp;amp;minecraft-pc-check-vram=16#minecraft-pc-check&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Java Edition, While streaming, Desktop, Discrete GPU, RAM 16 GB, VRAM 8 GB&lt;/td&gt;&lt;td&gt;△ Exactly at recommended (borderline). What to add: Nothing. RAM or VRAM is exactly at the recommendation or minimum, with nothing to spare. Java Edition’s requirements table asks for a Vulkan 1.3 capable GPU. The CPU isn’t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-27-minecraft-pc/?minecraft-pc-check-edition=java&amp;amp;minecraft-pc-check-play=stream&amp;amp;minecraft-pc-check-form=desktop&amp;amp;minecraft-pc-check-gpu=dgpu&amp;amp;minecraft-pc-check-ram=16&amp;amp;minecraft-pc-check-vram=8#minecraft-pc-check&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock Edition, Desktop, Integrated graphics, RAM 4 GB&lt;/td&gt;&lt;td&gt;△ RAM exactly at the minimum (borderline). What to add: RAM to 8 GB or more. RAM or VRAM is exactly at the recommendation or minimum, with nothing to spare. For Bedrock, compare the GPU and CPU by model. This check covers RAM only. The CPU isn’t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-27-minecraft-pc/?minecraft-pc-check-edition=bedrock&amp;amp;minecraft-pc-check-form=desktop&amp;amp;minecraft-pc-check-gpu=igpu&amp;amp;minecraft-pc-check-ram=4#minecraft-pc-check&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bedrock Edition, Desktop, Integrated graphics, RAM 8 GB&lt;/td&gt;&lt;td&gt;△ RAM exactly at recommended (borderline). What to add: Nothing. RAM or VRAM is exactly at the recommendation or minimum, with nothing to spare. For Bedrock, compare the GPU and CPU by model. This check covers RAM only. The CPU isn’t part of this check. Compare your CPU model with the CPU row (Minecraft is more CPU-intensive than GPU-intensive)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-27-minecraft-pc/?minecraft-pc-check-edition=bedrock&amp;amp;minecraft-pc-check-form=desktop&amp;amp;minecraft-pc-check-gpu=igpu&amp;amp;minecraft-pc-check-ram=8#minecraft-pc-check&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>minecraft</category><category>pc</category><category>memory</category><category>gpu</category><category>spec</category></item><item><title>Sony Walkman NW-A105 review — the Type-C, Android DAP I switched to, revisited from 2026</title><link>https://aulvem.com/blog/2021-04-24-sony-nw-a105/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-24-sony-nw-a105/</guid><description>Over five years of commuting with the Sony NW-A105. The USB Type-C, microSD, and Android wins weighed against the weak battery life and sluggish UI, with comparisons to the current NW-A300 line and to going phone-only.</description><pubDate>Sat, 24 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported from the old VuePress blog (originally written in 2021, after about half a year of use). As of 2026, the current A-series line is the NW-A300 (NW-A306 in Japan, A307 internationally, released 2023). The NW-A105 itself is discontinued, with new stock only while supplies last. The bones of this review still hold up — just read it alongside the current model when considering a purchase.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I used the Sony Walkman &lt;strong&gt;NW-A105&lt;/strong&gt; for over five years, for music on the commute and on the road. It was the first Walkman generation to combine USB Type-C, microSD, and Android — the model where the connector finally caught up with the rest of the world.&lt;/p&gt;
&lt;p&gt;Looking back from 2026, though, the strengths and weaknesses sit on very different sides of the ledger. This is a long-term impression, compared against the current NW-A300 line and against going phone-only.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--a-first-generation-type-c--microsd--android-dap-for-a-new-purchase-go-a300&quot;&gt;The verdict — a first-generation Type-C / microSD / Android DAP; for a new purchase, go A300&lt;/h2&gt;
&lt;p&gt;Short answer: the NW-A105 was valuable as the first generation of Walkman with Type-C and Android. The sound-tuning depth still holds up. But the CPU and battery let it down, and for a new purchase in 2026, the current NW-A300 line is the easier recommendation.&lt;/p&gt;
&lt;p&gt;The reasoning is that the NW-A105’s weak points — sluggish responsiveness and high idle drain — are tied to internal parts. They are not the kind of thing a firmware update can fix at the root. The later battery-saver helped operationally, but the underlying issue is still there.&lt;/p&gt;
&lt;p&gt;Who should and should not buy one:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Worth it&lt;/strong&gt;: anyone who can find a cheap used unit and wants wired earphones, microSD, and deep sound tuning&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skip it&lt;/strong&gt;: anyone buying new, anyone whose music life is already on a phone, anyone who prioritises battery life&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-and-layout&quot;&gt;Build and layout&lt;/h2&gt;
&lt;p&gt;Short answer: a small Android device with a 3.6-inch touchscreen. The physical buttons cluster on the right edge; the bottom carries the 3.5 mm jack, USB Type-C, and microSD slot.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;NW-A105, front&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-24-sony-nw-a105/2021-04-24-sony-nw-a105.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;A hi-res-capable, Android-powered Walkman. Most operations happen on the touchscreen.&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Spec&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Value&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Display&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3.6 inch&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Dimensions&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;55.9 × 98.9 × 11 mm&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Weight&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;103 g&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;OS&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Android 9 (at launch)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Ports&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;USB Type-C / 3.5 mm jack / microSD&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;(rated)&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;NW-A105, back&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-24-sony-nw-a105/2021-04-24-sony-nw-a105-back.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The back is matte, with a Walkman logo. Fingerprints stay out of sight.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;NW-A105, left side&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-24-sony-nw-a105/2021-04-24-sony-nw-a105-left.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The left flank is bare — no buttons.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;NW-A105, right side&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-24-sony-nw-a105/2021-04-24-sony-nw-a105-right.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;All the operating buttons live on the right. From left to right: hold / back / play-pause / forward / volume down / volume up / power. That layout lets you control playback blind, with the unit still in a bag or pocket — exactly what a DAP should get right.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;NW-A105, ports on the bottom&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-24-sony-nw-a105/2021-04-24-sony-nw-a105-rear.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The bottom edge holds the 3.5 mm jack, a strap hole, USB Type-C, and the microSD slot. Keeping the 3.5 mm jack matters a lot if you live on wired earphones.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;NW-A105, library screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-24-sony-nw-a105/2021-04-24-sony-nw-a105-library.webp&quot; class=&quot;page-sp-img&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The home screen sticks close to stock Android. You can add apps freely (Google Play is supported).&lt;/p&gt;
&lt;h2 id=&quot;what-worked&quot;&gt;What worked&lt;/h2&gt;
&lt;p&gt;Short answer: the Type-C / microSD / Android trio, plus the depth of Sony’s sound-processing options.&lt;/p&gt;
&lt;h3 id=&quot;usb-type-c--the-reason-i-switched&quot;&gt;USB Type-C — the reason I switched&lt;/h3&gt;
&lt;p&gt;This was the deciding factor when I bought it. Earlier Walkman models used Sony’s proprietary WM-PORT, which meant carrying a dedicated cable everywhere.&lt;/p&gt;
&lt;p&gt;Moving to Type-C means the same cable as the phone and the tablet. The “I forgot the Walkman cable on a business trip” disaster simply stops happening. That alone changed how I packed.&lt;/p&gt;
&lt;h3 id=&quot;microsd-adds-storage-after-the-fact&quot;&gt;microSD adds storage after the fact&lt;/h3&gt;
&lt;p&gt;Internal storage is a modest 16 GB. Trying to manage a hi-res library on internal storage alone is not realistic.&lt;/p&gt;
&lt;p&gt;Put another way: the device assumes a microSD card. The internal memory is for OS and apps; music lives on the card. With support up to 1 TB microSDXC, there is enough headroom for a serious library.&lt;/p&gt;
&lt;h3 id=&quot;sound-tuning-runs-deep&quot;&gt;Sound tuning runs deep&lt;/h3&gt;
&lt;p&gt;This is where a Sony DAP earns its keep.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;NW-A105, equaliser screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-24-sony-nw-a105/2021-04-24-sony-nw-a105-eq.webp&quot; class=&quot;page-sp-img&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The equaliser is roughly ten bands of fine adjustment, with genre presets on top.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;NW-A105, noise cancelling settings&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-24-sony-nw-a105/2021-04-24-sony-nw-a105-nc.webp&quot; class=&quot;page-sp-img&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;Noise cancelling assumes Sony’s compatible earphones (the IER-NW500N and similar). On a commuter train, it knocks the noise floor down hard.&lt;/p&gt;
&lt;p&gt;The main sound-processing features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DSEE HX&lt;/strong&gt;: upscales compressed audio toward hi-res&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DC Phase Linearizer&lt;/strong&gt;: corrects phase characteristics to mimic an analogue amp&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dynamic Normalizer&lt;/strong&gt;: evens out volume differences between tracks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vinyl Processor&lt;/strong&gt;: shapes the sound to feel like a record&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ClearAudio+&lt;/strong&gt;: Sony’s recommended auto-optimisation preset&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What you learn after living with it is that “everything on” is not always best. Toggling DSEE HX on or off per genre, for example, is where the sound changes character if you put in the time.&lt;/p&gt;
&lt;h3 id=&quot;android-opens-it-up&quot;&gt;Android opens it up&lt;/h3&gt;
&lt;p&gt;It runs Android 9 at the base. Spotify, Apple Music, and YouTube Music install through Google Play. A single device handles a local library and streaming side by side.&lt;/p&gt;
&lt;p&gt;Bluetooth pairing for handing audio off from a phone works the way you would expect.&lt;/p&gt;
&lt;h2 id=&quot;what-didnt&quot;&gt;What didn’t&lt;/h2&gt;
&lt;p&gt;Short answer: battery life and CPU speed. Both come down to hardware; neither is fixable in software.&lt;/p&gt;
&lt;h3 id=&quot;battery-drain-is-high&quot;&gt;Battery drain is high&lt;/h3&gt;
&lt;p&gt;The biggest complaint.&lt;/p&gt;
&lt;p&gt;Just leaving it powered on visibly drains the battery. Idle for a day without playback still costs a meaningful chunk of the meter.&lt;/p&gt;
&lt;p&gt;Sony quotes around 26 hours of hi-res playback. In real use, what hurts is the consumption during the hours you are not listening. A later firmware update added a battery saver that powers the unit off after a set period of inactivity, and that helped a lot operationally. It is still not a fix at the root.&lt;/p&gt;
&lt;p&gt;For commuting, where you charge at home or at work every day, this is fine. For a two-day business trip without an easy charge, it is tight.&lt;/p&gt;
&lt;h3 id=&quot;a-general-sluggishness&quot;&gt;A general sluggishness&lt;/h3&gt;
&lt;p&gt;The CPU is modest, and it shows up as friction when opening apps, switching screens, or scrolling a large library.&lt;/p&gt;
&lt;p&gt;It is not a device you tap constantly the way you do a phone, so it never becomes critical — but opening Spotify, tapping the search bar, and typing into it feels heavier than it should.&lt;/p&gt;
&lt;h3 id=&quot;software-support-has-ended&quot;&gt;Software support has ended&lt;/h3&gt;
&lt;p&gt;As of 2026, the NW-A105 is still on Android 9, with no major updates. From a security standpoint, it is not suitable as a primary phone substitute.&lt;/p&gt;
&lt;p&gt;As a dedicated music player, that is acceptable. The long-term compatibility of streaming apps, though, is not guaranteed.&lt;/p&gt;
&lt;h2 id=&quot;comparison--nw-a105-vs-nw-a300-series-vs-phone-only&quot;&gt;Comparison — NW-A105 vs NW-A300 series vs phone-only&lt;/h2&gt;
&lt;p&gt;Short answer: buy new and the NW-A300 wins. Want the cheapest path that still works, used NW-A105. Want a single device for everything, the phone is fine.&lt;/p&gt;

































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Angle&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;NW-A105 (2019)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;NW-A300 series (2023–)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Phone-only&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;OS&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Android 9&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Android 12 base&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Latest per device&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Perceived CPU speed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Sluggish&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Improved&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Depends on device&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Battery (rated hi-res)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;~26 hours&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;~36 hours (rated)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Shared with everything else&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Internal storage&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;16 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;32 GB (rated)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Depends on device&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;microSD&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes (up to 1 TB)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Usually no&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Ports&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;USB Type-C / 3.5 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;USB Type-C / 3.5 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Type-C only on most&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Noise cancelling (Sony earphones)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Supported&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Supported&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not supported&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;DSEE HX-style processing&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes (now DSEE Ultimate)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;No&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Price (2026 expectation)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Mostly used&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;New, ~mid-40,000s yen and up&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Already in the phone&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The decision splits cleanly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You care about sound processing and a wired chain, and you do not want music draining the phone&lt;/strong&gt; → NW-A300&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Same requirements, minimum cost&lt;/strong&gt; → NW-A105 used&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Streaming-centric, wireless earphones, one device for everything&lt;/strong&gt; → phone-only. You do not need a DAP&lt;/li&gt;
&lt;/ul&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Sony Walkman NW-A105 (Black)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-24-sony-nw-a105/2021-04-24-sony-nw-a105.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Sony Walkman NW-A105 (Black)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B07YYFN8HH?q=Sony+Walkman+NW-A105+%28Black%29&amp;amp;l=en&quot; aria-label=&quot;View Sony Walkman NW-A105 (Black) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Is the NW-A105 worth buying new in 2026?&lt;/strong&gt;
A. For a new purchase, the current NW-A300 line (NW-A306 in Japan / A307 internationally) is the easier recommendation. The NW-A105 was released in 2019, and its CPU and battery life are both weak. If you only want a DAP with microSD, Type-C, and Android, and you can find a cheap used unit, it is still an option.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Compared with listening on a phone, is there a reason to carry an NW-A105?&lt;/strong&gt;
A. Yes, if you want Sony’s noise cancelling or DSEE HX sound processing, or if you do not want music playback eating your phone’s battery. If your library lives entirely in streaming and you do not use wired earphones, a phone alone is enough.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How long does the battery last?&lt;/strong&gt;
A. Sony lists about 26 hours of hi-res playback. In practice, idle drain is high — leaving it powered on for a day burns through a visible chunk even without playing. A later firmware update added a battery-saver auto-off feature.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. What is the maximum microSD capacity?&lt;/strong&gt;
A. Up to 1 TB microSDXC. Internal storage is only 16 GB, so any serious hi-res library has to live on the card — the design assumes you will use one.&lt;/p&gt;
&lt;h2 id=&quot;verdict--a-device-for-experiencing-the-first-android-on-a-dap-generation&quot;&gt;Verdict — a device for experiencing the first Android-on-a-DAP generation&lt;/h2&gt;
&lt;p&gt;The NW-A105 belongs to the generation where “the Walkman finally went Type-C” and “the Walkman runs Android” arrived together. As a reason to buy at the time, that was enough, and after five-plus years it never stopped being a reliable home for the library.&lt;/p&gt;
&lt;p&gt;Would I recommend buying one new today? No. The CPU and the battery are tied to the internal design, and the successor generation improved both directly. Either go cheap on a used unit, or step up to the current NW-A300 — those are the two sensible paths.&lt;/p&gt;
&lt;p&gt;If your phone, paired with streaming and wireless earphones, already covers your music, there is no reason to add a DAP. Carrying one only earns its keep if you are unwilling to give up one of the three: wired earphones, deep sound processing, or microSD.&lt;/p&gt;</content:encoded><category>reviews</category><category>gadget</category><category>sony</category><category>walkman</category><category>dap</category></item><item><title>HDD vs SSD: Which to Buy, With Lifespan and Capacity Math</title><link>https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/</guid><description>Use an SSD for the OS, apps and games and a hard drive for big photo and video libraries. Includes a table by use, plus SSD lifespan and capacity math, from the makers&apos; official pages as of October 2026.</description><pubDate>Wed, 21 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Per the makers’ official specs, put the OS, apps and games on an NVMe SSD, and keep large photo and video collections on a hard drive.&lt;/p&gt;
&lt;h2 id=&quot;quick-table-by-use&quot;&gt;Quick table by use&lt;/h2&gt;
&lt;p&gt;For an internal drive, check your PC’s connection type and supported size first.&lt;/p&gt;





































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Use&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Best drive type&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;OS and apps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;NVMe M.2 SSD&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;PC games&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;NVMe M.2 SSD&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;PS5 expansion&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;PCIe Gen4x4 M.2 SSD with heatsink&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Upgrading an older PC&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2.5-inch SATA SSD&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Photo and video storage&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Hard drive (CMR for a NAS)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Backups&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;External hard drive&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Carrying data around&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Portable SSD&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;nvme-sata-and-hard-drive-types&quot;&gt;NVMe, SATA and hard drive types&lt;/h2&gt;
&lt;p&gt;An SSD stores data on flash chips, and a hard drive (HDD) stores it on spinning disks. NVMe SSDs plug into a slim M.2 slot, and SATA is the connection used by 2.5-inch SSDs and hard drives. External drives connect over USB.&lt;/p&gt;
&lt;p&gt;Per SATA-IO and Samsung’s official specs, a SATA 2.5-inch SSD tops out at 600 MB/s (MB/s is how much it can read in a second). Comparing rated maximum read speeds of Samsung 2TB SSDs, the SATA model reads at 560 MB/s and the PCIe 4.0 NVMe model at 7,450 MB/s, a gap of about 13x.&lt;/p&gt;
&lt;h3 id=&quot;upgrading-an-older-pc&quot;&gt;Upgrading an older PC&lt;/h3&gt;
&lt;p&gt;Per Samsung’s official pages, a PC whose spec sheet lists a 2.5-inch SATA drive can take a 2.5-inch SATA SSD, which also works on older SATA 3Gb/s ports.&lt;/p&gt;
&lt;h3 id=&quot;cmr-and-smr-hard-drives&quot;&gt;CMR and SMR hard drives&lt;/h3&gt;
&lt;p&gt;SMR is a recording method that overlaps the tracks on the disk, and CMR is the conventional method.&lt;/p&gt;
&lt;p&gt;Per Seagate’s and WD’s official specs, for always-on use like a NAS (a disk on your home network), pick a NAS hard drive rated for 180 TB/year. The annual workload is the total amount read and written in a year.&lt;/p&gt;
&lt;p&gt;Per Seagate’s official CMR/SMR list, the NAS-oriented IronWolf uses CMR at every capacity, while SMR shows up in desktop BarraCuda drives such as the 4TB and 8TB. The annual workload rating is 180 TB/year for IronWolf and 55 TB/year for BarraCuda.&lt;/p&gt;
&lt;h2 id=&quot;check-it-for-your-setup&quot;&gt;Check it for your setup&lt;/h2&gt;
&lt;p&gt;Follow these steps to choose a drive type and capacity.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;For an internal drive, check the spec sheet for the connection type, SATA or NVMe/PCIe, and the size, 2.5-inch or M.2&lt;/li&gt;
&lt;li&gt;Pick your use from the rows of the table&lt;/li&gt;
&lt;li&gt;Check whether each game you play requires an SSD&lt;/li&gt;
&lt;li&gt;Add up the data you’ll store, as Windows shows it. Windows 11’s minimum is 64 GB, and for games, add the free space each one lists on its store page&lt;/li&gt;
&lt;li&gt;Divide the data by 0.8 (that leaves 20% free), then compare the result with how Windows will show the drive. Windows labels sizes “GB” but counts in units of 1024³ bytes, so a drive sold as 1TB shows up as about 931 GB&lt;/li&gt;
&lt;li&gt;For an SSD, estimate how much you write per day for the TBW calculation&lt;/li&gt;
&lt;/ol&gt;
&lt;section id=&quot;hdd-ssd-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;hdd-ssd-calc-title&quot;&gt; &lt;h3 id=&quot;hdd-ssd-calc-title&quot;&gt;HDD or SSD? (use, capacity and how long it lasts)&lt;/h3&gt; &lt;p&gt;Pick how you&amp;#39;ll use the drive (OS, games, PS5, upgrading an older PC, photo and video storage, backups or carrying files) to see which type fits. From how much data you&amp;#39;ll store it works out the capacity, and from how much you write a day it estimates the years to the SSD&amp;#39;s TBW rating or compares against a hard drive&amp;#39;s annual workload rating. It also shows one product that fits.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;samsung_990_pro_2tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung 990 PRO 2TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71OWtcxKgvL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung 990 PRO 2TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0BPXRY7N2?q=Samsung+990+PRO+2TB&amp;amp;us=B0BHJJ9Y77&amp;amp;l=en&quot; aria-label=&quot;View Samsung 990 PRO 2TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;samsung_990_pro_heatsink_2tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung 990 PRO with Heatsink 2TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/715zWolPNVL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung 990 PRO with Heatsink 2TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C6XP42SC?q=Samsung+990+PRO+with+Heatsink+2TB&amp;amp;us=B0BHJDY57J&amp;amp;l=en&quot; aria-label=&quot;View Samsung 990 PRO with Heatsink 2TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;samsung_870_evo_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung 870 EVO 1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/911ujeCkGfL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung 870 EVO 1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B08SVPWHZH?q=Samsung+870+EVO+1TB&amp;amp;us=B08QBJ2YMG&amp;amp;l=en&quot; aria-label=&quot;View Samsung 870 EVO 1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;samsung_t7_shield_2tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung T7 Shield 2TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61CKrZWOcrL._AC_SX300_SY300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung T7 Shield 2TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B09Y1P5D12?q=Samsung+T7+Shield+2TB&amp;amp;us=B09VLHR4JC&amp;amp;l=en&quot; aria-label=&quot;View Samsung T7 Shield 2TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;wd_red_plus_8tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for WD Red Plus 8TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81S-Gug4DmL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;WD Red Plus 8TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CMQ6SK7W?q=WD+Red+Plus+8TB&amp;amp;us=B0CMQ6SK7W&amp;amp;l=en&quot; aria-label=&quot;View WD Red Plus 8TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;wd_elements_desktop_portable_4tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for WD Elements Portable 4TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/91mlqrT75WL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;WD Elements Portable 4TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0713WPGLL?q=WD+Elements+Portable+4TB&amp;amp;us=B0713WPGLL&amp;amp;l=en&quot; aria-label=&quot;View WD Elements Portable 4TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;kinds&quot;:{&quot;os&quot;:&quot;nvme&quot;,&quot;game&quot;:&quot;nvme&quot;,&quot;ps5&quot;:&quot;ps5&quot;,&quot;oldpc&quot;:&quot;sata&quot;,&quot;media&quot;:&quot;hdd_cmr&quot;,&quot;backup&quot;:&quot;ext_hdd&quot;,&quot;portable&quot;:&quot;ext_ssd&quot;},&quot;caps&quot;:[250,500,1000,2000,4000],&quot;capsHdd&quot;:[2000,4000,6000,8000,10000,12000,16000],&quot;dataOptions&quot;:[100,250,500,750,1000,1500,2000,2500],&quot;dailyOptions&quot;:[10,20,50,100,200,400],&quot;free&quot;:0.2,&quot;tbwNvme2tb&quot;:1200,&quot;tbw870&quot;:{&quot;250&quot;:150,&quot;500&quot;:300,&quot;1000&quot;:600,&quot;2000&quot;:1200,&quot;4000&quot;:2400},&quot;warrY&quot;:5,&quot;sataCeil&quot;:600,&quot;s870Read&quot;:560,&quot;s990Read&quot;:7450,&quot;ratio&quot;:13,&quot;ps5MinRead&quot;:5500,&quot;ps5MinGB&quot;:250,&quot;ps5MaxGB&quot;:8000,&quot;ps5MaxH&quot;:11.25,&quot;ps5MaxW&quot;:25,&quot;wlCmr&quot;:180,&quot;wlSmr&quot;:55,&quot;win11&quot;:64,&quot;nSsdGames&quot;:4,&quot;retMonths&quot;:3,&quot;retTemp&quot;:40,&quot;t7g&quot;:98,&quot;t7drop&quot;:3,&quot;wdeG&quot;:231,&quot;spec&quot;:{&quot;samsung_990_pro_2tb&quot;:{&quot;kind&quot;:&quot;nvme&quot;,&quot;gen&quot;:4,&quot;read&quot;:7450,&quot;write&quot;:6900,&quot;tbw&quot;:1200,&quot;warr&quot;:5,&quot;cap&quot;:2000},&quot;samsung_990_pro_heatsink_2tb&quot;:{&quot;kind&quot;:&quot;nvme&quot;,&quot;gen&quot;:4,&quot;heatsink&quot;:true,&quot;ps5&quot;:true,&quot;read&quot;:7450,&quot;write&quot;:6900,&quot;tbw&quot;:null,&quot;cap&quot;:2000},&quot;samsung_9100_pro_2tb&quot;:{&quot;kind&quot;:&quot;nvme&quot;,&quot;gen&quot;:5,&quot;read&quot;:14700,&quot;write&quot;:13400,&quot;tbw&quot;:1200,&quot;cap&quot;:2000},&quot;wd_black_sn8100_2tb_heatsink&quot;:{&quot;kind&quot;:&quot;nvme&quot;,&quot;gen&quot;:5,&quot;heatsink&quot;:true,&quot;read&quot;:14900,&quot;write&quot;:14000,&quot;tbw&quot;:1200,&quot;cap&quot;:2000},&quot;samsung_870_evo_1tb&quot;:{&quot;kind&quot;:&quot;sata&quot;,&quot;read&quot;:null,&quot;write&quot;:null,&quot;tbw&quot;:600,&quot;warr&quot;:5,&quot;cap&quot;:1000},&quot;samsung_870_evo_2tb&quot;:{&quot;kind&quot;:&quot;sata&quot;,&quot;read&quot;:560,&quot;write&quot;:530,&quot;tbw&quot;:1200,&quot;warr&quot;:5,&quot;cap&quot;:2000},&quot;samsung_t7_shield_2tb&quot;:{&quot;kind&quot;:&quot;ext_ssd&quot;,&quot;read&quot;:1050,&quot;write&quot;:1000,&quot;warr&quot;:3,&quot;g&quot;:98,&quot;usb&quot;:&quot;USB 3.2 Gen.2 (10Gbps)&quot;,&quot;cap&quot;:2000},&quot;sandisk_extreme_portable_2tb&quot;:{&quot;kind&quot;:&quot;ext_ssd&quot;,&quot;read&quot;:1050,&quot;warr&quot;:5,&quot;cap&quot;:2000},&quot;seagate_ironwolf_4tb&quot;:{&quot;kind&quot;:&quot;hdd_cmr&quot;,&quot;rec&quot;:&quot;CMR&quot;,&quot;wl&quot;:180,&quot;cap&quot;:4000},&quot;wd_red_plus_4tb&quot;:{&quot;kind&quot;:&quot;hdd_cmr&quot;,&quot;rec&quot;:&quot;CMR&quot;,&quot;wl&quot;:180,&quot;warr&quot;:3,&quot;cap&quot;:4000},&quot;wd_red_plus_8tb&quot;:{&quot;kind&quot;:&quot;hdd_cmr&quot;,&quot;rec&quot;:&quot;CMR&quot;,&quot;wl&quot;:180,&quot;warr&quot;:3,&quot;cap&quot;:8000},&quot;seagate_expansion_desktop_4tb&quot;:{&quot;kind&quot;:&quot;ext_hdd&quot;,&quot;g&quot;:1176,&quot;cap&quot;:4000},&quot;buffalo_hd_ad4u3_4tb&quot;:{&quot;kind&quot;:&quot;ext_hdd&quot;,&quot;g&quot;:900,&quot;warr&quot;:1,&quot;cap&quot;:4000},&quot;wd_elements_desktop_portable_4tb&quot;:{&quot;kind&quot;:&quot;ext_hdd&quot;,&quot;g&quot;:231,&quot;warr&quot;:2,&quot;cap&quot;:4000}},&quot;pools&quot;:{&quot;nvme&quot;:[&quot;samsung_990_pro_2tb&quot;,&quot;samsung_9100_pro_2tb&quot;],&quot;ps5&quot;:[&quot;samsung_990_pro_heatsink_2tb&quot;],&quot;sata&quot;:[&quot;samsung_870_evo_1tb&quot;,&quot;samsung_870_evo_2tb&quot;],&quot;hdd_cmr&quot;:[&quot;seagate_ironwolf_4tb&quot;,&quot;wd_red_plus_4tb&quot;,&quot;wd_red_plus_8tb&quot;],&quot;ext_hdd&quot;:[&quot;seagate_expansion_desktop_4tb&quot;,&quot;buffalo_hd_ad4u3_4tb&quot;,&quot;wd_elements_desktop_portable_4tb&quot;],&quot;ext_ssd&quot;:[&quot;samsung_t7_shield_2tb&quot;,&quot;sandisk_extreme_portable_2tb&quot;]},&quot;useLabel&quot;:{&quot;os&quot;:{&quot;ja&quot;:[&quot;OS・アプリ&quot;,&quot;NVMe の M.2 SSD&quot;],&quot;en&quot;:[&quot;OS and apps&quot;,&quot;NVMe M.2 SSD&quot;]},&quot;game&quot;:{&quot;ja&quot;:[&quot;PC のゲーム&quot;,&quot;NVMe の M.2 SSD&quot;],&quot;en&quot;:[&quot;PC games&quot;,&quot;NVMe M.2 SSD&quot;]},&quot;ps5&quot;:{&quot;ja&quot;:[&quot;PS5 の増設&quot;,&quot;PCIe Gen4x4 の M.2 SSD（ヒートシンク付き）&quot;],&quot;en&quot;:[&quot;PS5 expansion&quot;,&quot;PCIe Gen4x4 M.2 SSD with heatsink&quot;]},&quot;oldpc&quot;:{&quot;ja&quot;:[&quot;古い PC の換装&quot;,&quot;2.5インチ SATA SSD&quot;],&quot;en&quot;:[&quot;Upgrading an older PC&quot;,&quot;2.5-inch SATA SSD&quot;]},&quot;media&quot;:{&quot;ja&quot;:[&quot;写真・動画の保管&quot;,&quot;HDD（NAS なら CMR）&quot;],&quot;en&quot;:[&quot;Photo and video storage&quot;,&quot;Hard drive (CMR for a NAS)&quot;]},&quot;backup&quot;:{&quot;ja&quot;:[&quot;バックアップ&quot;,&quot;外付け HDD&quot;],&quot;en&quot;:[&quot;Backups&quot;,&quot;External hard drive&quot;]},&quot;portable&quot;:{&quot;ja&quot;:[&quot;持ち運び&quot;,&quot;外付け SSD&quot;],&quot;en&quot;:[&quot;Carrying data around&quot;,&quot;Portable SSD&quot;]}},&quot;pickOnlySlots&quot;:true,&quot;buy&quot;:{&quot;samsung_990_pro_2tb&quot;:{&quot;type&quot;:&quot;ssd&quot;,&quot;ja&quot;:&quot;Samsung 990 PRO 2TB&quot;,&quot;en&quot;:&quot;Samsung 990 PRO 2TB&quot;,&quot;jp&quot;:&quot;B0BPXRY7N2&quot;,&quot;us&quot;:&quot;B0BHJJ9Y77&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0BPXRY7N2&quot;,&quot;asinUS&quot;:&quot;B0BHJJ9Y77&quot;,&quot;title&quot;:&quot;Samsung 990 PRO 2TB&quot;,&quot;searchQuery&quot;:&quot;Samsung 990 PRO 2TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/6139zPxPovL._AC_SX569_.jpg&quot;,&quot;jan&quot;:&quot;4560441097978&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0BPXRY7N2&quot;,&quot;asinUS&quot;:&quot;B0BHJJ9Y77&quot;,&quot;title&quot;:&quot;Samsung 990 PRO 2TB&quot;,&quot;searchQuery&quot;:&quot;Samsung 990 PRO 2TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71OWtcxKgvL._AC_SX425_.jpg&quot;}},&quot;rank_jp&quot;:5,&quot;rank_us&quot;:3},&quot;samsung_990_pro_heatsink_2tb&quot;:{&quot;type&quot;:&quot;ssd&quot;,&quot;ja&quot;:&quot;Samsung 990 PRO ヒートシンク付き 2TB&quot;,&quot;en&quot;:&quot;Samsung 990 PRO with Heatsink 2TB&quot;,&quot;jp&quot;:&quot;B0C6XP42SC&quot;,&quot;us&quot;:&quot;B0BHJDY57J&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0C6XP42SC&quot;,&quot;asinUS&quot;:&quot;B0BHJDY57J&quot;,&quot;title&quot;:&quot;Samsung 990 PRO ヒートシンク付き 2TB&quot;,&quot;searchQuery&quot;:&quot;Samsung 990 PRO ヒートシンク付き 2TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51BLQjo6ERL._SX466_.jpg&quot;,&quot;jan&quot;:&quot;4560441098166&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0C6XP42SC&quot;,&quot;asinUS&quot;:&quot;B0BHJDY57J&quot;,&quot;title&quot;:&quot;Samsung 990 PRO with Heatsink 2TB&quot;,&quot;searchQuery&quot;:&quot;Samsung 990 PRO with Heatsink 2TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/715zWolPNVL._AC_SX425_.jpg&quot;}},&quot;rank_jp&quot;:3,&quot;rank_us&quot;:5},&quot;samsung_870_evo_1tb&quot;:{&quot;type&quot;:&quot;ssd&quot;,&quot;ja&quot;:&quot;Samsung 870 EVO 1TB&quot;,&quot;en&quot;:&quot;Samsung 870 EVO 1TB&quot;,&quot;jp&quot;:&quot;B08SVPWHZH&quot;,&quot;us&quot;:&quot;B08QBJ2YMG&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B08SVPWHZH&quot;,&quot;asinUS&quot;:&quot;B08QBJ2YMG&quot;,&quot;title&quot;:&quot;Samsung 870 EVO 1TB&quot;,&quot;searchQuery&quot;:&quot;Samsung 870 EVO 1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/6103+a50i8L._AC_SX569_.jpg&quot;,&quot;jan&quot;:&quot;4560441096698&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B08SVPWHZH&quot;,&quot;asinUS&quot;:&quot;B08QBJ2YMG&quot;,&quot;title&quot;:&quot;Samsung 870 EVO 1TB&quot;,&quot;searchQuery&quot;:&quot;Samsung 870 EVO 1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/911ujeCkGfL._AC_SX425_.jpg&quot;}},&quot;rank_jp&quot;:2,&quot;rank_us&quot;:1},&quot;samsung_t7_shield_2tb&quot;:{&quot;type&quot;:&quot;ssd&quot;,&quot;ja&quot;:&quot;Samsung T7 Shield 2TB&quot;,&quot;en&quot;:&quot;Samsung T7 Shield 2TB&quot;,&quot;jp&quot;:&quot;B09Y1P5D12&quot;,&quot;us&quot;:&quot;B09VLHR4JC&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B09Y1P5D12&quot;,&quot;asinUS&quot;:&quot;B09VLHR4JC&quot;,&quot;title&quot;:&quot;Samsung T7 Shield 2TB&quot;,&quot;searchQuery&quot;:&quot;Samsung T7 Shield 2TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61YAYA7fOKL._AC_SX569_.jpg&quot;,&quot;jan&quot;:&quot;4560441097671&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B09Y1P5D12&quot;,&quot;asinUS&quot;:&quot;B09VLHR4JC&quot;,&quot;title&quot;:&quot;Samsung T7 Shield 2TB&quot;,&quot;searchQuery&quot;:&quot;Samsung T7 Shield 2TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61CKrZWOcrL._AC_SX300_SY300_QL70_FMwebp_.jpg&quot;}},&quot;rank_jp&quot;:4,&quot;rank_us&quot;:4},&quot;seagate_ironwolf_4tb&quot;:{&quot;type&quot;:&quot;hdd&quot;,&quot;ja&quot;:&quot;Seagate IronWolf 4TB&quot;,&quot;en&quot;:&quot;Seagate IronWolf 4TB&quot;,&quot;jp&quot;:&quot;B0D8KTQBYS&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0D8KTQBYS&quot;,&quot;title&quot;:&quot;Seagate IronWolf 4TB&quot;,&quot;searchQuery&quot;:&quot;Seagate IronWolf 4TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61wzqHwdwFL._AC_SY300_SX300_QL70_ML2_.jpg&quot;,&quot;jan&quot;:&quot;4580376103858&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1},&quot;wd_red_plus_8tb&quot;:{&quot;type&quot;:&quot;hdd&quot;,&quot;ja&quot;:&quot;WD Red Plus 8TB&quot;,&quot;en&quot;:&quot;WD Red Plus 8TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0CMQ6SK7W&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0CMQ6SK7W&quot;,&quot;asinUS&quot;:&quot;B0CMQ6SK7W&quot;,&quot;title&quot;:&quot;WD Red Plus 8TB&quot;,&quot;searchQuery&quot;:&quot;WD Red Plus 8TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81S-Gug4DmL._AC_SX425_.jpg&quot;}},&quot;rank_us&quot;:2},&quot;buffalo_hd_ad4u3_4tb&quot;:{&quot;type&quot;:&quot;hdd&quot;,&quot;ja&quot;:&quot;バッファロー HD-AD4U3 4TB&quot;,&quot;en&quot;:&quot;Buffalo HD-AD4U3 4TB&quot;,&quot;jp&quot;:&quot;B07BK6696F&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B07BK6696F&quot;,&quot;title&quot;:&quot;バッファロー HD-AD4U3 4TB&quot;,&quot;searchQuery&quot;:&quot;バッファロー HD-AD4U3 4TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61hdd3tMZBL._AC_SX569_.jpg&quot;,&quot;jan&quot;:&quot;4981254047309&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;wd_elements_desktop_portable_4tb&quot;:{&quot;type&quot;:&quot;hdd&quot;,&quot;ja&quot;:&quot;WD Elements Portable 4TB&quot;,&quot;en&quot;:&quot;WD Elements Portable 4TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0713WPGLL&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0713WPGLL&quot;,&quot;asinUS&quot;:&quot;B0713WPGLL&quot;,&quot;title&quot;:&quot;WD Elements Portable 4TB&quot;,&quot;searchQuery&quot;:&quot;WD Elements Portable 4TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/91mlqrT75WL._AC_SX425_.jpg&quot;}},&quot;rank_us&quot;:0}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;ssd&quot;:&quot;samsung_990_pro_2tb&quot;,&quot;hdd&quot;:&quot;seagate_ironwolf_4tb&quot;},&quot;en&quot;:{&quot;ssd&quot;:&quot;samsung_990_pro_2tb&quot;,&quot;hdd&quot;:&quot;wd_red_plus_8tb&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;hdd-ssd-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 値（TBW・保証年数・年間ワークロード・PS5 の要件など）は calc.mjs が data.json の facts から M に入れて渡す。
// 容量は表記の単位（1GB = 10億バイト、1TB = 1000GB）。読者が入れるデータの量だけは Windows の表示で測る（neededLabelGB で直す）。

// SSD: 保証される書き込み量（TBW）に届くまでの年数 = TBW × 1000 ÷ (1日の書き込み GB × 365)
function yearsToTbw(tbw, dailyGB) {
  return (tbw * 1000) / (dailyGB * 365);
}

// 保証は「年数か TBW の早いほう」。TBW に届くより先に保証の年数が来るか
function warrantyEndsFirst(tbw, years, dailyGB) {
  return yearsToTbw(tbw, dailyGB) &gt;= years;
}

// 保証の年数のうちに TBW に届く 1日の書き込み量（GB）。これ以下なら年数のほうが先に来る
function dailyLimitForWarranty(tbw, years) {
  return (tbw * 1000) / (years * 365);
}

// HDD: 1日の読み書き量（GB）を年あたり（TB）に直す。年間ワークロードは読み書きの合計
function tbPerYear(dailyGB) {
  return (dailyGB * 365) / 1000;
}

// 必要な容量（表記の GB）= 入れるデータ ÷ (1 − 残す空きの割合)
function neededGB(dataGB, freeRatio) {
  return dataGB / (1 - freeRatio);
}

// 読者が測るデータの量は Windows の表示（1024 の3乗バイトを 1GB と数える）。表記の GB に直す倍率
const WIN_TO_LABEL = 1024 ** 3 / 1e9;

// Windows の表示で測ったデータの量から、必要な容量（表記の GB）を出す
function neededLabelGB(winDataGB, freeRatio) {
  return neededGB(winDataGB * WIN_TO_LABEL, freeRatio);
}

// 必要な容量以上の、いちばん小さい容量の選択肢（無ければ null）
function pickCap(needGB, caps) {
  return caps.find((c) =&gt; c &gt;= needGB - 1e-9) ?? null;
}

// 表記の容量（10億バイト単位の GB）を、1024 の3乗バイトを 1GB として数えた値に直す
function binaryGB(labelGB) {
  return (labelGB * 1e9) / 1024 ** 3;
}

// 用途ごとに選ぶ種類（記事の結論と同じ）
//   os・game → NVMe の M.2 SSD、ps5 → PS5 の要件を満たす M.2 SSD、oldpc → 2.5インチ SATA SSD、
//   media → 内蔵 HDD（CMR）、backup → 外付け HDD、portable → 外付け SSD
const KIND = { os: &quot;nvme&quot;, game: &quot;nvme&quot;, ps5: &quot;ps5&quot;, oldpc: &quot;sata&quot;, media: &quot;hdd_cmr&quot;, backup: &quot;ext_hdd&quot;, portable: &quot;ext_ssd&quot; };
const isSsd = (kind) =&gt; [&quot;nvme&quot;, &quot;ps5&quot;, &quot;sata&quot;, &quot;ext_ssd&quot;].includes(kind);

// PS5 の M.2 SSD の要件（公式の推奨・容量）を、読み出し速度と容量で確かめる
function ps5Fits(readMBs, capGB, M) {
  return readMBs &gt;= M.ps5MinRead &amp;&amp; capGB &gt;= M.ps5MinGB &amp;&amp; capGB &lt;= M.ps5MaxGB;
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（使い方・入れるデータの量・1日の書き込み量）。機種は選ばせず、条件に合う買える商品を1つ出す。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    use: &quot;使い方&quot;, data: &quot;入れるデータ&quot;, daily: &quot;1日の書き込み&quot;, key: { data: &quot;データ&quot;, daily: &quot;書き込み&quot; }, useS: { oldpc: &quot;古いPC換装&quot; },
    os: &quot;OS・アプリ&quot;, game: &quot;PC のゲーム&quot;, ps5: &quot;PS5 の増設&quot;, oldpc: &quot;古い PC の換装&quot;, media: &quot;写真・動画の保管&quot;, backup: &quot;バックアップ&quot;, portable: &quot;持ち運び&quot;,
    verdict: (k, c) =&gt; `○ ${k}・${c}`, verdictCond: (k, c) =&gt; `△ ${k}・${c}（下の注意を確かめてください）`,
    capCalc: (d, f, n, c) =&gt; `要る容量: データ ${d}（Windows の表示）を表記の単位に直して ÷ (1 − 空き${f}%) = ${n} → ${c}`,
    capOver: (n) =&gt; `要る容量 ${n} は、このツールの容量の選択肢を超えます。2台に分けてください`,
    capLabel: (c, b) =&gt; `表記の ${c} は、1024 の3乗バイトを 1GB と数える表示では約 ${b}GB です`,
    lifeNvme: (t, d, y) =&gt; `TBW が ${t} の 2TB の SSD に1日 ${d}GB 書くと、TBW に届くまで約 ${y} 年の計算です`,
    lifeSata: (c, t, d, y) =&gt; `2.5インチ SATA の Samsung 870 EVO ${c}（${t}TBW）に1日 ${d}GB 書くと、約 ${y} 年で TBW に届く計算です`,
    warrFirst: (w) =&gt; `保証の${w}年のほうが TBW より先に終わります（保証は年数と TBW の早いほう）`,
    tbwFirst: (w) =&gt; `保証の${w}年より前に TBW に届く計算です。書き込みの多い使い方なら容量を上げると TBW も上がります`,
    tbwDef: &quot;TBW はメーカーが保証する書き込みの総量で、その量で壊れるという意味ではありません&quot;,
    smallCap: (a, b) =&gt; `TBW は容量が小さいほど小さくなります（Samsung 870 EVO は 1TB で ${a}TBW、500GB で ${b}TBW）。年数は 2TB の値なので、選ぶ容量の TBW で計算し直してください`,
    hddYear: (d, t) =&gt; `1日 ${d}GB の読み書きは、年 ${t}TB です`,
    hddCmrOk: (w) =&gt; `NAS 向けの CMR の HDD（WD Red Plus・IronWolf）の年間ワークロード ${w}TB/年の内側です`,
    hddCmrOver: (w) =&gt; `NAS 向けの CMR の HDD の年間ワークロード ${w}TB/年も超えます。台数を分けるか、もっと上の等級を検討してください`,
    hddSmr: (w) =&gt; `BarraCuda（SMR、${w}TB/年）では目安を超えます。年間ワークロードがもっと大きい NAS 向けの HDD を選んでください`,
    hddSmrNote: &quot;Seagate の一覧では、NAS 向けの IronWolf はどの容量も CMR、SMR はデスクトップ向け BarraCuda の 4TB・8TB などです&quot;,
    nvme: &quot;NVMe の M.2 SSD&quot;, ps5k: &quot;PCIe Gen4x4 の M.2 SSD（ヒートシンク付き）&quot;, sata: &quot;2.5インチ SATA SSD&quot;, hdd_cmr: &quot;HDD（NAS なら CMR）&quot;, ext_hdd: &quot;外付け HDD&quot;, ext_ssd: &quot;外付け SSD&quot;,
    whyNvme: (r, s) =&gt; `PCIe 4.0 の NVMe SSD は、読み出し最大 ${r}MB/s（Samsung 990 PRO 2TB）で、SATA の上限 ${s}MB/s を大きく超えます`,
    whyOs: (g) =&gt; `Windows 11 の最小は ${g}GB です。更新のために、あとからさらに要ることがあります`,
    whyGame: () =&gt; &quot;Steam の動作環境で SSD 必須と書く大作ゲームがあります（Starfield・Baldur&apos;s Gate 3・Cyberpunk 2077 など）&quot;,
    whyPs5: (r, w, h) =&gt; `PS5 は PCIe Gen4x4 の M.2 NVMe SSD で、読み出し ${r}MB/s 以上が推奨です。冷却が必要で、ヒートシンクを付けた大きさは幅 ${w}mm・高さ ${h}mm までです`,
    ps5Cap: &quot;PS5 が対応する容量は 250GB〜8TB です&quot;,
    ps5Usb: &quot;USB の外付けに移した PS5 のゲームは、本体か M.2 SSD にコピーし直さないと遊べません&quot;,
    whyOld: (s) =&gt; `先に PC の仕様書で、対応する接続規格（SATA か NVMe/PCIe か）とサイズ（2.5インチ、または M.2 の長さ）を確かめます。2.5インチの SATA と分かったら、SATA SSD の上限は ${s}MB/s までの速さで、古い SATA 3Gb/s の接続とも互換があります`,
    whyMedia: (w) =&gt; `写真・動画のように大量にしまうデータは HDD が向いています。NAS のように読み書きが続くなら、年間ワークロード（1年間の読み書きの合計）が ${w}TB/年の NAS 向け HDD を選びます`,
    whyBackup: (w) =&gt; `調べた外付け HDD は、どれも記録方式をメーカーが公表していません。NAS で読み書きが続くなら、年間ワークロードが ${w}TB/年の内蔵の NAS 向け HDD を選びます`,
    retention: (m, t) =&gt; `SSD を電源なしで置いたとき、データが残る期間の最低ラインは、書き込みの上限まで使った状態で${m}か月（${t}℃以下）です（Dell の記事が引く JEDEC の要件）。長く置くなら、コピーを別の媒体にも取っておきます`,
    whyPortable: (a, d) =&gt; `Samsung T7 Shield は USB 3.2 Gen 2 の外付け SSD で、重さは ${a}g、Samsung の社内試験で ${d}m の落下に耐えました`,
    note: &quot;結果は計算の目安です。買う前に、PC の仕様書で対応する接続規格（SATA か NVMe/PCIe か）とサイズ（2.5インチ、または M.2 の長さ）を確かめてください。入れるデータは Windows の表示（1024 の3乗バイトを 1GB と数える）の量で、SSD・HDD の容量は表記の単位（1TB = 1兆バイト）です。空きを2割残す仮定です。年数は TBW ÷ 1日の書き込み量で、書き込みは毎日同じと仮定しています。値はメーカー・PlayStation・Microsoft・Steam の公式の資料によります。実機は試していません。&quot;,
  },
  en: {
    use: &quot;Use&quot;, data: &quot;Data to store&quot;, daily: &quot;Written per day&quot;, key: { data: &quot;Data&quot;, daily: &quot;Writes/day&quot; }, useS: {},
    os: &quot;OS and apps&quot;, game: &quot;PC games&quot;, ps5: &quot;PS5 expansion&quot;, oldpc: &quot;Older PC upgrade&quot;, media: &quot;Photos and video&quot;, backup: &quot;Backups&quot;, portable: &quot;Carry around&quot;,
    verdict: (k, c) =&gt; `✓ ${k}, ${c}`, verdictCond: (k, c) =&gt; `△ ${k}, ${c} (check the notes below)`,
    capCalc: (d, f, n, c) =&gt; `Capacity needed: ${d} of data (as Windows shows it), converted to label units, ÷ (1 − ${f}% free) = ${n} → ${c}`,
    capOver: (n) =&gt; `You need ${n}, more than the largest size here. Split it across two drives`,
    capLabel: (c, b) =&gt; `A ${c} label shows up as about ${b} GB when counted in units of 1024³ bytes`,
    lifeNvme: (t, d, y) =&gt; `A 2TB SSD rated for ${t} TBW, written at ${d} GB a day, reaches its TBW in about ${y} years`,
    lifeSata: (c, t, d, y) =&gt; `A 2.5-inch SATA Samsung 870 EVO ${c} (${t} TBW), written at ${d} GB a day, reaches its TBW in about ${y} years`,
    warrFirst: (w) =&gt; `The ${w}-year warranty runs out before the TBW does (it ends at the years or the TBW, whichever comes first)`,
    tbwFirst: (w) =&gt; `It reaches its TBW before the ${w}-year warranty ends. For heavy writing, a larger drive also has a higher TBW`,
    tbwDef: &quot;TBW is the total writing the maker&apos;s warranty covers, not the point where the drive dies&quot;,
    smallCap: (a, b) =&gt; `Smaller drives have lower TBW (the Samsung 870 EVO is rated ${a} TBW at 1TB and ${b} TBW at 500GB). The years above use the 2TB figure, so redo it with the TBW of the size you buy`,
    hddYear: (d, t) =&gt; `${d} GB read and written a day is ${t} TB a year`,
    hddCmrOk: (w) =&gt; `That&apos;s inside the ${w} TB/year workload rating of NAS CMR drives (WD Red Plus, IronWolf)`,
    hddCmrOver: (w) =&gt; `That&apos;s more than even the ${w} TB/year rating of NAS CMR drives. Split it across drives or look at a higher class`,
    hddSmr: (w) =&gt; `It&apos;s over the ${w} TB/year rating of the SMR BarraCuda, so pick a NAS drive with a higher workload rating`,
    hddSmrNote: &quot;In Seagate&apos;s list, the NAS IronWolf line is CMR at every size, while SMR shows up in desktop BarraCuda drives such as the 4TB and 8TB&quot;,
    nvme: &quot;NVMe M.2 SSD&quot;, ps5k: &quot;PCIe Gen4x4 M.2 SSD with heatsink&quot;, sata: &quot;2.5-inch SATA SSD&quot;, hdd_cmr: &quot;Hard drive (CMR for a NAS)&quot;, ext_hdd: &quot;External hard drive&quot;, ext_ssd: &quot;Portable SSD&quot;,
    whyNvme: (r, s) =&gt; `A PCIe 4.0 NVMe SSD reads at up to ${r} MB/s (Samsung 990 PRO 2TB), far past the SATA ceiling of ${s} MB/s`,
    whyOs: (g) =&gt; `Windows 11 needs at least ${g} GB, and updates can need more over time`,
    whyGame: () =&gt; &quot;Some big games list an SSD as required on Steam (Starfield, Baldur&apos;s Gate 3, Cyberpunk 2077 and others)&quot;,
    whyPs5: (r, w, h) =&gt; `The PS5 takes a PCIe Gen4x4 M.2 NVMe SSD, with ${r} MB/s or faster read recommended. It needs a heatsink or similar cooling, and the SSD with its heatsink can be at most ${w} mm wide and ${h} mm high`,
    ps5Cap: &quot;The PS5 supports 250GB to 8TB&quot;,
    ps5Usb: &quot;PS5 games moved to USB storage have to be copied back to the console or an M.2 SSD before you can play them&quot;,
    whyOld: (s) =&gt; `First check the PC&apos;s spec sheet for the supported interface (SATA or NVMe/PCIe) and size (2.5-inch, or the M.2 length). If it lists a 2.5-inch SATA drive, a SATA SSD tops out at the SATA ceiling of ${s} MB/s, and it works on older SATA 3Gb/s ports too`,
    whyMedia: (w) =&gt; `Hard drives suit large piles of photos and video. For a NAS that reads and writes all the time, pick a NAS drive rated for ${w} TB/year`,
    whyBackup: (w) =&gt; `None of the external hard drives checked state their recording technology. For a NAS that reads and writes all the time, use an internal NAS drive rated for ${w} TB/year`,
    retention: (m, t) =&gt; `Per JEDEC&apos;s requirement (as cited by Dell), an SSD written to its rated limit only has to hold data unpowered for ${m} months, stored at up to ${t}°C. If you leave an SSD sitting, keep a copy on another drive too`,
    whyPortable: (a, d) =&gt; `The Samsung T7 Shield is a USB 3.2 Gen 2 portable SSD. It weighs ${a} g and passed a ${d} m drop in Samsung&apos;s own test`,
    note: &quot;This is a calculated estimate. Before you buy, check your PC&apos;s spec sheet for the supported interface (SATA or NVMe/PCIe) and size (2.5-inch, or the M.2 length). Data is the amount Windows shows (1GB counted as 1024³ bytes), drive sizes are label units (1TB = 1 trillion bytes), and 20% is assumed to be left free. Years = TBW ÷ GB written per day, assuming the same amount every day. Values come from the makers&apos;, PlayStation&apos;s, Microsoft&apos;s and Steam&apos;s official pages. No drives were tested hands-on.&quot;,
  },
};

const USES_ = [&quot;os&quot;, &quot;game&quot;, &quot;ps5&quot;, &quot;oldpc&quot;, &quot;media&quot;, &quot;backup&quot;, &quot;portable&quot;];
const capL_ = (c, lang) =&gt; (c &gt;= 1000 ? `${c / 1000}TB` : `${c}GB`);
const kindL_ = (kind, t) =&gt; (kind === &quot;ps5&quot; ? t.ps5k : t[kind]);

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;use&quot;, type: &quot;select&quot;, label: t.use, value: &quot;game&quot;, options: USES_.map((x) =&gt; ({ value: x, label: t[x], short: t.useS[x] })) },
    { name: &quot;data&quot;, type: &quot;select&quot;, label: t.data, short: t.key.data, value: &quot;500&quot;, options: M.dataOptions.map((x) =&gt; ({ value: String(x), label: capL_(x, lang) })) },
    { name: &quot;daily&quot;, type: &quot;select&quot;, label: t.daily, short: t.key.daily, value: &quot;50&quot;, when: (s) =&gt; ![&quot;portable&quot;, &quot;ps5&quot;, &quot;backup&quot;].includes(s.use), options: M.dailyOptions.map((x) =&gt; ({ value: String(x), label: `${x}GB` })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const use = v.use, data = Number(v.data), d = Number(v.daily);
  if (!USES_.includes(use) || !M.dataOptions.includes(data) || !M.dailyOptions.includes(d)) return { status: &quot;error&quot;, lines: [] };
  const kind = M.kinds[use];
  const ssd = isSsd(kind);
  const caps = ssd ? M.caps.filter((c) =&gt; kind !== &quot;ps5&quot; || (c &gt;= M.ps5MinGB &amp;&amp; c &lt;= M.ps5MaxGB)) : M.capsHdd;
  const need = neededLabelGB(data, M.free);
  const cap = pickCap(need, caps);
  const needL = capL_(Math.ceil(need - 1e-9), lang);
  let status = &quot;ok&quot;;
  const lines = [];
  // 種類の理由（用途ごとに1行）
  if (use === &quot;os&quot;) lines.push(t.whyNvme(M.s990Read.toLocaleString(&quot;en-US&quot;), M.sataCeil), t.whyOs(M.win11));
  if (use === &quot;game&quot;) lines.push(t.whyNvme(M.s990Read.toLocaleString(&quot;en-US&quot;), M.sataCeil), t.whyGame(M.nSsdGames));
  if (use === &quot;ps5&quot;) lines.push(t.whyPs5(M.ps5MinRead.toLocaleString(&quot;en-US&quot;), M.ps5MaxW, M.ps5MaxH), t.ps5Cap, t.ps5Usb);
  if (use === &quot;oldpc&quot;) lines.push(t.whyOld(M.sataCeil));
  if (use === &quot;media&quot;) lines.push(t.whyMedia(M.wlCmr), t.hddSmrNote);
  if (use === &quot;backup&quot;) lines.push(t.whyBackup(M.wlCmr), t.retention(M.retMonths, M.retTemp));
  if (use === &quot;portable&quot;) lines.push(t.whyPortable(M.t7g, M.t7drop));
  // 容量
  if (cap === null) { status = &quot;cond&quot;; lines.push(t.capOver(needL)); }
  else lines.push(t.capCalc(capL_(data, lang), Math.round(M.free * 100), needL, capL_(cap, lang)), t.capLabel(capL_(cap, lang), Math.floor(binaryGB(cap) + 1e-9)));
  // 何年もつか（SSD）・年間ワークロード（HDD）
  if (kind === &quot;nvme&quot;) {
    const y = yearsToTbw(M.tbwNvme2tb, d);
    lines.push(t.lifeNvme(M.tbwNvme2tb.toLocaleString(&quot;en-US&quot;), d, Math.floor(y * 10 + 1e-9) / 10));
    if (warrantyEndsFirst(M.tbwNvme2tb, M.warrY, d)) lines.push(t.warrFirst(M.warrY)); else { status = &quot;cond&quot;; lines.push(t.tbwFirst(M.warrY)); }
    lines.push(t.tbwDef);
  }
  if (kind === &quot;sata&quot; &amp;&amp; cap !== null &amp;&amp; M.tbw870[cap]) {
    const tb = M.tbw870[cap], y = yearsToTbw(tb, d);
    lines.push(t.lifeSata(capL_(cap, lang), tb.toLocaleString(&quot;en-US&quot;), d, Math.floor(y * 10 + 1e-9) / 10));
    if (warrantyEndsFirst(tb, M.warrY, d)) lines.push(t.warrFirst(M.warrY)); else { status = &quot;cond&quot;; lines.push(t.tbwFirst(M.warrY)); }
    lines.push(t.tbwDef);
  }
  if (kind === &quot;nvme&quot; &amp;&amp; cap !== null &amp;&amp; cap &lt; 2000) lines.push(t.smallCap(M.tbw870[1000], M.tbw870[500]));
  if (kind === &quot;hdd_cmr&quot;) {
    const tb = tbPerYear(d);
    lines.push(t.hddYear(d, Number(tb.toFixed(2))));
    if (tb &lt;= M.wlCmr) lines.push(t.hddCmrOk(M.wlCmr)); else { status = &quot;cond&quot;; lines.push(t.hddCmrOver(M.wlCmr)); }
    if (tb &gt; M.wlSmr) lines.push(t.hddSmr(M.wlSmr));
  }
  const kl = kindL_(kind, t), cl = cap === null ? needL : capL_(cap, lang);
  const verdict = status === &quot;ok&quot; ? t.verdict(kl, cl) : t.verdictCond(kl, cl);
  // 候補: 種類が合い、容量が要る容量以上の機種（容量の大きい機種しか無ければ、それを出す）
  const pool = M.pools[kind] || [];
  const picks = pool.filter((id) =&gt; M.spec[id] &amp;&amp; M.spec[id].cap &gt;= need - 1e-9);
  return { status, verdict, lines, picks, specsPhone: false }; // スマホではカードの仕様の札を出さない（種類と容量は判定にある。2026-10-15 1画面に収める）
}

const NOTE = (lang) =&gt; T_[lang].note;

// G. 使い方のタイル: 1回押すと使い方とよくある条件がまとめて決まる（中身は review/decisions.md に記録）
function tiles(M, lang) {
  const t = T_[lang];
  // タイルは7枚あるので、スマホでは説明（向く種類）を出さない（判定に出る。2026-10-15 1画面に収める）
  const S = (use, data, daily) =&gt; ({ label: t[use], sub: kindL_(M.kinds[use], t), subPhone: false, set: { use, data: String(data), daily: String(daily) } });
  // 1枚目は既定の条件（PC のゲーム・500GB・50GB）と同じ（開いたときに印が付く。2026-10-15 並べ替え）
  return [S(&quot;game&quot;, 500, 50), S(&quot;os&quot;, 250, 20), S(&quot;ps5&quot;, 1000, 50), S(&quot;oldpc&quot;, 250, 10), S(&quot;media&quot;, 2000, 50), S(&quot;backup&quot;, 1000, 20), S(&quot;portable&quot;, 500, 20)];
}

// AI・検索向けの早見表に出す条件（使い方ごとと、よくある量）
function presets() {
  const P = (use, data, daily) =&gt; ({ use, data: String(data), daily: String(daily) });
  return [
    P(&quot;os&quot;, 250, 20), P(&quot;game&quot;, 500, 50), P(&quot;game&quot;, 1000, 200), P(&quot;game&quot;, 1500, 50), P(&quot;ps5&quot;, 1000, 50), P(&quot;ps5&quot;, 1500, 50),
    P(&quot;oldpc&quot;, 250, 10), P(&quot;oldpc&quot;, 750, 50), P(&quot;media&quot;, 2000, 50), P(&quot;media&quot;, 2500, 400), P(&quot;backup&quot;, 1000, 20), P(&quot;portable&quot;, 500, 20),
  ];
}

// 商品のカードに出す仕様（その商品のメーカー公表の値。絞り込みの条件は出さない）
function pickSpecs(id, v, M, lang) {
  const s = M.spec[id];
  if (!s) return [];
  const ja = lang === &quot;ja&quot;, t = T_[lang], out = [];
  out.push(`${capL_(s.cap, lang)}${ja ? &quot;・&quot; : &quot;, &quot;}${kindL_(s.kind === &quot;nvme&quot; &amp;&amp; s.heatsink &amp;&amp; s.ps5 ? &quot;ps5&quot; : s.kind, t)}`);
  if (s.read) out.push(ja ? `読み出し 最大${s.read.toLocaleString(&quot;en-US&quot;)}MB/s${s.write ? `・書き込み 最大${s.write.toLocaleString(&quot;en-US&quot;)}MB/s` : &quot;&quot;}（メーカー公表）` : `Up to ${s.read.toLocaleString(&quot;en-US&quot;)} MB/s read${s.write ? `, ${s.write.toLocaleString(&quot;en-US&quot;)} MB/s write` : &quot;&quot;} (maker rating)`);
  if (s.tbw) out.push(ja ? `TBW ${s.tbw.toLocaleString(&quot;en-US&quot;)}` : `${s.tbw.toLocaleString(&quot;en-US&quot;)} TBW`);
  if (s.rec) out.push(ja ? `${s.rec}・年間ワークロード ${s.wl}TB/年` : `${s.rec}, ${s.wl} TB/year workload rating`);
  if (s.g) out.push(ja ? `約${s.g}g` : `about ${s.g} g`);
  if (s.warr) out.push(ja ? `保証 ${s.warr}年` : `${s.warr}-year warranty`);
  return out;
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;tiles&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;ssd-lifespan-capacity-and-long-term-storage&quot;&gt;SSD lifespan, capacity and long-term storage&lt;/h2&gt;
&lt;h3 id=&quot;how-many-years-does-an-ssd-last&quot;&gt;How many years does an SSD last?&lt;/h3&gt;
&lt;p&gt;An SSD’s TBW rating can’t tell you how many years it will last before it fails.&lt;/p&gt;
&lt;p&gt;In this calculation, assuming 10 GB to 200 GB written a day, the 5-year warranty ends before the TBW rating is reached. That covers two Samsung drives: a 2TB model rated 1,200 TBW and a 1TB model rated 600 TBW. The 1TB model’s 250GB and 500GB versions are rated lower, at 150 TBW and 300 TBW, and at 200 GB a day they reach the TBW in under 5 years.&lt;/p&gt;
&lt;p&gt;Per Samsung’s warranty terms, TBW is the total amount of writing the maker’s warranty covers. It isn’t the point where the drive dies, and the warranty ends at the years or the TBW, whichever comes first.&lt;/p&gt;
&lt;p&gt;In this calculation, the warranty (5 years) ends before the TBW is reached in every row. Years are rounded down.&lt;/p&gt;

























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Written per day (assumed)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Years to reach the TBW (2TB, 1,200 TBW)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Years to reach the TBW (1TB, 600 TBW)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;10 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 328 years&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 164 years&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;50 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 65 years&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 32 years&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;200 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 16 years&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 8 years&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h3 id=&quot;how-big-an-ssd-do-i-need&quot;&gt;How big an SSD do I need?&lt;/h3&gt;
&lt;p&gt;With 25% left free, a 1TB SSD holds up to 698 GB as Windows shows it.&lt;/p&gt;
&lt;p&gt;The steps leave 20% free; this limit uses 25%.&lt;/p&gt;
&lt;p&gt;Pick the smallest size that is bigger than your data plus the free space. Leaving 25% free, data up to 698 GB as Windows shows it fits on 1TB, and up to 1,396 GB fits on 2TB. In the makers’ label units, those limits are 750 GB and 1,500 GB.&lt;/p&gt;
&lt;p&gt;Per the system requirements on Steam, Starfield, for example, requires an SSD and 125 GB of free space.&lt;/p&gt;
&lt;h3 id=&quot;backups-and-long-term-storage&quot;&gt;Backups and long-term storage&lt;/h3&gt;
&lt;p&gt;Among the models checked in October 2026, an external hard drive is a candidate for backups. None of the external drives checked state their recording technology.&lt;/p&gt;
&lt;p&gt;Per Dell’s support article, which cites JEDEC, an SSD written to its rated limit must hold data for at least three months unpowered, stored at up to 40°C. Dell advises powering a drive that holds data about every 2.5 months for at least 3 weeks. If you leave an SSD sitting, keep a copy on another drive too.&lt;/p&gt;
&lt;h2 id=&quot;adding-storage-to-a-ps5-or-xbox&quot;&gt;Adding storage to a PS5 or Xbox&lt;/h2&gt;
&lt;h3 id=&quot;ps5-expansion&quot;&gt;PS5 expansion&lt;/h3&gt;
&lt;p&gt;Per PlayStation’s official support page, the PS5 takes a PCIe Gen4x4 M.2 NVMe SSD from 250 GB to 8 TB, in sizes 2230 to 22110. 5,500 MB/s or faster sequential read is recommended, and it needs a heatsink or similar cooling. With the heatsink on, the SSD can be at most 25 mm wide and 11.25 mm high.&lt;/p&gt;
&lt;p&gt;PS5 games moved to USB extended storage have to be copied back to the console or an M.2 SSD before you can play them.&lt;/p&gt;
&lt;h3 id=&quot;xbox-external-drives&quot;&gt;Xbox external drives&lt;/h3&gt;
&lt;p&gt;Per the Xbox Wire comparison table (September 2020), the Xbox Series X|S can play Xbox One-era games straight from a USB 3.1 drive. Games optimized for Series X|S need the internal SSD or the Storage Expansion Card.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-condition&quot;&gt;Picks by condition&lt;/h2&gt;
&lt;p&gt;One listing per use, chosen from Amazon.com listings checked on October 9, 2026 against these conditions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The maker’s official page lists the specs&lt;/li&gt;
&lt;li&gt;Sold by Amazon.com&lt;/li&gt;
&lt;li&gt;At least 100 ratings and 4 stars or more&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each pick showed as new that day. Check prices on the store.&lt;/p&gt;
&lt;h3 id=&quot;os-apps-and-games-on-a-pc&quot;&gt;OS, apps and games on a PC&lt;/h3&gt;
&lt;p&gt;It is PCIe 4.0 without a heatsink.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung 990 PRO 2TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71OWtcxKgvL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung 990 PRO 2TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0BPXRY7N2?q=Samsung+990+PRO+2TB&amp;amp;us=B0BHJJ9Y77&amp;amp;l=en&quot; aria-label=&quot;View Samsung 990 PRO 2TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;ps5-expansion-1&quot;&gt;PS5 expansion&lt;/h3&gt;
&lt;p&gt;The maker states PS5 compatibility, and it reads at 5,500 MB/s or faster.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung 990 PRO with Heatsink 2TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/715zWolPNVL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung 990 PRO with Heatsink 2TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C6XP42SC?q=Samsung+990+PRO+with+Heatsink+2TB&amp;amp;us=B0BHJDY57J&amp;amp;l=en&quot; aria-label=&quot;View Samsung 990 PRO with Heatsink 2TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;carrying-data-around&quot;&gt;Carrying data around&lt;/h3&gt;
&lt;p&gt;It is a USB 3.2 Gen 2 portable SSD that weighs 98 g and passed a 3 m drop in Samsung’s own test.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung T7 Shield 2TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61CKrZWOcrL._AC_SX300_SY300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung T7 Shield 2TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B09Y1P5D12?q=Samsung+T7+Shield+2TB&amp;amp;us=B09VLHR4JC&amp;amp;l=en&quot; aria-label=&quot;View Samsung T7 Shield 2TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;photos-and-videos-inside-a-pc-or-nas&quot;&gt;Photos and videos inside a PC or NAS&lt;/h3&gt;
&lt;p&gt;It is a 3.5-inch internal hard drive listed as CMR, rated 180 TB/year. For USB, pick an external drive.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for WD Red Plus 8TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81S-Gug4DmL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;WD Red Plus 8TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CMQ6SK7W?q=WD+Red+Plus+8TB&amp;amp;us=B0CMQ6SK7W&amp;amp;l=en&quot; aria-label=&quot;View WD Red Plus 8TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;backups&quot;&gt;Backups&lt;/h3&gt;
&lt;p&gt;The maker leaves recording technology blank in its spec table, so it is not a NAS pick.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for WD Elements Portable 4TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/91mlqrT75WL._AC_SX425_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;WD Elements Portable 4TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0713WPGLL?q=WD+Elements+Portable+4TB&amp;amp;us=B0713WPGLL&amp;amp;l=en&quot; aria-label=&quot;View WD Elements Portable 4TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;should-i-buy-an-hdd-or-an-ssd&quot;&gt;Should I buy an HDD or an SSD?&lt;/h3&gt;
&lt;p&gt;Per the makers’ official specs, put the OS, apps and games on an NVMe SSD, and keep large photo and video collections on a hard drive.&lt;/p&gt;
&lt;h3 id=&quot;how-many-years-does-an-ssd-last-1&quot;&gt;How many years does an SSD last?&lt;/h3&gt;
&lt;p&gt;An SSD’s TBW rating can’t tell you how many years it will last before it fails. In this calculation, assuming 10 GB to 200 GB written a day, the 5-year warranty ends before the TBW rating is reached.&lt;/p&gt;
&lt;p&gt;That covers two Samsung drives: a 2TB model rated 1,200 TBW and a 1TB model rated 600 TBW. The 1TB model’s 250GB and 500GB versions are rated lower, at 150 TBW and 300 TBW, and at 200 GB a day they reach the TBW in under 5 years.&lt;/p&gt;
&lt;h3 id=&quot;how-big-an-ssd-do-i-need-1&quot;&gt;How big an SSD do I need?&lt;/h3&gt;
&lt;p&gt;In this calculation, leaving 25% free, data up to 698 GB as Windows shows it fits on 1TB, and up to 1,396 GB fits on 2TB. In the makers’ label units, those limits are 750 GB and 1,500 GB.&lt;/p&gt;
&lt;h3 id=&quot;how-do-i-add-storage-to-a-ps5&quot;&gt;How do I add storage to a PS5?&lt;/h3&gt;
&lt;p&gt;Per PlayStation’s official support page, the PS5 takes a PCIe Gen4x4 M.2 NVMe SSD from 250 GB to 8 TB, in sizes 2230 to 22110. 5,500 MB/s or faster sequential read is recommended, and it needs a heatsink or similar cooling.&lt;/p&gt;
&lt;p&gt;With the heatsink on, the SSD can be at most 25 mm wide and 11.25 mm high.&lt;/p&gt;
&lt;h3 id=&quot;does-an-ssd-lose-data-if-it-sits-unplugged&quot;&gt;Does an SSD lose data if it sits unplugged?&lt;/h3&gt;
&lt;p&gt;Per Dell’s support article, which cites JEDEC, an SSD written to its rated limit must hold data for at least three months unpowered, stored at up to 40°C. Dell advises powering a drive that holds data about every 2.5 months for at least 3 weeks.&lt;/p&gt;
&lt;p&gt;If you leave an SSD sitting, keep a copy on another drive too.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Worked out from the makers’ official pages as of October 2026. No drive was tested in person. The Amazon.com heatsink 990 PRO is the C model (MZ-V9P2T0CW), and Samsung’s US page for it shows PS5 Compatible.&lt;/p&gt;&lt;p&gt;Sources: &lt;a href=&quot;https://sata-io.org/sites/default/files/documents/SATA-Revision-3.0-FAQ-FINAL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;SATA-IO&lt;/a&gt; ／ &lt;a href=&quot;https://www.samsung.com/us/memory-storage/nvme-ssd/990-pro-pcie-4-0-nvme-ssd-1tb-sku-mz-v9p2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Samsung 990 PRO&lt;/a&gt; ／ &lt;a href=&quot;https://www.samsung.com/us/memory-storage/sata-ssd/870-evo-sata-2-5-ssd-2tb-sku-mz-77e2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Samsung 870 EVO&lt;/a&gt; ／ &lt;a href=&quot;https://www.playstation.com/en-us/support/hardware/ps5-install-m2-ssd/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;PlayStation M.2 SSD&lt;/a&gt; ／ &lt;a href=&quot;https://news.xbox.com/en-us/2020/09/24/xbox-series-x-and-xbox-series-s-custom-storage-solution-primer/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Xbox Wire&lt;/a&gt; ／ &lt;a href=&quot;https://www.seagate.com/jp/ja/products/cmr-smr-list/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Seagate CMR/SMR list&lt;/a&gt; ／ &lt;a href=&quot;https://www.dell.com/support/kbdoc/en-ca/000198930/ssd-data-retention-considerations-when-powering-off-systems-for-a-prolonged-duration&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell article on SSD data retention&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Years until an SSD reaches its TBW = TBW × 1000 ÷ (GB written per day × 365). Daily writing is an assumption, checked across 10 GB to 200 GB a day&lt;/li&gt;
&lt;li&gt;A hard drive’s yearly reads and writes (TB) = GB read and written per day × 365 ÷ 1000. Assumed 20 GB to 400 GB a day, compared with the annual workload rating (reads plus writes combined)&lt;/li&gt;
&lt;li&gt;Capacity needed = data to store ÷ (1 − share of space left free). Data is measured the way Windows shows it (1 GB = 1024³ bytes), so it is converted to the label’s units (1 GB = 1 billion bytes) before dividing. The 1TB cutoff is 698 GB as Windows shows it = floor(1000 × 0.75 ÷ 1.073741824), and the 2TB cutoff is 1,396 GB = floor(2000 × 0.75 ÷ 1.073741824); in label units they are 750 GB and 1,500 GB. Free space was checked across 10% to 25%, and the smallest capacity at or above the result was picked&lt;/li&gt;
&lt;li&gt;Not examined: hard drive speed and lifespan, PCIe 5.0 or real-world SSD speed gains and game load times, how long a hard drive keeps data unpowered, and whether recording TV needs CMR. The Amazon.com heatsink 990 PRO is the C model (MZ-V9P2T0CW), and Samsung’s US page for that model carries the PS5 Compatible label. Its TBW is not used because Samsung’s pages disagree&lt;/li&gt;
&lt;li&gt;Speed ratio = 990 PRO 2TB read ÷ 870 EVO 2TB read (both are the makers’ rated maximums, rounded down)&lt;/li&gt;
&lt;li&gt;No drive was tested in person. Values come from published pages and documents of the makers, PlayStation, Xbox Wire, Steam, Microsoft and Dell (checked 2026-10-09)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Assumptions&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;How much is written to the SSD per day. The makers publish no standard figure, so this is an assumption of this article: 10 GB is office and browsing, 50 GB is typical use including game updates and photo sorting, and 200 GB is heavy use such as video editing or swapping large games: 50 (10–200)&lt;/li&gt;
&lt;li&gt;A drive filled to the brim is said to slow down and wear faster, but no official figure was found. This article assumes 20% of the space is left free (checked from 10% to 25%). It is only a margin for the capacity math, not a maker recommendation: 0.2 (0.1–0.25)&lt;/li&gt;
&lt;li&gt;Assumed GB a hard drive reads and writes per day, to compare with its annual workload rating (reads plus writes). There is no official standard figure, so this is an assumption of this article, modeled on a household using an external drive for backups, photos and recordings: 100 (20–400)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;




























































































































































































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;SATA 3.0 link speed (bits)&lt;/td&gt;&lt;td&gt;6 Gb/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://sata-io.org/sites/default/files/documents/SATA-Revision-3.0-FAQ-FINAL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sata-io.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SATA 6Gb/s ceiling&lt;/td&gt;&lt;td&gt;600 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://sata-io.org/sites/default/files/documents/SATA-Revision-3.0-FAQ-FINAL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sata-io.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 990 PRO 2TB sequential read (max)&lt;/td&gt;&lt;td&gt;7450 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/nvme-ssd/990-pro-pcie-4-0-nvme-ssd-1tb-sku-mz-v9p2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 990 PRO 2TB sequential write (max)&lt;/td&gt;&lt;td&gt;6900 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/nvme-ssd/990-pro-pcie-4-0-nvme-ssd-1tb-sku-mz-v9p2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Sequential Write Up to 6,900 MB/s&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 990 PRO 2TB warranted endurance&lt;/td&gt;&lt;td&gt;1200 TBW&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/nvme-ssd/990-pro-pcie-4-0-nvme-ssd-1tb-sku-mz-v9p2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Warranty: 5-Year Limited Warranty or 1200 TBW Limited Warranty（2TB）&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 990 PRO warranty length&lt;/td&gt;&lt;td&gt;5 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/nvme-ssd/990-pro-pcie-4-0-nvme-ssd-1tb-sku-mz-v9p2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; 5-Year Limited Warranty or 1200 TBW&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 990 PRO MTBF&lt;/td&gt;&lt;td&gt;1,500,000 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/nvme-ssd/990-pro-pcie-4-0-nvme-ssd-1tb-sku-mz-v9p2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Reliability (MTBF): 1.5 Million Hours&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 990 PRO 2TB average power&lt;/td&gt;&lt;td&gt;5.5 W&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/nvme-ssd/990-pro-pcie-4-0-nvme-ssd-1tb-sku-mz-v9p2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Average Power Consumption (system level): Average 5.5 W, Maximum 8.5 W (Burst mo&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 990 PRO 2TB weight (max)&lt;/td&gt;&lt;td&gt;9 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/sg/memory-storage/nvme-ssd/990-pro-2tb-nvme-pcie-gen-4-mz-v9p2t0bw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Weight: Max 9.0g&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 990 PRO shock rating (0.5 ms)&lt;/td&gt;&lt;td&gt;1500 G&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/nvme-ssd/990-pro-pcie-4-0-nvme-ssd-1tb-sku-mz-v9p2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Shock: 1,500 G &amp;amp; 0.5 ms (Half sine)&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;990 PRO with heatsink 2TB (MZ-V9P2T0CW) weight (max)&lt;/td&gt;&lt;td&gt;28 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/sg/memory-storage/nvme-ssd/nvme-pcie-gen-4-2tb-mz-v9p2t0cw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; 990 PRO with Heatsink 2TB MZ-V9P2T0CW: Weight Max 28.0g, 80 x 24.3 x 8.2 mm&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;990 PRO heatsink: G and C model pages disagree on TBW&lt;/td&gt;&lt;td&gt;Samsung US page for MZ-V9P2T0GW (990 PRO with Heatsink 2TB) lists 5-Year Limited Warranty or 600 TBW and 1GB cache, while the Singapore MZ-V9P2T0CW page lists 1200 TBW and the US MZ-V9P2T0CW page lists 600 TBW; the pages disagree&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/nvme-ssd/990-pro-w-heatsink-pcie-4-0-nvme-ssd-2tb-sku-mz-v9p2t0gw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;990 PRO with heatsink (G model): PS5 support and speed&lt;/td&gt;&lt;td&gt;MZ-V9P2T0GW (990 PRO w/ Heatsink 2TB): PS5 Compatible; 7,450MB/s Read, 6,900MB/s Write; PCIe 4.0 NVMe M.2&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/nvme-ssd/990-pro-w-heatsink-pcie-4-0-nvme-ssd-2tb-sku-mz-v9p2t0gw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;990 PRO with heatsink C model (MZ-V9P2T0CW, US page): PS5 support and speed&lt;/td&gt;&lt;td&gt;MZ-V9P2T0CW (990 PRO w/ Heatsink 2TB, Samsung US page): PS5 Compatible; 7,450MB/s Read, 6,900MB/s Write; PCIe 4.0 NVMe M.2, 2280&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/nvme-ssd/990-pro-w-heatsink-pcie-4-0-nvme-ssd-2tb-sku-mz-v9p2t0cw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;990 PRO with heatsink C model (MZ-V9P2T0CW) thickness&lt;/td&gt;&lt;td&gt;8.2 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/sg/memory-storage/nvme-ssd/nvme-pcie-gen-4-2tb-mz-v9p2t0cw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; MZ-V9P2T0CW: 80 x 24.3 x 8.2 mm (with heatsink)&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 990 EVO Plus 2TB sequential read (max)&lt;/td&gt;&lt;td&gt;7250 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/sg/memory-storage/nvme-ssd/990-evo-plus-2tb-mz-v9s2t0bw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Sequential Read Up to 7,250 MB/s（2TB）&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 990 EVO Plus 2TB sequential write (max)&lt;/td&gt;&lt;td&gt;6300 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/sg/memory-storage/nvme-ssd/990-evo-plus-2tb-mz-v9s2t0bw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Sequential Write Up to 6,300 MB/s（2TB）&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 990 EVO Plus 2TB warranted endurance&lt;/td&gt;&lt;td&gt;1200 TBW&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/sg/memory-storage/nvme-ssd/990-evo-plus-2tb-mz-v9s2t0bw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; 5-year Limited Warranty or 1200 TBW Limited Warranty（2TB）&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 990 EVO Plus interface&lt;/td&gt;&lt;td&gt;PCIe 4.0 x4 / 5.0 x2, NVMe 2.0&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/sg/memory-storage/nvme-ssd/990-evo-plus-2tb-mz-v9s2t0bw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Interface: PCIe® 4.0 x4 / 5.0 x2 NVMe™ 2.0&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD_BLACK SN850X 2TB sequential read (max)&lt;/td&gt;&lt;td&gt;7300 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/ssd/internal-ssd/wd-black-sn850x-nvme-ssd?sku=WDS200T2X0E-00BCA0&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD_BLACK SN850X 2TB sequential write (max)&lt;/td&gt;&lt;td&gt;6600 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/ssd/internal-ssd/wd-black-sn850x-nvme-ssd?sku=WDS200T2X0E-00BCA0&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; Sequential Write 6600MB/s&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD_BLACK SN850X 2TB TBW&lt;/td&gt;&lt;td&gt;1200 TBW&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/ssd/internal-ssd/wd-black-sn850x-nvme-ssd?sku=WDS200T2X0E-00BCA0&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; Endurance (TBW) 1200、Warranty 5-Year Limited Warranty、Weight 7.5gms&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD_BLACK SN8100 2TB sequential read (max)&lt;/td&gt;&lt;td&gt;14900 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/ssd/internal-ssd/wd-black-sn8100-ssd?sku=WDS200T1X0M-00CMT0&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD_BLACK SN8100 2TB sequential write (max)&lt;/td&gt;&lt;td&gt;14000 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/ssd/internal-ssd/wd-black-sn8100-ssd?sku=WDS200T1X0M-00CMT0&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; Sequential Write 14000MB/s&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD_BLACK SN8100 2TB TBW&lt;/td&gt;&lt;td&gt;1200 TBW&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/ssd/internal-ssd/wd-black-sn8100-ssd?sku=WDS200T1X0M-00CMT0&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; Endurance (TBW) 1200、Warranty 5-Year Limited Warranty&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD_BLACK SN8100 2TB with heatsink weight&lt;/td&gt;&lt;td&gt;31.2 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/ssd/internal-ssd/wd-black-sn8100-ssd?sku=WDS200T1XHM-00CMT0&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 9100 PRO 2TB sequential read (max)&lt;/td&gt;&lt;td&gt;14700 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/business/memory-storage/nvme-ssd/9100-pro-nvme-ssd-sku-mz-vap2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 9100 PRO 2TB sequential write (max)&lt;/td&gt;&lt;td&gt;13400 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/business/memory-storage/nvme-ssd/9100-pro-nvme-ssd-sku-mz-vap2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Sequential Write Up to 13,400 MB/s&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 9100 PRO 2TB warranted endurance&lt;/td&gt;&lt;td&gt;1200 TBW&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/business/memory-storage/nvme-ssd/9100-pro-nvme-ssd-sku-mz-vap2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; 5-year Limited Warranty or 1,200TBW Limited Warranty&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 9100 PRO 2TB average power (read)&lt;/td&gt;&lt;td&gt;8.1 W&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/business/memory-storage/nvme-ssd/9100-pro-nvme-ssd-sku-mz-vap2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Average Power Consumption (system level): Read 8.1 W / Write 7.9 W&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 870 EVO 2TB sequential read (max)&lt;/td&gt;&lt;td&gt;560 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/sata-ssd/870-evo-sata-2-5-ssd-2tb-sku-mz-77e2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Sequential Read Up to 560 MB/s&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 870 EVO 2TB sequential write (max)&lt;/td&gt;&lt;td&gt;530 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/sata-ssd/870-evo-sata-2-5-ssd-2tb-sku-mz-77e2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 870 EVO 2TB warranted endurance&lt;/td&gt;&lt;td&gt;1200 TBW&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/sg/memory-storage/sata-ssd/870-evo-2tb-sata-3-2-5-ssd-mz-77e2t0bw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 870 EVO 1TB warranted endurance&lt;/td&gt;&lt;td&gt;600 TBW&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/sg/memory-storage/sata-ssd/870-evo-2tb-sata-3-2-5-ssd-mz-77e2t0bw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 870 EVO warranty length&lt;/td&gt;&lt;td&gt;5 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/sg/memory-storage/sata-ssd/870-evo-2tb-sata-3-2-5-ssd-mz-77e2t0bw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; 5 Years Limited Warranty or 1,200 TBW&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 870 EVO MTBF&lt;/td&gt;&lt;td&gt;1,500,000 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/sata-ssd/870-evo-sata-2-5-ssd-2tb-sku-mz-77e2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Reliability (MTBF): 1.5 Million Hours&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 870 EVO 2TB average power&lt;/td&gt;&lt;td&gt;2.5 W&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/sata-ssd/870-evo-sata-2-5-ssd-2tb-sku-mz-77e2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 870 EVO 2TB weight&lt;/td&gt;&lt;td&gt;46 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/sg/memory-storage/sata-ssd/870-evo-2tb-sata-3-2-5-ssd-mz-77e2t0bw/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Weight: Approx. 46.0g&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung 870 EVO shock rating (0.5 ms)&lt;/td&gt;&lt;td&gt;1500 G&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/sata-ssd/870-evo-sata-2-5-ssd-2tb-sku-mz-77e2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Shock: 1,500 G &amp;amp; 0.5 ms (Half sine)&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung T7 Shield 2TB sequential read (max)&lt;/td&gt;&lt;td&gt;1050 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/portable-ssd/portable-ssd-t7-shield-usb-3-2-2tb-black-sku-mu-pe2t0s-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Sequential Read: Up to 1,050MB/s, Sequential Write: Up to 1,000 MB/s&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung T7 Shield 2TB sequential write (max)&lt;/td&gt;&lt;td&gt;1000 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/portable-ssd/portable-ssd-t7-shield-usb-3-2-2tb-black-sku-mu-pe2t0s-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Sequential Write: Up to 1,000 MB/s&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung T7 Shield warranty length (US page)&lt;/td&gt;&lt;td&gt;3 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/portable-ssd/portable-ssd-t7-shield-usb-3-2-2tb-black-sku-mu-pe2t0s-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Warranty: Limited 3-year&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung T7 Shield weight&lt;/td&gt;&lt;td&gt;98 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/portable-ssd/portable-ssd-t7-shield-usb-3-2-2tb-black-sku-mu-pe2t0s-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Weight: 98g (The exact weight of the product may vary by capacity)、59 x 88 x 13m&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung T7 Shield drop test height&lt;/td&gt;&lt;td&gt;3 m&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/sg/memory-storage/portable-ssd/t7-shield-2tb-black-external-storage-nvme-1050-mbs-mu-pe2t0s-ww/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SanDisk Extreme Portable SSD 2TB (SDSSDE61) read (max)&lt;/td&gt;&lt;td&gt;1050 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/ssd/external-ssd/portable-ssd-sandisk-extreme-usb-3-2?sku=SDSSDE61-2T00-G25&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SanDisk Extreme Portable SSD warranty length&lt;/td&gt;&lt;td&gt;5 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/ssd/external-ssd/portable-ssd-sandisk-extreme-usb-3-2?sku=SDSSDE61-2T00-G25&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt; 5-Year Limited Warranty&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD Red Plus 4TB recording technology&lt;/td&gt;&lt;td&gt;CMR&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.westerndigital.com/products/internal-drives/wd-red-plus-sata-3-5-hdd?sku=WD40EFPX&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;westerndigital.com&lt;/a&gt; WD40EFPX: Recording Technology CMR、5400 RPM、Cache 256MB&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD Red Plus annual workload rating&lt;/td&gt;&lt;td&gt;180 TB/year&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.westerndigital.com/products/internal-drives/wd-red-plus-sata-3-5-hdd?sku=WD40EFPX&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;westerndigital.com&lt;/a&gt; Rated for 180TB/year workload and 1M hours MTBF&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD Red Plus MTBF&lt;/td&gt;&lt;td&gt;1,000,000 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.westerndigital.com/products/internal-drives/wd-red-plus-sata-3-5-hdd?sku=WD40EFPX&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;westerndigital.com&lt;/a&gt; 1M hours MTBF&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD Red Plus warranty length&lt;/td&gt;&lt;td&gt;3 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.westerndigital.com/products/internal-drives/wd-red-plus-sata-3-5-hdd?sku=WD40EFPX&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;westerndigital.com&lt;/a&gt; 3-Year Limited Warranty&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD Red Plus 4TB (WD40EFPX) weight&lt;/td&gt;&lt;td&gt;570 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.westerndigital.com/products/internal-drives/wd-red-plus-sata-3-5-hdd?sku=WD40EFPX&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;westerndigital.com&lt;/a&gt; WD40EFPX: Weight 570gms&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD Red Plus 4TB model numbers (cache variants)&lt;/td&gt;&lt;td&gt;4TB 256MB: WD40EFPX; 4TB 128MB: WD40EFZZ (both CMR, 5400 RPM class)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.westerndigital.com/products/internal-drives/wd-red-plus-sata-3-5-hdd?sku=WD40EFPX&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;westerndigital.com&lt;/a&gt; Model Numbers: 4TB, 256MB: WD40EFPX / 4TB, 128MB: WD40EFZZ&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD Red Plus 8TB (WD80EFPX) specs&lt;/td&gt;&lt;td&gt;WD80EFPX (8TB): CMR, workload rate 180 TB/year, 3-year limited warranty, MTBF 1,000,000 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://documents.westerndigital.com/content/dam/doc-library/en_us/assets/public/western-digital/product/internal-drives/wd-red-plus-hdd/data-sheet-western-digital-wd-red-plus-hdd.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;documents.westerndigital.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD Elements Portable 4TB (WDBU6Y0040BBK-WESN) specs&lt;/td&gt;&lt;td&gt;WDBU6Y0040BBK-WESN (WD Elements Portable 4TB): USB 3.2 Gen 1 / USB 3.0 / USB 2.0, 2-Year Limited Warranty, 0.51 lbs; recording technology left blank on the spec table&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.westerndigital.com/products/portable-drives/wd-elements-portable-usb-3-0-hdd?sku=WDBU6Y0040BBK-WESN&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;westerndigital.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung T7 Shield interface&lt;/td&gt;&lt;td&gt;USB 3.2 Gen.2 (10Gbps)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/sg/memory-storage/portable-ssd/t7-shield-2tb-black-external-storage-nvme-1050-mbs-mu-pe2t0s-ww/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Seagate IronWolf 4TB (ST4000VN006) recording technology&lt;/td&gt;&lt;td&gt;CMR&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.seagate.com/jp/ja/products/cmr-smr-list/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;seagate.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Seagate IronWolf annual workload rating&lt;/td&gt;&lt;td&gt;180 TB/year&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.seagate.com/jp/ja/products/nas-drives/ironwolf-hard-drive/?sku=ST4000VN006&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;seagate.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Seagate IronWolf warranty length (Japan page)&lt;/td&gt;&lt;td&gt;3 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.seagate.com/jp/ja/products/nas-drives/ironwolf-hard-drive/?sku=ST4000VN006&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;seagate.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Seagate IronWolf MTBF&lt;/td&gt;&lt;td&gt;1,000,000 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.seagate.com/www-content/product-content/ironwolf/en-us/docs/100807039m.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;seagate.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Seagate BarraCuda 4TB (ST4000DM004) recording technology&lt;/td&gt;&lt;td&gt;SMR&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.seagate.com/jp/ja/products/cmr-smr-list/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;seagate.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Seagate BarraCuda annual workload rating&lt;/td&gt;&lt;td&gt;55 TB/year&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.seagate.com/www-content/product-content/barracuda-fam/barracuda-new/en-us/docs/100805918n.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;seagate.com&lt;/a&gt; Rated workload: Average annualized workload rating: 55 TB/year&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Seagate capacities that use SMR (BarraCuda, FireCuda)&lt;/td&gt;&lt;td&gt;3.5-inch BarraCuda: SMR 4TB and 8TB (CMR 12/16/20/24TB); 2.5-inch BarraCuda: SMR 2TB and 4TB; 2.5-inch FireCuda: SMR 1TB and 2TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.seagate.com/jp/ja/products/cmr-smr-list/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;seagate.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Seagate largest CMR HDD (Exos, HAMR)&lt;/td&gt;&lt;td&gt;32 TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.seagate.com/jp/ja/products/cmr-smr-list/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;seagate.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Seagate Expansion Desktop product weight&lt;/td&gt;&lt;td&gt;1.176 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.seagate.com/www-content/datasheets/pdfs/expansion-desktop-3-5-DS2063-2102-WW-en_US.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;seagate.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Seagate Expansion Desktop 4TB warranty by region&lt;/td&gt;&lt;td&gt;Limited warranty by region: AMER 1 year, EMEA 2 years, APAC 3 years (model STKP4000400)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.seagate.com/www-content/datasheets/pdfs/expansion-desktop-3-5-DS2063-2102-WW-en_US.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;seagate.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Buffalo HD-AD4U3 weight (approx.)&lt;/td&gt;&lt;td&gt;900 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/hd-ad4u3.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Buffalo HD-AD4U3 warranty length&lt;/td&gt;&lt;td&gt;1 year&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/hd-ad4u3.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Buffalo HD-AD4U3 TV recording support listing&lt;/td&gt;&lt;td&gt;Buffalo official page (HD-AD4U3, Japan-only model): works with compatible TVs and recorders for recording and playback; recording technology (CMR/SMR) is not stated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/hd-ad4u3.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 M.2 SSD recommended sequential read&lt;/td&gt;&lt;td&gt;5500 MB/s&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.playstation.com/en-us/support/hardware/ps5-install-m2-ssd/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;playstation.com&lt;/a&gt; Sequential read speed 5,500MB/s or faster is recommended&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 M.2 SSD supported capacity&lt;/td&gt;&lt;td&gt;250GB to 8TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.playstation.com/en-us/support/hardware/ps5-install-m2-ssd/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;playstation.com&lt;/a&gt; Capacity 250 GB - 8 TB&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 M.2 SSD requirements (interface, size, cooling)&lt;/td&gt;&lt;td&gt;PCI-Express Gen4x4 M.2 NVMe SSD (Key M); sizes 2230, 2242, 2260, 2280, 22110; heatsink or equivalent cooling required; total size up to 25mm wide and 11.25mm high&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.playstation.com/en-us/support/hardware/ps5-install-m2-ssd/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;playstation.com&lt;/a&gt; PCI-Express Gen4x4 supported M.2 NVMe SSD (Key M)、effective heat dissipation wit&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 games on USB extended storage&lt;/td&gt;&lt;td&gt;PS5 games stored on USB extended storage must be copied back to console storage or M.2 SSD storage to be played; PS5 games can be played directly from an M.2 SSD&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.playstation.com/en-us/support/hardware/ps5-install-m2-ssd/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;playstation.com&lt;/a&gt; USB Extended Storage vs M.2 SSD Storage&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Xbox external USB storage and games&lt;/td&gt;&lt;td&gt;External USB 3.1 HDD/SSD: play Xbox One games including backward-compatible Xbox 360 and original Xbox games directly from it; Xbox Series X／S optimized games can be stored on USB 3.1 storage for quick transfer but not played from it (comparison table: Plays games optimized for Xbox Series X／S - No); they need the internal SSD or the Storage Expansion Card&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://news.xbox.com/en-us/2020/09/24/xbox-series-x-and-xbox-series-s-custom-storage-solution-primer/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;news.xbox.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 11 minimum storage&lt;/td&gt;&lt;td&gt;64 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt; Storage: 64 GB or larger storage device&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DirectStorage requirement&lt;/td&gt;&lt;td&gt;DirectStorage requires an NVMe SSD to store and run games that use the Standard NVM Express Controller driver and a DirectX12 GPU with Shader Model 6.0 support&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Starfield required free space (SSD required)&lt;/td&gt;&lt;td&gt;125 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://store.steampowered.com/app/1716740/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;store.steampowered.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Baldur’s Gate 3 required free space (SSD required)&lt;/td&gt;&lt;td&gt;150 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://store.steampowered.com/app/1086940/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;store.steampowered.com&lt;/a&gt; Storage 150 GB available space, Additional Notes: SSD required&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cyberpunk 2077 required free space (SSD required)&lt;/td&gt;&lt;td&gt;70 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://store.steampowered.com/app/1091500/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;store.steampowered.com&lt;/a&gt; Storage 70 GB available space, Additional Notes: SSD required&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Monster Hunter Wilds required free space (SSD required)&lt;/td&gt;&lt;td&gt;75 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://store.steampowered.com/app/2246340/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;store.steampowered.com&lt;/a&gt; Storage 75 GB available space, Additional Notes: SSD required&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hogwarts Legacy required free space (HDD supported at minimum)&lt;/td&gt;&lt;td&gt;85 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://store.steampowered.com/app/990080/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;store.steampowered.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;How capacity is labeled (1 GB = 1 billion bytes)&lt;/td&gt;&lt;td&gt;1GB = 1,000,000,000 bytes and 1TB = 1,000,000,000,000 bytes on the label; the capacity the OS shows is less&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/memory-storage/nvme-ssd/990-pro-pcie-4-0-nvme-ssd-1tb-sku-mz-v9p2t0b-am/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Capacity: 2,000GB (1GB=1 Billion byte by IDEMA) * Actual usable capacity may be&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Unpowered SSD retention (Dell article citing JEDEC)&lt;/td&gt;&lt;td&gt;Dell’s support article, citing JEDEC JESD218/JESD219, says SSD/NVMe drives must retain data for a minimum of three months powered off at the maximum rated endurance, stored at no more than 40C; Dell advises powering drives that hold user data about every 2.5 months for at least 3 weeks&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/support/kbdoc/en-ca/000198930/ssd-data-retention-considerations-when-powering-off-systems-for-a-prolonged-duration&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Crucial consumer business exit announcement&lt;/td&gt;&lt;td&gt;Micron announced on 2025-12-03 that it will exit the Crucial consumer business; Crucial consumer products ship through the consumer channel until the end of fiscal Q2 (February 2026), with warranty service and support continuing&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://investors.micron.com/news/press-release/2025/Micron-Announces-Exit-from-Crucial-Consumer-Business-12-03-2025/default.aspx&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;investors.micron.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;HDD or SSD? (use, capacity and how long it lasts): quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;





































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;OS and apps, 250GB, 20GB&lt;/td&gt;&lt;td&gt;✓ NVMe M.2 SSD, 500GB. A PCIe 4.0 NVMe SSD reads at up to 7,450 MB/s (Samsung 990 PRO 2TB), far past the SATA ceiling of 600 MB/s. Windows 11 needs at least 64 GB, and updates can need more over time. Capacity needed: 250GB of data (as Windows shows it), converted to label units, ÷ (1 − 20% free) = 336GB → 500GB. A 500GB label shows up as about 465 GB when counted in units of 1024³ bytes. A 2TB SSD rated for 1,200 TBW, written at 20 GB a day, reaches its TBW in about 164.3 years. The 5-year warranty runs out before the TBW does (it ends at the years or the TBW, whichever comes first). TBW is the total writing the maker’s warranty covers, not the point where the drive dies. Smaller drives have lower TBW (the Samsung 870 EVO is rated 600 TBW at 1TB and 300 TBW at 500GB). The years above use the 2TB figure, so redo it with the TBW of the size you buy&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/?hdd-ssd-calc-use=os&amp;amp;hdd-ssd-calc-data=250&amp;amp;hdd-ssd-calc-daily=20#hdd-ssd-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PC games, 500GB, 50GB&lt;/td&gt;&lt;td&gt;✓ NVMe M.2 SSD, 1TB. A PCIe 4.0 NVMe SSD reads at up to 7,450 MB/s (Samsung 990 PRO 2TB), far past the SATA ceiling of 600 MB/s. Some big games list an SSD as required on Steam (Starfield, Baldur’s Gate 3, Cyberpunk 2077 and others). Capacity needed: 500GB of data (as Windows shows it), converted to label units, ÷ (1 − 20% free) = 672GB → 1TB. A 1TB label shows up as about 931 GB when counted in units of 1024³ bytes. A 2TB SSD rated for 1,200 TBW, written at 50 GB a day, reaches its TBW in about 65.7 years. The 5-year warranty runs out before the TBW does (it ends at the years or the TBW, whichever comes first). TBW is the total writing the maker’s warranty covers, not the point where the drive dies. Smaller drives have lower TBW (the Samsung 870 EVO is rated 600 TBW at 1TB and 300 TBW at 500GB). The years above use the 2TB figure, so redo it with the TBW of the size you buy&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/?hdd-ssd-calc-use=game&amp;amp;hdd-ssd-calc-data=500&amp;amp;hdd-ssd-calc-daily=50#hdd-ssd-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PC games, 1TB, 200GB&lt;/td&gt;&lt;td&gt;✓ NVMe M.2 SSD, 2TB. A PCIe 4.0 NVMe SSD reads at up to 7,450 MB/s (Samsung 990 PRO 2TB), far past the SATA ceiling of 600 MB/s. Some big games list an SSD as required on Steam (Starfield, Baldur’s Gate 3, Cyberpunk 2077 and others). Capacity needed: 1TB of data (as Windows shows it), converted to label units, ÷ (1 − 20% free) = 1.343TB → 2TB. A 2TB label shows up as about 1862 GB when counted in units of 1024³ bytes. A 2TB SSD rated for 1,200 TBW, written at 200 GB a day, reaches its TBW in about 16.4 years. The 5-year warranty runs out before the TBW does (it ends at the years or the TBW, whichever comes first). TBW is the total writing the maker’s warranty covers, not the point where the drive dies&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/?hdd-ssd-calc-use=game&amp;amp;hdd-ssd-calc-data=1000&amp;amp;hdd-ssd-calc-daily=200#hdd-ssd-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PC games, 1.5TB, 50GB&lt;/td&gt;&lt;td&gt;✓ NVMe M.2 SSD, 4TB. A PCIe 4.0 NVMe SSD reads at up to 7,450 MB/s (Samsung 990 PRO 2TB), far past the SATA ceiling of 600 MB/s. Some big games list an SSD as required on Steam (Starfield, Baldur’s Gate 3, Cyberpunk 2077 and others). Capacity needed: 1.5TB of data (as Windows shows it), converted to label units, ÷ (1 − 20% free) = 2.014TB → 4TB. A 4TB label shows up as about 3725 GB when counted in units of 1024³ bytes. A 2TB SSD rated for 1,200 TBW, written at 50 GB a day, reaches its TBW in about 65.7 years. The 5-year warranty runs out before the TBW does (it ends at the years or the TBW, whichever comes first). TBW is the total writing the maker’s warranty covers, not the point where the drive dies&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/?hdd-ssd-calc-use=game&amp;amp;hdd-ssd-calc-data=1500&amp;amp;hdd-ssd-calc-daily=50#hdd-ssd-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 expansion, 1TB&lt;/td&gt;&lt;td&gt;✓ PCIe Gen4x4 M.2 SSD with heatsink, 2TB. The PS5 takes a PCIe Gen4x4 M.2 NVMe SSD, with 5,500 MB/s or faster read recommended. It needs a heatsink or similar cooling, and the SSD with its heatsink can be at most 25 mm wide and 11.25 mm high. The PS5 supports 250GB to 8TB. PS5 games moved to USB storage have to be copied back to the console or an M.2 SSD before you can play them. Capacity needed: 1TB of data (as Windows shows it), converted to label units, ÷ (1 − 20% free) = 1.343TB → 2TB. A 2TB label shows up as about 1862 GB when counted in units of 1024³ bytes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/?hdd-ssd-calc-use=ps5&amp;amp;hdd-ssd-calc-data=1000#hdd-ssd-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 expansion, 1.5TB&lt;/td&gt;&lt;td&gt;✓ PCIe Gen4x4 M.2 SSD with heatsink, 4TB. The PS5 takes a PCIe Gen4x4 M.2 NVMe SSD, with 5,500 MB/s or faster read recommended. It needs a heatsink or similar cooling, and the SSD with its heatsink can be at most 25 mm wide and 11.25 mm high. The PS5 supports 250GB to 8TB. PS5 games moved to USB storage have to be copied back to the console or an M.2 SSD before you can play them. Capacity needed: 1.5TB of data (as Windows shows it), converted to label units, ÷ (1 − 20% free) = 2.014TB → 4TB. A 4TB label shows up as about 3725 GB when counted in units of 1024³ bytes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/?hdd-ssd-calc-use=ps5&amp;amp;hdd-ssd-calc-data=1500#hdd-ssd-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Older PC upgrade, 250GB, 10GB&lt;/td&gt;&lt;td&gt;✓ 2.5-inch SATA SSD, 500GB. First check the PC’s spec sheet for the supported interface (SATA or NVMe/PCIe) and size (2.5-inch, or the M.2 length). If it lists a 2.5-inch SATA drive, a SATA SSD tops out at the SATA ceiling of 600 MB/s, and it works on older SATA 3Gb/s ports too. Capacity needed: 250GB of data (as Windows shows it), converted to label units, ÷ (1 − 20% free) = 336GB → 500GB. A 500GB label shows up as about 465 GB when counted in units of 1024³ bytes. A 2.5-inch SATA Samsung 870 EVO 500GB (300 TBW), written at 10 GB a day, reaches its TBW in about 82.1 years. The 5-year warranty runs out before the TBW does (it ends at the years or the TBW, whichever comes first). TBW is the total writing the maker’s warranty covers, not the point where the drive dies&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/?hdd-ssd-calc-use=oldpc&amp;amp;hdd-ssd-calc-data=250&amp;amp;hdd-ssd-calc-daily=10#hdd-ssd-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Older PC upgrade, 750GB, 50GB&lt;/td&gt;&lt;td&gt;✓ 2.5-inch SATA SSD, 2TB. First check the PC’s spec sheet for the supported interface (SATA or NVMe/PCIe) and size (2.5-inch, or the M.2 length). If it lists a 2.5-inch SATA drive, a SATA SSD tops out at the SATA ceiling of 600 MB/s, and it works on older SATA 3Gb/s ports too. Capacity needed: 750GB of data (as Windows shows it), converted to label units, ÷ (1 − 20% free) = 1.007TB → 2TB. A 2TB label shows up as about 1862 GB when counted in units of 1024³ bytes. A 2.5-inch SATA Samsung 870 EVO 2TB (1,200 TBW), written at 50 GB a day, reaches its TBW in about 65.7 years. The 5-year warranty runs out before the TBW does (it ends at the years or the TBW, whichever comes first). TBW is the total writing the maker’s warranty covers, not the point where the drive dies&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/?hdd-ssd-calc-use=oldpc&amp;amp;hdd-ssd-calc-data=750&amp;amp;hdd-ssd-calc-daily=50#hdd-ssd-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photos and video, 2TB, 50GB&lt;/td&gt;&lt;td&gt;✓ Hard drive (CMR for a NAS), 4TB. Hard drives suit large piles of photos and video. For a NAS that reads and writes all the time, pick a NAS drive rated for 180 TB/year. In Seagate’s list, the NAS IronWolf line is CMR at every size, while SMR shows up in desktop BarraCuda drives such as the 4TB and 8TB. Capacity needed: 2TB of data (as Windows shows it), converted to label units, ÷ (1 − 20% free) = 2.685TB → 4TB. A 4TB label shows up as about 3725 GB when counted in units of 1024³ bytes. 50 GB read and written a day is 18.25 TB a year. That’s inside the 180 TB/year workload rating of NAS CMR drives (WD Red Plus, IronWolf)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/?hdd-ssd-calc-use=media&amp;amp;hdd-ssd-calc-data=2000&amp;amp;hdd-ssd-calc-daily=50#hdd-ssd-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photos and video, 2.5TB, 400GB&lt;/td&gt;&lt;td&gt;✓ Hard drive (CMR for a NAS), 4TB. Hard drives suit large piles of photos and video. For a NAS that reads and writes all the time, pick a NAS drive rated for 180 TB/year. In Seagate’s list, the NAS IronWolf line is CMR at every size, while SMR shows up in desktop BarraCuda drives such as the 4TB and 8TB. Capacity needed: 2.5TB of data (as Windows shows it), converted to label units, ÷ (1 − 20% free) = 3.356TB → 4TB. A 4TB label shows up as about 3725 GB when counted in units of 1024³ bytes. 400 GB read and written a day is 146 TB a year. That’s inside the 180 TB/year workload rating of NAS CMR drives (WD Red Plus, IronWolf). It’s over the 55 TB/year rating of the SMR BarraCuda, so pick a NAS drive with a higher workload rating&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/?hdd-ssd-calc-use=media&amp;amp;hdd-ssd-calc-data=2500&amp;amp;hdd-ssd-calc-daily=400#hdd-ssd-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Backups, 1TB&lt;/td&gt;&lt;td&gt;✓ External hard drive, 2TB. None of the external hard drives checked state their recording technology. For a NAS that reads and writes all the time, use an internal NAS drive rated for 180 TB/year. Per JEDEC’s requirement (as cited by Dell), an SSD written to its rated limit only has to hold data unpowered for 3 months, stored at up to 40°C. If you leave an SSD sitting, keep a copy on another drive too. Capacity needed: 1TB of data (as Windows shows it), converted to label units, ÷ (1 − 20% free) = 1.343TB → 2TB. A 2TB label shows up as about 1862 GB when counted in units of 1024³ bytes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/?hdd-ssd-calc-use=backup&amp;amp;hdd-ssd-calc-data=1000#hdd-ssd-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Carry around, 500GB&lt;/td&gt;&lt;td&gt;✓ Portable SSD, 1TB. The Samsung T7 Shield is a USB 3.2 Gen 2 portable SSD. It weighs 98 g and passed a 3 m drop in Samsung’s own test. Capacity needed: 500GB of data (as Windows shows it), converted to label units, ÷ (1 − 20% free) = 672GB → 1TB. A 1TB label shows up as about 931 GB when counted in units of 1024³ bytes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-21-hdd-ssd-difference/?hdd-ssd-calc-use=portable&amp;amp;hdd-ssd-calc-data=500#hdd-ssd-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>ssd</category><category>hdd</category><category>nvme</category></item><item><title>HDMI vs DisplayPort vs USB-C: Which Port Do You Need?</title><link>https://aulvem.com/blog/2021-04-17-video-terminal/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-17-video-terminal/</guid><description>Find out whether HDMI, DisplayPort or USB-C is enough for your resolution and refresh rate, worked out by data rate. In this calculation, HDMI 2.0 and DisplayPort 1.4 have enough bandwidth for 1080p at 60Hz. For USB-C, first check that your device supports DisplayPort Alt Mode.</description><pubDate>Sat, 17 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In this calculation, HDMI 2.0 and DisplayPort 1.4 have enough bandwidth for 1080p at 60Hz. For USB-C, first check that your device supports DisplayPort Alt Mode.&lt;/p&gt;
&lt;p&gt;For 4K at 144Hz in 10-bit HDR, HDMI 2.1 and DisplayPort 2.1 at UHBR13.5 or UHBR20 cover the full calculated range uncompressed. DisplayPort 1.4 needs DSC (compression that’s visually lossless).&lt;/p&gt;
&lt;p&gt;The numbers come from standards bodies’ documents as of October 2026. Color is not subsampled (4:4:4, meaning no color detail is dropped), and no hardware was tested.&lt;/p&gt;
&lt;h2 id=&quot;which-port-fits-each-resolution-and-refresh-rate&quot;&gt;Which port fits each resolution and refresh rate&lt;/h2&gt;
&lt;p&gt;In this calculation, for 4K at 60Hz in 10-bit HDR, HDMI 2.1 and DisplayPort 1.4 have enough bandwidth.&lt;/p&gt;
&lt;p&gt;To check your setup:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Look up the video ports on your device and your monitor in their spec sheets&lt;/li&gt;
&lt;li&gt;Decide on a resolution and refresh rate. On a console, look in the display menu for a setting such as “4K at 120Hz”&lt;/li&gt;
&lt;li&gt;Find your row in the table below, or enter it in the calculator&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The table compares each port’s maximum bandwidth. Check which resolutions and refresh rates your device and monitor actually support.&lt;/p&gt;
&lt;p&gt;The table has no UHBR10 column. In this calculation (4:4:4 color), DisplayPort 2.1 at UHBR10 carries 4K at 144Hz in 8-bit uncompressed. In 10-bit HDR it depends on the signal: some fit and some don’t.&lt;/p&gt;
&lt;p&gt;Assumptions: uncompressed data rates, as a range between PC and TV signal timings, with full 4:4:4 color and HDR counted as 10-bit. HDMI 2.1 at 4K 120Hz and up and 8K follow HDMI.org’s video table&lt;/p&gt;































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Video format&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Video data needed&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;HDMI 2.0&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;HDMI 2.1&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;DisplayPort 1.4&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;DisplayPort 2.1 UHBR13.5&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;DisplayPort 2.1 UHBR20&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;1080p at 60Hz, 8-bit&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3.19–3.57 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;1440p at 144Hz, 8-bit&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14.07–14.2 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Uncompressed (borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;1440p at 240Hz, 10-bit (HDR)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;30.78 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✕ Not enough&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Needs DSC&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4K at 60Hz, 8-bit&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;12.54–14.26 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Uncompressed (borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4K at 60Hz, 10-bit (HDR)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;15.67–17.82 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✕ Not enough&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4K at 120Hz, 10-bit (HDR)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;32.24–35.64 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✕ Not enough&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Needs DSC&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4K at 144Hz, 10-bit (HDR)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;37.5–39.19 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✕ Not enough&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Needs DSC&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4K at 240Hz, 10-bit (HDR)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;68.56 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✕ Not enough&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Needs DSC&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Needs DSC&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Needs DSC&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;8K at 60Hz, 10-bit (HDR)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;62.05–71.28 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✕ Not enough&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Needs DSC&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Needs DSC&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Needs DSC&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Uncompressed&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;“Uncompressed” means the video goes through as is&lt;/li&gt;
&lt;li&gt;“Uncompressed (borderline)” means less than 3% of the port’s capacity is left over&lt;/li&gt;
&lt;li&gt;“Needs DSC” means that in this calculation the video fits only if it is compressed with DSC, which is nearly lossless. Both the sending and the receiving device must support it&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;check-your-own-setup-with-the-calculator&quot;&gt;Check your own setup with the calculator&lt;/h3&gt;
&lt;p&gt;Pick the ports, resolution, refresh rate and color depth from steps 1 and 2. It shows the verdict and the cable.&lt;/p&gt;
&lt;section id=&quot;video-port-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;video-port-calc-title&quot;&gt; &lt;h3 id=&quot;video-port-calc-title&quot;&gt;Video port and cable check&lt;/h3&gt; &lt;p&gt;Pick your device and its port, the monitor&amp;#39;s port, and a resolution, refresh rate and color depth to see which port and version carry it, whether it fits uncompressed, and which cable or adapter you need, plus a certified cable or adapter that fits.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;cm_dp80_1m&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters DP80 Cable, 3.3 ft&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71ufUDQQRwL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters DP80 Cable, 3.3 ft&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CHK5NS87?q=Cable+Matters+DP80+Cable%2C+3.3+ft&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters DP80 Cable, 3.3 ft on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;Cable Matters 102095（Product ID）&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters DP80 Cable, 3.3 ft&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71ufUDQQRwL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters DP80 Cable, 3.3 ft&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CHK5NS87?q=Cable+Matters+DP80+Cable%2C+3.3+ft&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters DP80 Cable, 3.3 ft on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;cm_hdmi_dp_4k30&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters HDMI to DisplayPort Adapter (active, one-way, 4K at 30Hz)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/614qXy2Lh2L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters HDMI to DisplayPort Adapter (active, one-way, 4K at 30Hz)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B00JQORLCG?q=Cable+Matters+HDMI+to+DisplayPort+Adapter+%28active%2C+one-way%2C+4K+at+30Hz%29&amp;amp;us=B00JQORLCG&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters HDMI to DisplayPort Adapter (active, one-way, 4K at 30Hz) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;Cable Matters 103069&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters HDMI to DisplayPort Adapter (active, one-way, 4K at 30Hz)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/614qXy2Lh2L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters HDMI to DisplayPort Adapter (active, one-way, 4K at 30Hz)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B00JQORLCG?q=Cable+Matters+HDMI+to+DisplayPort+Adapter+%28active%2C+one-way%2C+4K+at+30Hz%29&amp;amp;us=B00JQORLCG&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters HDMI to DisplayPort Adapter (active, one-way, 4K at 30Hz) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;cm_dp40_2m&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters DP40 Cable, 6.6 ft&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/418S20eO01L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters DP40 Cable, 6.6 ft&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C15G6D81?q=Cable+Matters+DP40+Cable%2C+6.6+ft&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters DP40 Cable, 6.6 ft on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;Cable Matters 102065（Amazon JP の型番）&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters DP40 Cable, 6.6 ft&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/418S20eO01L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters DP40 Cable, 6.6 ft&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C15G6D81?q=Cable+Matters+DP40+Cable%2C+6.6+ft&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters DP40 Cable, 6.6 ft on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;cm_tb5_1m&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters Intel-certified Thunderbolt 5 Cable, 80Gbps, 3.3 ft&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61LvjtEOi4L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters Intel-certified Thunderbolt 5 Cable, 80Gbps, 3.3 ft&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CP8K1C59?q=Cable+Matters+Intel-certified+Thunderbolt+5+Cable%2C+80Gbps%2C+3.3+ft&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters Intel-certified Thunderbolt 5 Cable, 80Gbps, 3.3 ft on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;Cable Matters 107062&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters Intel-certified Thunderbolt 5 Cable, 80Gbps, 3.3 ft&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61LvjtEOi4L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters Intel-certified Thunderbolt 5 Cable, 80Gbps, 3.3 ft&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CP8K1C59?q=Cable+Matters+Intel-certified+Thunderbolt+5+Cable%2C+80Gbps%2C+3.3+ft&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters Intel-certified Thunderbolt 5 Cable, 80Gbps, 3.3 ft on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;cm_usbc_hdmi_2m&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/41CftKgIreL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CT6CK72N?q=Cable+Matters+USB-C+to+HDMI+2.1+Cable%2C+one-way%2C+6+ft&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;Cable Matters 201392（Amazon JP の型番 201392-BLK-6）&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/41CftKgIreL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CT6CK72N?q=Cable+Matters+USB-C+to+HDMI+2.1+Cable%2C+one-way%2C+6+ft&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;res&quot;:{&quot;1080p&quot;:{&quot;w&quot;:1920,&quot;h&quot;:1080},&quot;1440p&quot;:{&quot;w&quot;:2560,&quot;h&quot;:1440},&quot;4k&quot;:{&quot;w&quot;:3840,&quot;h&quot;:2160},&quot;8k&quot;:{&quot;w&quot;:7680,&quot;h&quot;:4320}},&quot;resName&quot;:{&quot;1080p&quot;:{&quot;ja&quot;:&quot;フルHD（1080p）&quot;,&quot;en&quot;:&quot;1080p&quot;},&quot;1440p&quot;:{&quot;ja&quot;:&quot;WQHD（1440p）&quot;,&quot;en&quot;:&quot;1440p&quot;},&quot;4k&quot;:{&quot;ja&quot;:&quot;4K&quot;,&quot;en&quot;:&quot;4K&quot;},&quot;8k&quot;:{&quot;ja&quot;:&quot;8K&quot;,&quot;en&quot;:&quot;8K&quot;}},&quot;timing&quot;:{&quot;hBlank&quot;:80,&quot;minVBlankUs&quot;:460,&quot;vSync&quot;:8,&quot;vBackMin&quot;:6,&quot;vFrontMin&quot;:1},&quot;known&quot;:{&quot;1080p@60&quot;:[148.5],&quot;1080p@120&quot;:[297],&quot;1440p@144&quot;:[591.31],&quot;4k@60&quot;:[533.25,594],&quot;4k@120&quot;:[1074.73,1188],&quot;4k@144&quot;:[1250],&quot;8k@60&quot;:[2376]},&quot;table&quot;:{&quot;4k@120&quot;:{&quot;8_444&quot;:&quot;uhs&quot;,&quot;8_420&quot;:&quot;uhs&quot;,&quot;10_444&quot;:&quot;uhs&quot;,&quot;10_420&quot;:&quot;uhs&quot;,&quot;12_444&quot;:&quot;uhs&quot;,&quot;12_420&quot;:&quot;uhs&quot;},&quot;4k@144&quot;:{&quot;8_444&quot;:&quot;uhs&quot;,&quot;8_420&quot;:&quot;uhs&quot;,&quot;10_444&quot;:&quot;uhs&quot;,&quot;10_420&quot;:&quot;uhs&quot;,&quot;12_444&quot;:&quot;dsc&quot;,&quot;12_420&quot;:&quot;uhs&quot;},&quot;4k@240&quot;:{&quot;8_444&quot;:&quot;dsc&quot;,&quot;8_420&quot;:&quot;uhs&quot;,&quot;10_444&quot;:&quot;dsc&quot;,&quot;10_420&quot;:&quot;uhs&quot;,&quot;12_444&quot;:&quot;dsc&quot;,&quot;12_420&quot;:&quot;uhs&quot;},&quot;8k@60&quot;:{&quot;8_444&quot;:&quot;dsc&quot;,&quot;8_420&quot;:&quot;uhs&quot;,&quot;10_444&quot;:&quot;dsc&quot;,&quot;10_420&quot;:&quot;uhs&quot;,&quot;12_444&quot;:&quot;dsc&quot;,&quot;12_420&quot;:&quot;uhs&quot;}},&quot;dscRatio&quot;:3,&quot;tightRatio&quot;:0.03,&quot;links&quot;:{&quot;hdmi20&quot;:{&quot;fam&quot;:&quot;hdmi&quot;,&quot;payload&quot;:14.4,&quot;rate&quot;:18,&quot;dsc&quot;:false,&quot;table&quot;:false,&quot;ja&quot;:&quot;HDMI 2.0&quot;,&quot;en&quot;:&quot;HDMI 2.0&quot;},&quot;hdmi21&quot;:{&quot;fam&quot;:&quot;hdmi&quot;,&quot;payload&quot;:42.660000000000004,&quot;rate&quot;:48,&quot;dsc&quot;:true,&quot;table&quot;:true,&quot;ja&quot;:&quot;HDMI 2.1&quot;,&quot;en&quot;:&quot;HDMI 2.1&quot;},&quot;dp14&quot;:{&quot;fam&quot;:&quot;dp&quot;,&quot;payload&quot;:25.92,&quot;rate&quot;:32.4,&quot;dsc&quot;:true,&quot;cable&quot;:&quot;dp40&quot;,&quot;ja&quot;:&quot;DisplayPort 1.4&quot;,&quot;en&quot;:&quot;DisplayPort 1.4&quot;},&quot;uhbr10&quot;:{&quot;fam&quot;:&quot;dp&quot;,&quot;payload&quot;:38.68,&quot;rate&quot;:40,&quot;dsc&quot;:true,&quot;cable&quot;:&quot;dp40&quot;,&quot;ja&quot;:&quot;DisplayPort 2.1（UHBR10）&quot;,&quot;en&quot;:&quot;DisplayPort 2.1 (UHBR10)&quot;},&quot;uhbr13&quot;:{&quot;fam&quot;:&quot;dp&quot;,&quot;payload&quot;:52.22,&quot;rate&quot;:54,&quot;dsc&quot;:true,&quot;cable&quot;:&quot;dp54&quot;,&quot;ja&quot;:&quot;DisplayPort 2.1（UHBR13.5）&quot;,&quot;en&quot;:&quot;DisplayPort 2.1 (UHBR13.5)&quot;},&quot;uhbr20&quot;:{&quot;fam&quot;:&quot;dp&quot;,&quot;payload&quot;:77.37,&quot;rate&quot;:80,&quot;dsc&quot;:true,&quot;cable&quot;:&quot;dp80&quot;,&quot;ja&quot;:&quot;DisplayPort 2.1（UHBR20）&quot;,&quot;en&quot;:&quot;DisplayPort 2.1 (UHBR20)&quot;}},&quot;ports&quot;:{&quot;hdmi20&quot;:{&quot;fam&quot;:&quot;hdmi&quot;,&quot;link&quot;:&quot;hdmi20&quot;,&quot;ja&quot;:&quot;HDMI 2.0&quot;,&quot;en&quot;:&quot;HDMI 2.0&quot;},&quot;hdmi21&quot;:{&quot;fam&quot;:&quot;hdmi&quot;,&quot;link&quot;:&quot;hdmi21&quot;,&quot;ja&quot;:&quot;HDMI 2.1&quot;,&quot;en&quot;:&quot;HDMI 2.1&quot;},&quot;dp14&quot;:{&quot;fam&quot;:&quot;dp&quot;,&quot;link&quot;:&quot;dp14&quot;,&quot;ja&quot;:&quot;DisplayPort 1.4&quot;,&quot;en&quot;:&quot;DisplayPort 1.4&quot;},&quot;uhbr10&quot;:{&quot;fam&quot;:&quot;dp&quot;,&quot;link&quot;:&quot;uhbr10&quot;,&quot;ja&quot;:&quot;DisplayPort 2.1（UHBR10）&quot;,&quot;en&quot;:&quot;DisplayPort 2.1 (UHBR10)&quot;},&quot;uhbr13&quot;:{&quot;fam&quot;:&quot;dp&quot;,&quot;link&quot;:&quot;uhbr13&quot;,&quot;ja&quot;:&quot;DisplayPort 2.1（UHBR13.5）&quot;,&quot;en&quot;:&quot;DisplayPort 2.1 (UHBR13.5)&quot;},&quot;uhbr20&quot;:{&quot;fam&quot;:&quot;dp&quot;,&quot;link&quot;:&quot;uhbr20&quot;,&quot;ja&quot;:&quot;DisplayPort 2.1（UHBR20）&quot;,&quot;en&quot;:&quot;DisplayPort 2.1 (UHBR20)&quot;},&quot;usbc_dp14&quot;:{&quot;fam&quot;:&quot;usbc&quot;,&quot;link&quot;:&quot;dp14&quot;,&quot;ja&quot;:&quot;USB-C（DP Alt Mode・DisplayPort 1.4）&quot;,&quot;en&quot;:&quot;USB-C (DP Alt Mode, DisplayPort 1.4)&quot;},&quot;usbc_uhbr20&quot;:{&quot;fam&quot;:&quot;usbc&quot;,&quot;link&quot;:&quot;uhbr20&quot;,&quot;ja&quot;:&quot;USB-C（DP Alt Mode・DisplayPort 2.1 UHBR20）&quot;,&quot;en&quot;:&quot;USB-C (DP Alt Mode, DisplayPort 2.1 UHBR20)&quot;},&quot;hdmi_sw2&quot;:{&quot;fam&quot;:&quot;hdmi&quot;,&quot;link&quot;:&quot;hdmi20&quot;,&quot;ja&quot;:&quot;HDMI（版の記載なし）&quot;,&quot;en&quot;:&quot;HDMI (version not stated)&quot;}},&quot;order&quot;:[&quot;hdmi20&quot;,&quot;hdmi21&quot;,&quot;dp14&quot;,&quot;uhbr10&quot;,&quot;uhbr13&quot;,&quot;uhbr20&quot;],&quot;hzOptions&quot;:{&quot;1080p&quot;:[60,120,144,240],&quot;1440p&quot;:[60,120,144,165,240],&quot;4k&quot;:[60,120,144,240],&quot;8k&quot;:[60]},&quot;devs&quot;:{&quot;desktop&quot;:{&quot;ja&quot;:&quot;デスクトップPC&quot;,&quot;en&quot;:&quot;Desktop PC&quot;,&quot;src&quot;:[&quot;dp14&quot;,&quot;uhbr13&quot;,&quot;uhbr20&quot;,&quot;uhbr10&quot;,&quot;hdmi21&quot;,&quot;hdmi20&quot;]},&quot;laptop&quot;:{&quot;ja&quot;:&quot;ノートPC&quot;,&quot;en&quot;:&quot;Laptop&quot;,&quot;src&quot;:[&quot;usbc_dp14&quot;,&quot;usbc_uhbr20&quot;,&quot;hdmi21&quot;,&quot;hdmi20&quot;]},&quot;console&quot;:{&quot;ja&quot;:&quot;ゲーム機&quot;,&quot;en&quot;:&quot;Game console&quot;,&quot;src&quot;:[]}},&quot;monPorts&quot;:[&quot;hdmi20&quot;,&quot;hdmi21&quot;,&quot;dp14&quot;,&quot;uhbr10&quot;,&quot;uhbr13&quot;,&quot;uhbr20&quot;],&quot;capLabel&quot;:{&quot;hdmi20&quot;:14.4,&quot;hdmi21&quot;:42.66,&quot;dp14&quot;:25.92,&quot;uhbr10&quot;:38.68,&quot;uhbr13&quot;:52.22,&quot;uhbr20&quot;:77.37},&quot;cell&quot;:{&quot;ok&quot;:{&quot;ja&quot;:&quot;○ 圧縮なし&quot;,&quot;en&quot;:&quot;✓ Uncompressed&quot;},&quot;tight&quot;:{&quot;ja&quot;:&quot;△ 圧縮なし（ぎりぎり）&quot;,&quot;en&quot;:&quot;△ Uncompressed (borderline)&quot;},&quot;cond&quot;:{&quot;ja&quot;:&quot;△ 信号しだい&quot;,&quot;en&quot;:&quot;△ Depends on the signal&quot;},&quot;dsc&quot;:{&quot;ja&quot;:&quot;△ DSC が要る&quot;,&quot;en&quot;:&quot;△ Needs DSC&quot;},&quot;ng&quot;:{&quot;ja&quot;:&quot;✕ 足りない&quot;,&quot;en&quot;:&quot;✕ Not enough&quot;}},&quot;consoles&quot;:{&quot;ps5&quot;:{&quot;res&quot;:&quot;4k&quot;,&quot;hz&quot;:120,&quot;src&quot;:&quot;hdmi21&quot;,&quot;ja&quot;:&quot;PS5（4K・120Hz）&quot;,&quot;en&quot;:&quot;PS5 (4K at 120Hz)&quot;},&quot;xsx&quot;:{&quot;res&quot;:&quot;4k&quot;,&quot;hz&quot;:120,&quot;src&quot;:&quot;hdmi21&quot;,&quot;ja&quot;:&quot;Xbox Series X（4K・120Hz）&quot;,&quot;en&quot;:&quot;Xbox Series X (4K at 120Hz)&quot;},&quot;xss&quot;:{&quot;res&quot;:&quot;1440p&quot;,&quot;hz&quot;:120,&quot;src&quot;:&quot;hdmi21&quot;,&quot;ja&quot;:&quot;Xbox Series S（1440p・120Hz）&quot;,&quot;en&quot;:&quot;Xbox Series S (1440p at 120Hz)&quot;},&quot;sw2_4k&quot;:{&quot;res&quot;:&quot;4k&quot;,&quot;hz&quot;:60,&quot;src&quot;:&quot;hdmi_sw2&quot;,&quot;ja&quot;:&quot;Switch 2（4K・60Hz）&quot;,&quot;en&quot;:&quot;Switch 2 (4K at 60Hz)&quot;},&quot;sw2_1440&quot;:{&quot;res&quot;:&quot;1440p&quot;,&quot;hz&quot;:120,&quot;src&quot;:&quot;hdmi_sw2&quot;,&quot;ja&quot;:&quot;Switch 2（1440p・120Hz）&quot;,&quot;en&quot;:&quot;Switch 2 (1440p at 120Hz)&quot;},&quot;sw2_1080&quot;:{&quot;res&quot;:&quot;1080p&quot;,&quot;hz&quot;:120,&quot;src&quot;:&quot;hdmi_sw2&quot;,&quot;ja&quot;:&quot;Switch 2（1080p・120Hz）&quot;,&quot;en&quot;:&quot;Switch 2 (1080p at 120Hz)&quot;}},&quot;slotIds&quot;:{&quot;dp40_2m&quot;:[&quot;cm_dp40_2m&quot;],&quot;dp80_1m&quot;:[&quot;cm_dp80_1m&quot;],&quot;hdmi_to_dp&quot;:[&quot;cm_hdmi_dp_4k30&quot;],&quot;usbc_to_hdmi&quot;:[&quot;cm_usbc_hdmi_2m&quot;],&quot;hdmi_uhs&quot;:[&quot;elecom_uhs_2m&quot;,&quot;anker_uhs&quot;],&quot;thunderbolt5_1m&quot;:[&quot;cm_tb5_1m&quot;]},&quot;adapterFormats&quot;:{&quot;cm_hdmi_dp_4k30&quot;:{&quot;4k&quot;:[30],&quot;1440p&quot;:[60],&quot;1080p&quot;:[60]}},&quot;pickSpec&quot;:{&quot;cm_dp40_2m&quot;:{&quot;ja&quot;:[&quot;VESA DP40 認証・40Gbps&quot;,&quot;長さ 2m&quot;],&quot;en&quot;:[&quot;VESA DP40 certified, 40 Gbps&quot;,&quot;2 m (7 ft)&quot;]},&quot;cm_dp80_1m&quot;:{&quot;ja&quot;:[&quot;VESA DP80 認証・80Gbps&quot;,&quot;長さ 1m&quot;],&quot;en&quot;:[&quot;VESA DP80 certified, 80 Gbps&quot;,&quot;1 m (3 ft)&quot;]},&quot;cm_hdmi_dp_4k30&quot;:{&quot;ja&quot;:[&quot;HDMI→DP・能動式・単方向&quot;],&quot;en&quot;:[&quot;HDMI to DP, active, one way&quot;]},&quot;cm_usbc_hdmi_2m&quot;:{&quot;ja&quot;:[&quot;USB-C→HDMI・4K・60Hz&quot;,&quot;長さ 1.8m&quot;],&quot;en&quot;:[&quot;USB-C to HDMI, 4K at 60Hz&quot;,&quot;1.8 m (6 ft)&quot;]},&quot;elecom_uhs_2m&quot;:{&quot;ja&quot;:[&quot;Ultra High Speed・48Gbps&quot;,&quot;長さ 2m&quot;],&quot;en&quot;:[&quot;Ultra High Speed, 48 Gbps&quot;,&quot;2 m (7 ft)&quot;]},&quot;anker_uhs&quot;:{&quot;ja&quot;:[&quot;Ultra High Speed・48Gbps&quot;,&quot;長さ 1.8m&quot;],&quot;en&quot;:[&quot;Ultra High Speed, 48 Gbps&quot;,&quot;1.8 m (6 ft)&quot;]},&quot;cm_tb5_1m&quot;:{&quot;ja&quot;:[&quot;Thunderbolt 5・80Gbps&quot;,&quot;長さ 1m&quot;],&quot;en&quot;:[&quot;Thunderbolt 5, 80 Gbps&quot;,&quot;1 m (3 ft)&quot;]}},&quot;buy&quot;:{&quot;cm_dp80_1m&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Cable Matters DP80 ケーブル 1m&quot;,&quot;en&quot;:&quot;Cable Matters DP80 Cable, 3.3 ft&quot;,&quot;jp&quot;:&quot;B0CHK5NS87&quot;,&quot;us&quot;:&quot;B0CHK5NS87&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CHK5NS87&quot;,&quot;title&quot;:&quot;Cable Matters DP80 ケーブル 1m&quot;,&quot;searchQuery&quot;:&quot;Cable Matters DP80 ケーブル 1m&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ufUDQQRwL._AC_SL320_.jpg&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0CHK5NS87&quot;,&quot;title&quot;:&quot;Cable Matters DP80 Cable, 3.3 ft&quot;,&quot;searchQuery&quot;:&quot;Cable Matters DP80 Cable, 3.3 ft&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ufUDQQRwL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:2,&quot;rank_us&quot;:1},&quot;Cable Matters 102095（Product ID）&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Cable Matters DP80 ケーブル 1m&quot;,&quot;en&quot;:&quot;Cable Matters DP80 Cable, 3.3 ft&quot;,&quot;jp&quot;:&quot;B0CHK5NS87&quot;,&quot;us&quot;:&quot;B0CHK5NS87&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CHK5NS87&quot;,&quot;title&quot;:&quot;Cable Matters DP80 ケーブル 1m&quot;,&quot;searchQuery&quot;:&quot;Cable Matters DP80 ケーブル 1m&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ufUDQQRwL._AC_SL320_.jpg&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0CHK5NS87&quot;,&quot;title&quot;:&quot;Cable Matters DP80 Cable, 3.3 ft&quot;,&quot;searchQuery&quot;:&quot;Cable Matters DP80 Cable, 3.3 ft&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ufUDQQRwL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:2,&quot;rank_us&quot;:1},&quot;cm_hdmi_dp_4k30&quot;:{&quot;type&quot;:&quot;adapter&quot;,&quot;ja&quot;:&quot;Cable Matters HDMI → DisplayPort 変換アダプター（アクティブ・単方向・4K@30Hz）&quot;,&quot;en&quot;:&quot;Cable Matters HDMI to DisplayPort Adapter (active, one-way, 4K at 30Hz)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B00JQORLCG&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B00JQORLCG&quot;,&quot;asinUS&quot;:&quot;B00JQORLCG&quot;,&quot;title&quot;:&quot;Cable Matters HDMI to DisplayPort Adapter (active, one-way, 4K at 30Hz)&quot;,&quot;searchQuery&quot;:&quot;Cable Matters HDMI to DisplayPort Adapter (active, one-way, 4K at 30Hz)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/614qXy2Lh2L._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:4},&quot;Cable Matters 103069&quot;:{&quot;type&quot;:&quot;adapter&quot;,&quot;ja&quot;:&quot;Cable Matters HDMI → DisplayPort 変換アダプター（アクティブ・単方向・4K@30Hz）&quot;,&quot;en&quot;:&quot;Cable Matters HDMI to DisplayPort Adapter (active, one-way, 4K at 30Hz)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B00JQORLCG&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B00JQORLCG&quot;,&quot;asinUS&quot;:&quot;B00JQORLCG&quot;,&quot;title&quot;:&quot;Cable Matters HDMI to DisplayPort Adapter (active, one-way, 4K at 30Hz)&quot;,&quot;searchQuery&quot;:&quot;Cable Matters HDMI to DisplayPort Adapter (active, one-way, 4K at 30Hz)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/614qXy2Lh2L._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:4},&quot;cm_dp40_2m&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Cable Matters DP40 ケーブル 2m&quot;,&quot;en&quot;:&quot;Cable Matters DP40 Cable, 6.6 ft&quot;,&quot;jp&quot;:&quot;B0C15G6D81&quot;,&quot;us&quot;:&quot;B0C15G6D81&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0C15G6D81&quot;,&quot;title&quot;:&quot;Cable Matters DP40 ケーブル 2m&quot;,&quot;searchQuery&quot;:&quot;Cable Matters DP40 ケーブル 2m&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71M2QCu8k6L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;0810115182047&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0C15G6D81&quot;,&quot;title&quot;:&quot;Cable Matters DP40 Cable, 6.6 ft&quot;,&quot;searchQuery&quot;:&quot;Cable Matters DP40 Cable, 6.6 ft&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/418S20eO01L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:3,&quot;rank_us&quot;:0},&quot;Cable Matters 102065（Amazon JP の型番）&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Cable Matters DP40 ケーブル 2m&quot;,&quot;en&quot;:&quot;Cable Matters DP40 Cable, 6.6 ft&quot;,&quot;jp&quot;:&quot;B0C15G6D81&quot;,&quot;us&quot;:&quot;B0C15G6D81&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0C15G6D81&quot;,&quot;title&quot;:&quot;Cable Matters DP40 ケーブル 2m&quot;,&quot;searchQuery&quot;:&quot;Cable Matters DP40 ケーブル 2m&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71M2QCu8k6L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;0810115182047&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0C15G6D81&quot;,&quot;title&quot;:&quot;Cable Matters DP40 Cable, 6.6 ft&quot;,&quot;searchQuery&quot;:&quot;Cable Matters DP40 Cable, 6.6 ft&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/418S20eO01L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:3,&quot;rank_us&quot;:0},&quot;cm_tb5_1m&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Cable Matters Intel認証 Thunderbolt 5 ケーブル 80Gbps 1m&quot;,&quot;en&quot;:&quot;Cable Matters Intel-certified Thunderbolt 5 Cable, 80Gbps, 3.3 ft&quot;,&quot;jp&quot;:&quot;B0CP8K1C59&quot;,&quot;us&quot;:&quot;B0CP8K1C59&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CP8K1C59&quot;,&quot;title&quot;:&quot;Cable Matters Intel認証 Thunderbolt 5 ケーブル 80Gbps 1m&quot;,&quot;searchQuery&quot;:&quot;Cable Matters Intel認証 Thunderbolt 5 ケーブル 80Gbps 1m&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61LvjtEOi4L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;0810115184836&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0CP8K1C59&quot;,&quot;title&quot;:&quot;Cable Matters Intel-certified Thunderbolt 5 Cable, 80Gbps, 3.3 ft&quot;,&quot;searchQuery&quot;:&quot;Cable Matters Intel-certified Thunderbolt 5 Cable, 80Gbps, 3.3 ft&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61LvjtEOi4L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:5,&quot;rank_us&quot;:3},&quot;Cable Matters 107062&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Cable Matters Intel認証 Thunderbolt 5 ケーブル 80Gbps 1m&quot;,&quot;en&quot;:&quot;Cable Matters Intel-certified Thunderbolt 5 Cable, 80Gbps, 3.3 ft&quot;,&quot;jp&quot;:&quot;B0CP8K1C59&quot;,&quot;us&quot;:&quot;B0CP8K1C59&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CP8K1C59&quot;,&quot;title&quot;:&quot;Cable Matters Intel認証 Thunderbolt 5 ケーブル 80Gbps 1m&quot;,&quot;searchQuery&quot;:&quot;Cable Matters Intel認証 Thunderbolt 5 ケーブル 80Gbps 1m&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61LvjtEOi4L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;0810115184836&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0CP8K1C59&quot;,&quot;title&quot;:&quot;Cable Matters Intel-certified Thunderbolt 5 Cable, 80Gbps, 3.3 ft&quot;,&quot;searchQuery&quot;:&quot;Cable Matters Intel-certified Thunderbolt 5 Cable, 80Gbps, 3.3 ft&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61LvjtEOi4L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:5,&quot;rank_us&quot;:3},&quot;elecom_uhs_2m&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;エレコム ECDH-HD21E20BK（Ultra High Speed・2m）&quot;,&quot;en&quot;:&quot;エレコム ECDH-HD21E20BK（Ultra High Speed・2m）&quot;,&quot;jp&quot;:&quot;B0CL6H35DY&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CL6H35DY&quot;,&quot;title&quot;:&quot;エレコム ECDH-HD21E20BK（Ultra High Speed・2m）&quot;,&quot;searchQuery&quot;:&quot;エレコム ECDH-HD21E20BK（Ultra High Speed・2m）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61gtgWNZfYL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549550299572&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;ECDH-HD21E20BK&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;エレコム ECDH-HD21E20BK（Ultra High Speed・2m）&quot;,&quot;en&quot;:&quot;エレコム ECDH-HD21E20BK（Ultra High Speed・2m）&quot;,&quot;jp&quot;:&quot;B0CL6H35DY&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CL6H35DY&quot;,&quot;title&quot;:&quot;エレコム ECDH-HD21E20BK（Ultra High Speed・2m）&quot;,&quot;searchQuery&quot;:&quot;エレコム ECDH-HD21E20BK（Ultra High Speed・2m）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61gtgWNZfYL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549550299572&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;anker_uhs&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Anker HDMI ケーブル（8K）A8742 系&quot;,&quot;en&quot;:&quot;Anker HDMI ケーブル（8K）A8742 系&quot;,&quot;jp&quot;:&quot;B0CFY5BWGQ&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CFY5BWGQ&quot;,&quot;title&quot;:&quot;Anker HDMI ケーブル（8K）A8742 系&quot;,&quot;searchQuery&quot;:&quot;Anker HDMI ケーブル（8K）A8742 系&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71OiFpkuGyL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4571411212482&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1},&quot;A8742&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Anker HDMI ケーブル（8K）A8742 系&quot;,&quot;en&quot;:&quot;Anker HDMI ケーブル（8K）A8742 系&quot;,&quot;jp&quot;:&quot;B0CFY5BWGQ&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CFY5BWGQ&quot;,&quot;title&quot;:&quot;Anker HDMI ケーブル（8K）A8742 系&quot;,&quot;searchQuery&quot;:&quot;Anker HDMI ケーブル（8K）A8742 系&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71OiFpkuGyL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4571411212482&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1},&quot;cm_usbc_hdmi_2m&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Cable Matters USB-C → HDMI 2.1 変換ケーブル（単方向）1.8m&quot;,&quot;en&quot;:&quot;Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft&quot;,&quot;jp&quot;:&quot;B0CT6CK72N&quot;,&quot;us&quot;:&quot;B0CT6CK72N&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CT6CK72N&quot;,&quot;title&quot;:&quot;Cable Matters USB-C → HDMI 2.1 変換ケーブル（単方向）1.8m&quot;,&quot;searchQuery&quot;:&quot;Cable Matters USB-C → HDMI 2.1 変換ケーブル（単方向）1.8m&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ITbj6F6QL._AC_SL320_.jpg&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0CT6CK72N&quot;,&quot;title&quot;:&quot;Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft&quot;,&quot;searchQuery&quot;:&quot;Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/41CftKgIreL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:4,&quot;rank_us&quot;:2},&quot;Cable Matters 201392（Amazon JP の型番 201392-BLK-6）&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Cable Matters USB-C → HDMI 2.1 変換ケーブル（単方向）1.8m&quot;,&quot;en&quot;:&quot;Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft&quot;,&quot;jp&quot;:&quot;B0CT6CK72N&quot;,&quot;us&quot;:&quot;B0CT6CK72N&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CT6CK72N&quot;,&quot;title&quot;:&quot;Cable Matters USB-C → HDMI 2.1 変換ケーブル（単方向）1.8m&quot;,&quot;searchQuery&quot;:&quot;Cable Matters USB-C → HDMI 2.1 変換ケーブル（単方向）1.8m&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ITbj6F6QL._AC_SL320_.jpg&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0CT6CK72N&quot;,&quot;title&quot;:&quot;Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft&quot;,&quot;searchQuery&quot;:&quot;Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/41CftKgIreL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:4,&quot;rank_us&quot;:2}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;cable&quot;:&quot;cm_dp40_2m&quot;,&quot;adapter&quot;:null},&quot;en&quot;:{&quot;cable&quot;:&quot;cm_dp40_2m&quot;,&quot;adapter&quot;:&quot;cm_hdmi_dp_4k30&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;video-port-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// cvtRb2 / rateOf / linkFit / CHROMA_FACTOR / pclkRange / dataRange / tableCell は guides/2021-03-23-hdmi/model.mjs と同じ
// （帯域の計算を HDMI 記事・4K モニター記事とそろえるため、そのまま写した）。
// この記事で足したのは、端子と版ごとの判定（fitLink）と、機器の端子 → モニターの端子のつなぎ方（route / evaluateRoute）。

// ---- 帯域（VESA CVT 1.2 の Reduced Blanking v2 で、1秒あたりに送る画素の数） ----
function cvtRb2(w, h, hz, t) {
  const hTotal = w + t.hBlank;
  const hPeriodUs = (1e6 / hz - t.minVBlankUs) / h; // 1行の時間の見積もり
  let vbi = Math.floor(t.minVBlankUs / hPeriodUs) + 1;
  vbi = Math.max(vbi, t.vFrontMin + t.vSync + t.vBackMin);
  const vTotal = h + vbi;
  const pclkMHz = Math.floor((hz * vTotal * hTotal) / 1e3) / 1e3; // 0.001MHz 単位で切り捨て
  return { hTotal, vTotal, pclkMHz };
}

// 画素クロック（MHz）と1色あたりのビット数（RGB）から、必要なデータ量（Gbps）
function rateOf(pclkMHz, bpc) {
  return (pclkMHz * bpc * 3) / 1000;
}

// 接続ごとの判定。rates = [少ない側, 多い側]（Gbps）、link = { payload, dsc }
//   ok: 多い側でも圧縮なしで送れる / tight: 送れるが余裕が tightRatio 未満 / cond: 信号（タイミング）しだい
//   dsc: 圧縮（DSC、最大 dscRatio 分の1）を使えば送れる / ng: この計算では足りない
function linkFit(rates, link, m) {
  const [lo, hi] = rates;
  if (hi &lt;= link.payload) return (link.payload - hi) / link.payload &lt; m.tightRatio ? &quot;tight&quot; : &quot;ok&quot;;
  if (lo &lt;= link.payload) return &quot;cond&quot;;
  if (link.dsc &amp;&amp; hi / m.dscRatio &lt;= link.payload) return &quot;dsc&quot;;
  return &quot;ng&quot;;
}

const CHROMA_FACTOR = { &quot;444&quot;: 1, &quot;420&quot;: 0.5 };

function pclkRange(sig, m) {
  const R = m.res[sig.res];
  const pcs = [cvtRb2(R.w, R.h, sig.hz, m.timing).pclkMHz, ...(m.known[`${sig.res}@${sig.hz}`] || [])];
  return [Math.min(...pcs), Math.max(...pcs)];
}

// 必要なデータ量の幅（Gbps）= 画素クロック × 色深度 × 3 × 間引きの係数 ÷ 1000
function dataRange(sig, m) {
  return pclkRange(sig, m).map((p) =&gt; rateOf(p, sig.bpc) * CHROMA_FACTOR[sig.chroma || &quot;444&quot;]);
}

// HDMI.org の対応表（HDMI Video Table）にある形式なら、その判定（&quot;uhs&quot; / &quot;dsc&quot;）。無ければ null
function tableCell(sig, m) {
  const row = m.table[`${sig.res}@${sig.hz}`];
  return row ? row[`${sig.bpc}_${sig.chroma || &quot;444&quot;}`] ?? null : null;
}

// ---- ここから、この記事で足したもの ----
// 判定のよい順（ok がいちばんよい）
const FIT_RANK = { ok: 4, tight: 3, cond: 2, dsc: 1, ng: 0 };
const worse = (a, b) =&gt; (FIT_RANK[a] &lt;= FIT_RANK[b] ? a : b);
const sends = (f) =&gt; f === &quot;ok&quot; || f === &quot;tight&quot;;

// 1つの端子と版（link。m.links のキー）で、その映像を送れるか。
//   HDMI 2.1: HDMI.org の対応表にある形式は表のとおり（HDMI 記事の cableFit と同じ）。表に無ければ計算（DSC つき）
//   HDMI 2.0: 対応表にある形式（4K・100Hz以上、8K）は Ultra High Speed（HDMI 2.1 の FRL）が要るとされるので &quot;ng&quot;。無ければ計算（DSC なし）
//   DisplayPort: 計算（DSC つき）。lanes: 2 なら USB-C で USB データと同時に使う2レーン（送れる量は半分）
function fitLink(sig, lk, m, lanes = 4) {
  const L = m.links[lk];
  const rates = dataRange(sig, m);
  const pay = (L.payload * lanes) / 4;
  const cell = L.fam === &quot;hdmi&quot; ? tableCell(sig, m) : null;
  if (cell &amp;&amp; !L.table) return &quot;ng&quot;;
  if (cell === &quot;uhs&quot;) return linkFit(rates, { payload: pay, dsc: false }, m) === &quot;ok&quot; ? &quot;ok&quot; : &quot;tight&quot;;
  if (cell === &quot;dsc&quot;) return rates[1] / m.dscRatio &lt;= pay ? &quot;dsc&quot; : &quot;ng&quot;;
  return linkFit(rates, { payload: pay, dsc: L.dsc }, m);
}

// 機器の端子（src）とモニターの端子（mon）から、つなぎ方を決める。m.ports[x] = { fam: &quot;hdmi&quot; | &quot;dp&quot; | &quot;usbc&quot;, link }
//   links: 映像が通る区間の端子と版（変換があれば両側）、conv: 変換の種類、cable: ケーブルの種類
function route(src, mon, m) {
  const S = m.ports[src], D = m.ports[mon];
  const lower = (a, b) =&gt; (m.order.indexOf(a) &lt;= m.order.indexOf(b) ? a : b);
  if (S.fam === &quot;hdmi&quot; &amp;&amp; D.fam === &quot;hdmi&quot;) return { conv: &quot;none&quot;, links: [lower(S.link, D.link)], cable: &quot;hdmi&quot; };
  if (S.fam === &quot;dp&quot; &amp;&amp; D.fam === &quot;dp&quot;) return { conv: &quot;none&quot;, links: [lower(S.link, D.link)], cable: &quot;dp&quot; };
  if (S.fam === &quot;usbc&quot; &amp;&amp; D.fam === &quot;dp&quot;) return { conv: &quot;usbc2dp&quot;, links: [lower(S.link, D.link)], cable: &quot;usbc_dp&quot; };
  if (S.fam === &quot;usbc&quot; &amp;&amp; D.fam === &quot;hdmi&quot;) return { conv: &quot;usbc2hdmi&quot;, links: [S.link, D.link], cable: &quot;usbc_hdmi&quot; };
  if (S.fam === &quot;dp&quot; &amp;&amp; D.fam === &quot;hdmi&quot;) return { conv: &quot;dp2hdmi&quot;, links: [S.link, D.link], cable: &quot;hdmi&quot; };
  return { conv: &quot;hdmi2dp&quot;, links: [S.link, D.link], cable: &quot;dp&quot; };
}

// つなぎ方の判定。fit は区間ごとの判定のうち悪いほう。
//   HDMI→DisplayPort は能動式の変換器が要り、出せる形式は変換器しだい（この計算では決めない）ので、よくても &quot;cond&quot;
//   hdmiCable: HDMI の区間に要るケーブルの区分（HDMI 記事と同じ: HDMI 2.0 と同じ量で足りれば Premium High Speed、ぎりぎりなら premium_t、超えれば Ultra High Speed）
//   hdmiNeed: HDMI の区間に要る版（変換器・変換ケーブルの選び方に使う）
//   dpCable: DisplayPort の区間に要るケーブル（区間の版で決める）
//   conn（USB-C のときだけ）: &quot;lanes4&quot; = 4レーン全部を映像に使う（最大80Gbps）、&quot;shared&quot; = USB データと同時で2レーン（最大40Gbps）、
//     &quot;unknown&quot; = 分からない。unknown は2レーン（40Gbps）側で収まればどちらの構成でも送れるので判定どおり、
//     収まらず4レーンなら収まるときは確定できないので &quot;cond&quot;（connUnsure）にして、確定の○を出さない
function evaluateRoute(sig, src, mon, m, conn = &quot;lanes4&quot;) {
  const r = route(src, mon, m);
  const usbc = m.ports[src].fam === &quot;usbc&quot;;
  const laneN = usbc &amp;&amp; conn !== &quot;lanes4&quot; ? 2 : 4;
  const fitsAt = (n) =&gt; r.links.map((lk) =&gt; fitLink(sig, lk, m, usbc &amp;&amp; m.links[lk].fam === &quot;dp&quot; ? n : 4));
  const fits = fitsAt(laneN);
  let fit = fits.reduce(worse);
  const fit4 = usbc ? fitsAt(4).reduce(worse) : null;
  const fit2 = usbc ? fitsAt(2).reduce(worse) : null;
  const connUnsure = usbc &amp;&amp; conn === &quot;unknown&quot; &amp;&amp; !sends(fit2) &amp;&amp; sends(fit4);
  if (connUnsure) fit = &quot;cond&quot;;
  if (r.conv === &quot;hdmi2dp&quot; &amp;&amp; FIT_RANK[fit] &gt; FIT_RANK.cond) fit = &quot;cond&quot;;
  const hdmiLk = r.links.find((lk) =&gt; m.links[lk].fam === &quot;hdmi&quot;) || null;
  const dpLk = r.links.find((lk) =&gt; m.links[lk].fam === &quot;dp&quot;) || null;
  const f20 = hdmiLk ? fitLink(sig, &quot;hdmi20&quot;, m) : null;
  const hdmiNeed = hdmiLk ? (sends(f20) ? &quot;hdmi20&quot; : &quot;hdmi21&quot;) : null;
  const hdmiCable = hdmiLk ? (f20 === &quot;ok&quot; ? &quot;premium&quot; : f20 === &quot;tight&quot; ? &quot;premium_t&quot; : &quot;uhs&quot;) : null;
  const dpCable = dpLk ? m.links[dpLk].cable : null;
  return { ...r, fits, fit, fit2, fit4, connUnsure, hdmiLk, dpLk, hdmiNeed, hdmiCable, dpCable, rates: dataRange(sig, m) };
}

// 2026-10-15 型 D（仕様書）→ sheet＋ruler（帯の物差し 3 行）に移した（references/tool-ui-proto/2021-04-17-video-terminal.ui.mjs が元）。tool.json は layout sheet・result ruler。
// 値は model.mjs の fitLink・dataRange・M.capLabel のまま。sheet から物差しと判定に出た行を除いた。札と値は short（6字・8字が目安）
// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（つなぐ機器・機器の端子・モニターの端子・解像度・リフレッシュレート・色深度）。商品は選ばせず、
// 使う端子と版・ケーブル・変換の要否を仕様書（型 D）の形で出し、条件に合う認証ケーブル・変換器を picks で返す。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    dev: &quot;つなぐ機器&quot;, src: &quot;機器の端子&quot;, con: &quot;ゲーム機&quot;, port: &quot;つなぐ機器の端子&quot;, gPc: &quot;PC の DisplayPort・HDMI&quot;, gUsbc: &quot;PC の USB-C&quot;, mon: &quot;モニターの端子&quot;, res: &quot;解像度&quot;, hz: &quot;リフレッシュレート&quot;, depth: &quot;色深度&quot;,
    d8: &quot;SDR（8bit）&quot;, d10: &quot;HDR（10bit）&quot;, key: { port: &quot;機器の端子&quot;, dev: &quot;機器&quot;, src: &quot;端子&quot;, mon: &quot;モニター&quot;, hz: &quot;Hz&quot;, conn: &quot;接続構成&quot; }, devShort: { desktop: &quot;デスク&quot;, laptop: &quot;ノート&quot;, console: &quot;ゲーム機&quot; }, connShort: { lanes4: &quot;4レーン&quot;, shared: &quot;USB と共用&quot;, unknown: &quot;分からない&quot; },
    kLink: &quot;使う端子と版&quot;, kRate: &quot;必要な映像データ&quot;, rSrc: &quot;機器の端子&quot;, rCable: &quot;ケーブル&quot;, rMon: &quot;モニターの端子&quot;, rBoth: &quot;機器とモニターの端子&quot;, rBothNone: &quot;機器とモニターの端子（変換なし）&quot;, rConvCable: &quot;変換＋ケーブル&quot;, rCableNone: &quot;ケーブル（変換なし）&quot;, pickCable: &quot;ケーブル に合う商品&quot;, plus: &quot;＋&quot;, rNeed: (x) =&gt; `要る ${x}`, kCable: &quot;ケーブル&quot;, kConv: &quot;変換&quot;, kVerdict: &quot;判定&quot;,
    rate: (x) =&gt; `${x}（圧縮なし）`, rateWhy: &quot;PC向けとテレビ向けの信号の幅・色は4:4:4&quot;,
    cap: (n, x) =&gt; `${n} で映像に使える量は ${x}`,
    vOk: &quot;○ 圧縮なしで送れます&quot;, vTight: &quot;△ 圧縮なしで送れます（ぎりぎり）&quot;, vCond: &quot;△ 信号しだいで送れます&quot;,
    vDsc: &quot;△ DSC（圧縮）を使えば送れます&quot;, vNg: &quot;✕ この端子と版では足りません（この計算では）&quot;, vH2d: &quot;△ 変換器が対応する形式なら映ります&quot;,
    convNone: &quot;要らない&quot;, convDp2hdmi: &quot;DisplayPort→HDMI の変換&quot;, convHdmi2dp: &quot;HDMI→DisplayPort の能動式の変換&quot;, convUsbc2dp: &quot;USB-C→DisplayPort のケーブル&quot;, convUsbc2hdmi: &quot;USB-C→HDMI の変換ケーブル&quot;,
    cPremium: &quot;Premium High Speed 以上の HDMI ケーブル&quot;, cPremiumT: &quot;Ultra High Speed の HDMI ケーブル（Premium High Speed はぎりぎり）&quot;, cUhs: &quot;Ultra High Speed の HDMI ケーブル&quot;,
    cDp40: &quot;VESA の DP40 認証の DisplayPort ケーブル&quot;, cDp54: &quot;VESA の DP54 か DP80 の認証ケーブル&quot;, cDp80: &quot;VESA の DP80 認証ケーブル（パッシブは1mまで）&quot;,
    cUsbcDp40: &quot;USB-C→DisplayPort のケーブル（DP40 認証）&quot;, cUsbcDp80: &quot;USB-C→DisplayPort のケーブル（DP80 認証）&quot;,
    cUsbcHdmi20: &quot;USB-C→HDMI の変換ケーブル（4K・60Hz 対応）&quot;, cUsbcHdmi21: &quot;USB-C→HDMI の変換ケーブル（HDMI 2.1 対応）&quot;,
    whyHdmi: &quot;HDMI.org のケーブルの区分&quot;, whyDp: &quot;VESA のケーブルの区分&quot;, whyConv: (x) =&gt; x,
    lDp2hdmi: &quot;DP++ の出力ならパッシブの変換でも映ります。アクティブの変換なら DP++ でなくても使えます（Dell の説明）&quot;,
    lHdmi2dp: &quot;HDMI→DisplayPort には能動式の変換器が要ります。DisplayPort→HDMI 用の変換器は逆向きに使えません（Dell の説明）。出せる形式は変換器の仕様で確かめます&quot;,
    lNeed21: &quot;HDMI 側は HDMI 2.1 が要る量なので、変換器・変換ケーブルも HDMI 2.1 の出力に対応したものを選びます&quot;,
    lNeed20: &quot;HDMI 側は HDMI 2.0 と同じ量で足ります&quot;,
    lUsbc: &quot;その USB-C から映像が出るかは、機器の仕様書の「DisplayPort Alt Mode」の記載か、端子の横の DP ロゴで確かめます&quot;,
    conn: &quot;USB-C の接続構成&quot;, cLanes4: &quot;4レーン全部を映像に使う（最大80Gbps）&quot;, cShared: &quot;USB データと同時に使う（最大40Gbps）&quot;, cUnknown: &quot;分からない&quot;,
    kConn: &quot;接続構成&quot;, vConn: &quot;△ 接続の構成しだいです（この構成では確定できません）&quot;,
    lConn4: &quot;4レーン全部を映像に使う接続（最大80Gbps）として計算しています&quot;,
    lConnShared: (x) =&gt; `USB データと同時に使う接続（映像は2レーン、最大40Gbps）として計算しています。映像に使える量は半分の ${x} です`,
    lConnBoth: &quot;4レーンでも、USB データと同時の2レーン（最大40Gbps）でも収まるので、どちらの構成でも送れます&quot;,
    lConnUnsure: (a, b) =&gt; `構成が分からないので、確定できません。4レーン全部を映像に使う接続なら: ${a}。USB データと同時の2レーンなら: ${b}`,
    lConnOther: (x) =&gt; `構成が分からないので、40Gbps 側（USB データと同時）で判定しています: ${x}`,
    lDsc: &quot;DSC は、送る機器とモニターの両方が対応しているときだけ使えます&quot;,
    lCond: &quot;PC向けの信号（VESA CVT-RB2）なら収まり、テレビ向けの信号では超えます&quot;,
    lAlt420: (x) =&gt; `色を間引く（4:2:0）なら: ${x}`,
    lDp80: &quot;UHBR20 をパッシブの DP80 で使えるのは1mまでとされてきました。3mまではアクティブの DP80LL です（VESA）&quot;,
    lDp54: &quot;UHBR13.5 は、パッシブの DP54 なら2mまで使えます（VESA）&quot;,
    lSw2: &quot;任天堂の仕様には HDMI の版が書かれていないので、HDMI 2.0 と同じ量で判定しています&quot;,
    lH21: &quot;HDMI 2.1 の機能はどれも任意なので、モニターがこの解像度・Hz を HDMI で受けられるかを仕様で確かめます&quot;,
    lTight: (n, x) =&gt; `${n} の余裕は ${x}% です`,
    srcCalc: &quot;この記事の計算&quot;, srcTable: &quot;HDMI.org の対応表&quot;, srcVesa: &quot;VESA&quot;, srcHdmi: &quot;HDMI.org&quot;, srcDell: &quot;Dell&quot;, srcSpec: &quot;機器の仕様&quot;,
    note: &quot;結果は計算の目安です。必要な映像データは圧縮なし・色は間引かない（4:4:4）で、PC向け（VESA CVT-RB2）とテレビ向け（CTA-861）の信号の幅で計算しています。HDMI 2.1 の4K・120Hz以上と8Kは HDMI.org の対応表のとおりです。実機では試していません。&quot;,
  },
  en: {
    dev: &quot;Device&quot;, src: &quot;Device port&quot;, con: &quot;Console&quot;, port: &quot;Device and its port&quot;, gPc: &quot;PC DisplayPort / HDMI&quot;, gUsbc: &quot;PC USB-C&quot;, mon: &quot;Monitor port&quot;, res: &quot;Resolution&quot;, hz: &quot;Refresh rate&quot;, depth: &quot;Color depth&quot;,
    d8: &quot;SDR (8-bit)&quot;, d10: &quot;HDR (10-bit)&quot;, key: { port: &quot;Port&quot;, dev: &quot;Device&quot;, src: &quot;Port&quot;, mon: &quot;Monitor&quot;, hz: &quot;Refresh&quot;, res: &quot;Res.&quot;, depth: &quot;Color&quot;, conn: &quot;Lanes&quot; }, devShort: { desktop: &quot;Desk&quot;, laptop: &quot;Laptop&quot;, console: &quot;Console&quot; }, connShort: { lanes4: &quot;4 lanes&quot;, shared: &quot;Shared with USB&quot;, unknown: &quot;Not sure&quot; },
    kLink: &quot;Port and version&quot;, kRate: &quot;Video data needed&quot;, rSrc: &quot;Device port&quot;, rCable: &quot;Cable&quot;, rMon: &quot;Monitor port&quot;, rBoth: &quot;Device and monitor ports&quot;, rBothNone: &quot;Both ports (no adapter)&quot;, rConvCable: &quot;Adapter + cable&quot;, rCableNone: &quot;Cable (no adapter)&quot;, pickCable: &quot;Fits the Cable&quot;, plus: &quot; + &quot;, rNeed: (x) =&gt; `Need ${x}`, kCable: &quot;Cable&quot;, kConv: &quot;Adapter&quot;, kVerdict: &quot;Result&quot;,
    rate: (x) =&gt; `${x} (uncompressed)`, rateWhy: &quot;Range of PC and TV signal timings, 4:4:4 color&quot;,
    cap: (n, x) =&gt; `${n} carries ${x} as video`,
    vOk: &quot;✓ Fits uncompressed&quot;, vTight: &quot;△ Just fits uncompressed&quot;, vCond: &quot;△ Depends on the signal&quot;,
    vDsc: &quot;△ Works with DSC compression&quot;, vNg: &quot;✕ This port and version fall short (by this math)&quot;, vH2d: &quot;△ Works if the adapter supports the format&quot;,
    convNone: &quot;None&quot;, convDp2hdmi: &quot;DisplayPort-to-HDMI adapter&quot;, convHdmi2dp: &quot;Active HDMI-to-DisplayPort adapter&quot;, convUsbc2dp: &quot;USB-C to DisplayPort cable&quot;, convUsbc2hdmi: &quot;USB-C to HDMI cable&quot;,
    cPremium: &quot;Premium High Speed HDMI cable or better&quot;, cPremiumT: &quot;Ultra High Speed HDMI cable (Premium High Speed is borderline)&quot;, cUhs: &quot;Ultra High Speed HDMI cable&quot;,
    cDp40: &quot;VESA DP40-certified DisplayPort cable&quot;, cDp54: &quot;VESA DP54- or DP80-certified cable&quot;, cDp80: &quot;VESA DP80-certified cable (passive up to 1 m)&quot;,
    cUsbcDp40: &quot;USB-C to DisplayPort cable (DP40)&quot;, cUsbcDp80: &quot;USB-C to DisplayPort cable (DP80)&quot;,
    cUsbcHdmi20: &quot;USB-C to HDMI cable (4K at 60Hz)&quot;, cUsbcHdmi21: &quot;USB-C to HDMI cable (HDMI 2.1)&quot;,
    whyHdmi: &quot;HDMI.org cable categories&quot;, whyDp: &quot;VESA cable categories&quot;, whyConv: (x) =&gt; x,
    lDp2hdmi: &quot;On a DP++ output a passive adapter works too. An active adapter works with or without DP++ (per Dell)&quot;,
    lHdmi2dp: &quot;HDMI to DisplayPort takes an active adapter, and a DisplayPort-to-HDMI adapter won&apos;t work in reverse (per Dell). Check the adapter&apos;s specs for the formats it supports&quot;,
    lNeed21: &quot;The HDMI side needs HDMI 2.1 bandwidth, so pick an adapter or cable with HDMI 2.1 output&quot;,
    lNeed20: &quot;The HDMI side fits within HDMI 2.0&apos;s capacity&quot;,
    lUsbc: &quot;Check the device&apos;s specs for \&quot;DisplayPort Alt Mode\&quot;, or a DP logo next to the port, to see if that USB-C outputs video&quot;,
    conn: &quot;USB-C connection&quot;, cLanes4: &quot;All four lanes carry video (up to 80 Gbps)&quot;, cShared: &quot;Shared with USB data (up to 40 Gbps)&quot;, cUnknown: &quot;Not sure&quot;,
    kConn: &quot;Connection&quot;, vConn: &quot;△ Depends on the connection&quot;,
    lConn4: &quot;Calculated as a connection where all four lanes carry video (up to 80 Gbps)&quot;,
    lConnShared: (x) =&gt; `Calculated as a connection shared with USB data (two lanes for video, up to 40 Gbps). The video capacity is halved to ${x}`,
    lConnBoth: &quot;It fits over all four lanes and over the two lanes shared with USB data (up to 40 Gbps), so it works either way&quot;,
    lConnUnsure: (a, b) =&gt; `Since the connection is unknown, this can&apos;t be confirmed. With all four lanes for video: ${a}. With two lanes shared with USB data: ${b}`,
    lConnOther: (x) =&gt; `Since the connection is unknown, this is judged on the 40 Gbps side (shared with USB data): ${x}`,
    lDsc: &quot;DSC only works when both the source and the monitor support it&quot;,
    lCond: &quot;It fits with PC timings (VESA CVT-RB2) but not with TV timings&quot;,
    lAlt420: (x) =&gt; `With 4:2:0 chroma subsampling: ${x}`,
    lDp80: &quot;UHBR20 over a passive DP80 cable has been limited to 1 m. The active DP80LL goes to 3 m (VESA)&quot;,
    lDp54: &quot;For UHBR13.5, a passive DP54 cable works up to 2 m (VESA)&quot;,
    lSw2: &quot;Nintendo&apos;s specs don&apos;t state an HDMI version, so this uses HDMI 2.0&apos;s capacity&quot;,
    lH21: &quot;Every HDMI 2.1 feature is optional, so check that the monitor takes this resolution and refresh rate over HDMI&quot;,
    lTight: (n, x) =&gt; `${n} has ${x}% to spare`,
    srcCalc: &quot;This article&apos;s math&quot;, srcTable: &quot;HDMI.org video table&quot;, srcVesa: &quot;VESA&quot;, srcHdmi: &quot;HDMI.org&quot;, srcDell: &quot;Dell&quot;, srcSpec: &quot;Device specs&quot;,
    note: &quot;This is a calculated estimate. Video data is uncompressed with full 4:4:4 color, as a range between PC (VESA CVT-RB2) and TV (CTA-861) signal timings. HDMI 2.1 at 4K 120Hz and up and 8K follow HDMI.org&apos;s video table. Not tested on real hardware.&quot;,
  },
};

const G_ = (x, lang) =&gt; `${Number(x.toFixed(2))}${lang === &quot;ja&quot; ? &quot;Gbps&quot; : &quot; Gbps&quot;}`;
const VERD_ = { ok: &quot;vOk&quot;, tight: &quot;vTight&quot;, cond: &quot;vCond&quot;, dsc: &quot;vDsc&quot;, ng: &quot;vNg&quot; };
// 札に出す短い名前（端子の版・ゲーム機の名前。括弧の中の説明は選択肢の一覧に残す）
const PORT_SHORT_ = { usbc_dp14: &quot;USB-C DP1.4&quot;, usbc_uhbr20: &quot;USB-C UHBR20&quot;, hdmi_sw2: &quot;HDMI&quot; };
const portShort_ = (k, M, lang) =&gt; PORT_SHORT_[k] || M.ports[k][lang].replace(/^DisplayPort 2\.1\s*[（(]\s*(.*?)[)）]$/, &quot;$1&quot;).replace(/^DisplayPort /, &quot;DP &quot;);
const CON_SHORT_ = { ps5: &quot;PS5&quot;, xsx: &quot;Xbox X&quot;, xss: &quot;Xbox S&quot;, sw2_4k: &quot;Switch2 4K&quot;, sw2_1440: &quot;Switch2 1440p&quot;, sw2_1080: &quot;Switch2 1080p&quot; };
const RES_SHORT_ = { ja: { &quot;1080p&quot;: &quot;フルHD&quot;, &quot;1440p&quot;: &quot;WQHD&quot; }, en: {} };

// 2026-10-15 1画面に収める: 「つなぐ機器」「機器の端子」「ゲーム機」の3つの札を「機器の端子」1つ（port）にまとめた。
// 機器（デスク・ノート）は端子の選択肢を絞るだけで計算に使わない（model の evaluateRoute は端子だけ）ので、端子を機器の見出しで区切って選ぶ。
// 古い URL（dev・src・con）は alias で読む（core.js。前と同じく、その機器に無い端子はその機器の最初の端子に）
const isCon_ = (M, x) =&gt; !!(M.consoles || {})[x];
const usbc_ = (M, x) =&gt; ((M.ports[x] || {}).fam === &quot;usbc&quot;);
function portOptions_(M, lang) {
  const t = T_[lang], seen = new Set(), out = [];
  const add = (k, g) =&gt; { if (seen.has(k)) return; seen.add(k); out.push({ value: k, label: M.ports[k][lang], short: portShort_(k, M, lang), group: g }); };
  for (const k of M.devs.desktop.src) add(k, t.gPc);
  for (const k of M.devs.laptop.src) if (usbc_(M, k)) add(k, t.gUsbc); else add(k, t.gPc);
  for (const [k, d] of Object.entries(M.consoles)) out.push({ value: k, label: d[lang], short: CON_SHORT_[k], group: t.con });
  return out;
}
// 古い URL の dev・src・con から port へ（前の core.js と同じ読み方: 既定は desktop・dp14・ps5、その機器に無い端子はその機器の最初の端子）
function portFromOld_(M, o) {
  const dev = M.devs[o.dev] ? o.dev : &quot;desktop&quot;;
  if (dev === &quot;console&quot;) return M.consoles[o.con] ? o.con : &quot;ps5&quot;;
  const list = M.devs[dev].src, src = o.src != null ? o.src : &quot;dp14&quot;;
  return list.includes(src) ? src : list[0];
}

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;port&quot;, type: &quot;select&quot;, label: t.port, short: t.key.port, value: &quot;dp14&quot;, fold: false, options: portOptions_(M, lang), alias: { names: [&quot;dev&quot;, &quot;src&quot;, &quot;con&quot;], read: (o) =&gt; portFromOld_(M, o) } },
    { name: &quot;conn&quot;, type: &quot;select&quot;, label: t.conn, short: t.key.conn, value: &quot;unknown&quot;, when: (s) =&gt; usbc_(M, s.port), options: [[&quot;lanes4&quot;, &quot;cLanes4&quot;], [&quot;shared&quot;, &quot;cShared&quot;], [&quot;unknown&quot;, &quot;cUnknown&quot;]].map(([x, k]) =&gt; ({ value: x, label: t[k], short: t.connShort[x] })) },
    { name: &quot;mon&quot;, type: &quot;select&quot;, label: t.mon, short: t.key.mon, value: &quot;dp14&quot;, options: M.monPorts.map((k) =&gt; ({ value: k, label: M.ports[k][lang], short: portShort_(k, M, lang) })) },
    { name: &quot;res&quot;, type: &quot;select&quot;, label: t.res, short: t.key.res, value: &quot;4k&quot;, when: (s) =&gt; !isCon_(M, s.port), options: Object.keys(M.hzOptions).map((k) =&gt; ({ value: k, label: M.resName[k][lang], short: RES_SHORT_[lang][k] })) },
    { name: &quot;hz&quot;, type: &quot;select&quot;, label: t.hz, short: t.key.hz, value: &quot;144&quot;, when: (s) =&gt; !isCon_(M, s.port), dependsOn: &quot;res&quot;, options: (s) =&gt; (M.hzOptions[s.res] || M.hzOptions[&quot;4k&quot;]).map((x) =&gt; ({ value: String(x), label: `${x}Hz` })) },
    { name: &quot;depth&quot;, type: &quot;select&quot;, label: t.depth, short: t.key.depth, value: &quot;10&quot;, options: [&quot;8&quot;, &quot;10&quot;].map((x) =&gt; ({ value: x, label: t[&quot;d&quot; + x], short: x === &quot;8&quot; ? &quot;SDR&quot; : &quot;HDR&quot; })) },
  ];
}

function compute(v0, M, lang) {
  const t = T_[lang];
  // port（まとめた札）から、計算に使う dev・src・con へ。port が無い（古い形の条件）ときはそのまま
  const v = v0.port == null ? v0 : { ...v0, ...(isCon_(M, v0.port) ? { dev: &quot;console&quot;, con: v0.port, src: &quot;dp14&quot; } : { dev: usbc_(M, v0.port) ? &quot;laptop&quot; : &quot;desktop&quot;, src: v0.port, con: &quot;ps5&quot; }) };
  const c = v.dev === &quot;console&quot; ? M.consoles[v.con] : null;
  const src = c ? c.src : v.src;
  const res = c ? c.res : v.res, hz = c ? c.hz : Number(v.hz), bpc = Number(v.depth);
  if (!M.devs[v.dev] || !M.ports[src] || (!c &amp;&amp; !M.devs[v.dev].src.includes(src)) || !M.monPorts.includes(v.mon) || !M.res[res] || !(M.hzOptions[res] || []).includes(hz) || ![8, 10].includes(bpc)) return { status: &quot;error&quot;, lines: [] };
  const sig = { res, hz, bpc, chroma: &quot;444&quot; };
  const usbcSrc = M.ports[src].fam === &quot;usbc&quot;;
  const conn = usbcSrc ? ([&quot;lanes4&quot;, &quot;shared&quot;, &quot;unknown&quot;].includes(v.conn) ? v.conn : &quot;unknown&quot;) : &quot;lanes4&quot;;
  const e = evaluateRoute(sig, src, v.mon, M, conn);
  const [lo, hi] = e.rates;
  const loS = Math.floor(lo * 100 + 1e-9) / 100, hiS = Math.ceil(hi * 100 - 1e-9) / 100;
  const rateS = loS === hiS || hi - lo &lt; 1e-9 ? G_(hiS, lang) : `${G_(loS, lang).replace(/ ?Gbps$/, &quot;&quot;)}${lang === &quot;ja&quot; ? &quot;〜&quot; : &quot;–&quot;}${G_(hiS, lang)}`;
  const L = (lk) =&gt; M.links[lk];
  const linkName = e.links.map((lk) =&gt; L(lk)[lang]).join(&quot; → &quot;);
  const verdict = e.connUnsure ? t.vConn : e.conv === &quot;hdmi2dp&quot; &amp;&amp; e.fit === &quot;cond&quot; ? t.vH2d : t[VERD_[e.fit]];
  const status = e.fit === &quot;ok&quot; ? &quot;ok&quot; : e.fit === &quot;ng&quot; ? &quot;ng&quot; : &quot;cond&quot;;
  const lines = [];
  // 区間ごとの映像に使える量
  for (const lk of e.links) lines.push(t.cap(L(lk)[lang], G_(M.capLabel[lk], lang)));
  // 余裕（ぎりぎり）
  const tightLk = e.links.find((lk, i) =&gt; e.fits[i] === &quot;tight&quot;);
  if (tightLk) lines.push(t.lTight(L(tightLk)[lang], Math.max(0, Math.floor(((L(tightLk).payload - hi) / L(tightLk).payload) * 1000 + 1e-9) / 10)));
  if (e.fits.includes(&quot;cond&quot;)) lines.push(t.lCond);
  if (e.fits.includes(&quot;dsc&quot;)) lines.push(t.lDsc);
  // 色を間引いたとき（HDMI の区間が足りないときだけ）
  const hdmiFit = e.hdmiLk ? e.fits[e.links.indexOf(e.hdmiLk)] : null;
  if (hdmiFit &amp;&amp; !sends(hdmiFit) &amp;&amp; hdmiFit !== &quot;dsc&quot;) {
    const alt = evaluateRoute({ ...sig, chroma: &quot;420&quot; }, src, v.mon, M);
    lines.push(t.lAlt420(t[VERD_[alt.fit]]));
  }
  if (e.conv === &quot;dp2hdmi&quot;) lines.push(t.lDp2hdmi);
  if (e.conv === &quot;hdmi2dp&quot;) lines.push(t.lHdmi2dp);
  if (e.conv === &quot;dp2hdmi&quot; || e.conv === &quot;usbc2hdmi&quot;) lines.push(e.hdmiNeed === &quot;hdmi21&quot; ? t.lNeed21 : t.lNeed20);
  if (usbcSrc) {
    lines.push(t.lUsbc);
    const dpLk = e.links.find((lk) =&gt; L(lk).fam === &quot;dp&quot;);
    if (conn === &quot;lanes4&quot;) lines.push(t.lConn4);
    else if (conn === &quot;shared&quot;) lines.push(t.lConnShared(G_(dpLk ? M.capLabel[dpLk] / 2 : 0, lang)));
    else if (e.connUnsure) lines.push(t.lConnUnsure(t[VERD_[e.fit4]], t[VERD_[e.fit2]]));
    else if (sends(e.fit2)) lines.push(t.lConnBoth);
    else lines.push(t.lConnOther(t[VERD_[e.fit2]]));
  }
  if (e.dpLk === &quot;uhbr20&quot;) lines.push(t.lDp80);
  if (e.dpLk === &quot;uhbr13&quot;) lines.push(t.lDp54);
  if (src === &quot;hdmi_sw2&quot;) lines.push(t.lSw2);
  if (e.hdmiLk === &quot;hdmi21&quot;) lines.push(t.lH21);

  // ケーブルと変換の名前・候補
  const ja = lang === &quot;ja&quot;;
  let cable, cableWhy, picks = [];
  const slot = (id) =&gt; (M.slotIds[id] || []);
  if (e.conv === &quot;usbc2dp&quot;) {
    const dp80 = e.dpCable !== &quot;dp40&quot;;
    cable = dp80 ? t.cUsbcDp80 : t.cUsbcDp40; cableWhy = t.whyDp;
    if (!dp80) picks.push(...slot(&quot;usbc_dp40_2m&quot;));
  } else if (e.cable === &quot;dp&quot;) {
    cable = { dp40: t.cDp40, dp54: t.cDp54, dp80: t.cDp80 }[e.dpCable]; cableWhy = t.whyDp;
    picks.push(...slot(e.dpCable === &quot;dp40&quot; ? &quot;dp40_2m&quot; : &quot;dp80_1m&quot;));
  } else if (e.conv === &quot;usbc2hdmi&quot;) {
    cable = e.hdmiNeed === &quot;hdmi21&quot; ? t.cUsbcHdmi21 : t.cUsbcHdmi20; cableWhy = ja ? &quot;HDMI 側に要る版&quot; : &quot;HDMI version the HDMI side needs&quot;;
  } else {
    cable = { premium: t.cPremium, premium_t: t.cPremiumT, uhs: t.cUhs }[e.hdmiCable]; cableWhy = t.whyHdmi;
  }
  if (e.conv === &quot;dp2hdmi&quot;) picks.unshift(...slot(&quot;dp_to_hdmi&quot;));
  // USB-C→HDMI の枠は 4K・60Hz（HDMI 2.0 と同じ量）のケーブルなので、HDMI 側が HDMI 2.0 の量で足りるときだけ
  if (e.conv === &quot;usbc2hdmi&quot; &amp;&amp; e.hdmiNeed === &quot;hdmi20&quot;) picks.unshift(...slot(&quot;usbc_to_hdmi&quot;));
  // HDMI→DisplayPort の変換器は、メーカーの記載でこの形式（解像度・Hz）を出せるものだけ
  if (e.conv === &quot;hdmi2dp&quot;) picks = Object.entries(M.adapterFormats || {}).filter(([, fm]) =&gt; (fm[res] || []).includes(hz)).map(([id]) =&gt; id);
  if (e.cable === &quot;hdmi&quot; || e.conv === &quot;usbc2hdmi&quot;) { if (e.conv !== &quot;usbc2hdmi&quot;) picks.push(...slot(&quot;hdmi_uhs&quot;)); }
  if (e.fit === &quot;ng&quot;) picks = [];
  const convName = { none: t.convNone, dp2hdmi: t.convDp2hdmi, hdmi2dp: t.convHdmi2dp, usbc2dp: t.convUsbc2dp, usbc2hdmi: t.convUsbc2hdmi }[e.conv];
  const sheet = [
    { key: t.kLink, value: linkName, reason: e.links.length &gt; 1 ? (ja ? &quot;変換の両側のうち少ないほうで決まる&quot; : &quot;The smaller side of the adapter sets the limit&quot;) : (ja ? &quot;機器とモニターの端子の低いほうの版&quot; : &quot;The lower version of the two ports&quot;), src: t.srcSpec },
    ...(usbcSrc ? [{ key: t.kConn, value: t[{ lanes4: &quot;cLanes4&quot;, shared: &quot;cShared&quot;, unknown: &quot;cUnknown&quot; }[conn]], reason: ja ? &quot;USB-C の DP Alt Mode: 4レーンで最大80Gbps、USB データと同時なら最大40Gbps&quot; : &quot;USB-C DP Alt Mode: up to 80 Gbps over four lanes, up to 40 Gbps with USB data&quot;, src: t.srcVesa }] : []),
    { key: t.kRate, value: t.rate(rateS), reason: t.rateWhy, src: t.srcCalc },
    { key: t.kVerdict, value: verdict, reason: e.links.map((lk, i) =&gt; `${L(lk)[lang]}: ${t[VERD_[e.fits[i]]].replace(/^[○△✕✓] /, &quot;&quot;)}`).join(ja ? &quot;・&quot; : &quot;; &quot;), src: e.hdmiLk === &quot;hdmi21&quot; &amp;&amp; tableCell(sig, M) ? t.srcTable : t.srcCalc, tight: e.fit === &quot;tight&quot; },
    { key: t.kCable, value: cable, reason: cableWhy, src: e.cable === &quot;hdmi&quot; || e.conv === &quot;usbc2hdmi&quot; ? t.srcHdmi : t.srcVesa },
    { key: t.kConv, value: convName, reason: e.conv === &quot;none&quot; ? (ja ? &quot;同じ種類の端子どうし&quot; : &quot;Same kind of port on both ends&quot;) : e.conv === &quot;usbc2dp&quot; || e.conv === &quot;usbc2hdmi&quot; ? (ja ? &quot;USB-C の DP Alt Mode が前提&quot; : &quot;Needs DP Alt Mode on the USB-C port&quot;) : (ja ? &quot;向きの決まった変換（単方向）&quot; : &quot;One-way conversion&quot;), src: e.conv === &quot;dp2hdmi&quot; || e.conv === &quot;hdmi2dp&quot; ? t.srcDell : t.srcVesa },
  ];
  // ruler（帯の物差し 3 行）: 機器の端子・ケーブル・モニターの端子の、映像に使える量（M.capLabel。区分の区切り）と要る量（dataRange）を同じ物差しで。
  // 判定は model.mjs の fitLink（端子は端子どうしの版、ケーブルは evaluateRoute が選んだ区分の版）。値は作らない
  const ST_ = { ok: &quot;ok&quot;, tight: &quot;cond&quot;, cond: &quot;cond&quot;, dsc: &quot;cond&quot;, ng: &quot;ng&quot; };
  const short_ = (lk) =&gt; L(lk)[lang].replace(/^DisplayPort 2\.1\s*[（(]\s*(.*?)[)）]$/, &quot;$1&quot;).replace(/^DisplayPort /, &quot;DP &quot;);
  const fam_ = (f) =&gt; M.order.filter((lk) =&gt; L(lk).fam === (f === &quot;usbc&quot; ? &quot;dp&quot; : f));
  const lanes_ = usbcSrc &amp;&amp; conn !== &quot;lanes4&quot; ? 2 : 4;
  const portRow = (key, port, lanes) =&gt; {
    const P = M.ports[port], lk = P.link, cap = (M.capLabel[lk] * lanes) / 4, st = ST_[fitLink(sig, lk, M, lanes)];
    return { key, sub: P[lang], limit: cap, cuts: fam_(P.fam).map((x) =&gt; ({ at: M.capLabel[x], label: short_(x), on: x === lk })), status: st, gap: st === &quot;ng&quot; ? `−${G_(Math.ceil((hi - cap) * 100 - 1e-9) / 100, lang)}` : null };
  };
  const cableLk = e.cable === &quot;hdmi&quot; || e.conv === &quot;usbc2hdmi&quot; ? (e.hdmiCable === &quot;premium&quot; ? &quot;hdmi20&quot; : &quot;hdmi21&quot;) : M.order.filter((x) =&gt; L(x).cable === e.dpCable).slice(-1)[0];
  const cableCuts = e.cable === &quot;hdmi&quot; || e.conv === &quot;usbc2hdmi&quot;
    ? [{ at: M.capLabel.hdmi20, label: &quot;Premium&quot;, on: cableLk === &quot;hdmi20&quot; }, { at: M.capLabel.hdmi21, label: &quot;Ultra&quot;, on: cableLk === &quot;hdmi21&quot; }]
    : [...new Set(M.order.filter((x) =&gt; L(x).fam === &quot;dp&quot;).map((x) =&gt; L(x).cable))].map((cb) =&gt; { const top = M.order.filter((x) =&gt; L(x).cable === cb).slice(-1)[0]; return { at: M.capLabel[top], label: cb.toUpperCase(), on: top === cableLk }; });
  const cableSt = ST_[fitLink(sig, cableLk, M)];
  // 機器とモニターの端子の行が同じ（同じ端子・同じ上限・同じ判定）なら1行にまとめる（2026-10-15 1画面に収める。値は同じ）
  const srcRow = portRow(c ? t.con : t.rSrc, src, lanes_), monRow = portRow(t.rMon, v.mon, 4);
  const same = srcRow.sub === monRow.sub &amp;&amp; srcRow.limit === monRow.limit &amp;&amp; srcRow.status === monRow.status &amp;&amp; !c;
  // 変換が要る（DisplayPort↔HDMI）ときは、変換の名前をケーブルの行の名前に入れる（「変換＋ケーブル」。前は仕様書の「変換」の行。2026-10-15 1画面に収める。言い方だけ）。
  //   USB-C のケーブルは名前に変換が入っている（「USB-C→HDMI の変換ケーブル（…）」）ので「ケーブル」のまま
  const convInRow = e.conv === &quot;dp2hdmi&quot; || e.conv === &quot;hdmi2dp&quot;;
  //   変換が要らないのに機器とモニターの行が分かれる（版が違う・ゲーム機）ときは「ケーブル（変換なし）」（前は仕様書の「変換: 要らない」）。商品の言い方は「ケーブル に合う商品」のまま
  const cableNone = e.conv === &quot;none&quot; &amp;&amp; !same;
  const cableRow = { key: convInRow ? t.rConvCable : cableNone ? t.rCableNone : t.rCable, sub: convInRow ? convName + t.plus + cable : cable, limit: M.capLabel[cableLk], cuts: cableCuts, status: cableSt, pick: [...new Set(picks)] };
  const ruler = {
    unit: &quot;Gbps&quot;,
    need: { range: [lo, hi], label: t.rNeed(rateS) },
    rows: same ? [{ ...srcRow, key: e.conv === &quot;none&quot; ? t.rBothNone : t.rBoth }, cableRow] : [srcRow, cableRow, monRow],
    // スマホで行の名前を帯の左に置く（行の高さ 50 → 34px。core の ruler の dense。2026-10-15 後半 1画面に収める）
    dense: true,
  };
  // 仕様書は、物差しに出した「必要な映像データ」「使う端子と版」「ケーブル」（物差しの2行目の名前）と、判定と同じ「判定」の行を除いた行
  // 2026-10-15 後半（1画面に収める。言い方だけ）: 「変換」は物差しの行の名前へ（変換なし＝「（変換なし）」、DisplayPort↔HDMI＝「変換＋ケーブル」、USB-C＝ケーブルの名前）、
  //   「接続構成」は札（conn）と同じ値なので出さない（80Gbps・40Gbps の説明は「根拠と注意」の行 lConn4・lConnShared・lConnUnsure）。仕様書の行は残らない
  const sheet2 = sheet.filter((x) =&gt; x.key !== t.kRate &amp;&amp; x.key !== t.kVerdict &amp;&amp; x.key !== t.kLink &amp;&amp; x.key !== t.kCable &amp;&amp; x.key !== t.kConv &amp;&amp; x.key !== t.kConn);
  return { status, verdict, lines: [...new Set(lines)], picks: [...new Set(picks)], sheet: sheet2, ruler, ...(cableNone ? { pickLabel: t.pickCable } : {}) };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（よく聞かれるつなぎ方）
function presets() {
  // 2026-10-15 札をまとめた（port）。条件は前と同じ（ノートの HDMI はデスクと同じ端子の選択肢 = 同じ計算）
  const P = (src, mon, res, hz, depth, conn = &quot;unknown&quot;) =&gt; ({ port: src, mon, res, hz: String(hz), depth: String(depth), conn });
  const C = (con, mon, depth) =&gt; ({ port: con, mon, depth: String(depth), res: &quot;4k&quot;, hz: &quot;144&quot;, conn: &quot;unknown&quot; });
  return [
    P(&quot;dp14&quot;, &quot;dp14&quot;, &quot;4k&quot;, 144, 10), P(&quot;hdmi21&quot;, &quot;hdmi21&quot;, &quot;4k&quot;, 144, 10), P(&quot;uhbr20&quot;, &quot;uhbr20&quot;, &quot;4k&quot;, 240, 10),
    P(&quot;uhbr13&quot;, &quot;uhbr13&quot;, &quot;4k&quot;, 240, 10), P(&quot;dp14&quot;, &quot;dp14&quot;, &quot;1440p&quot;, 165, 8), P(&quot;dp14&quot;, &quot;hdmi21&quot;, &quot;4k&quot;, 120, 10),
    P(&quot;hdmi21&quot;, &quot;dp14&quot;, &quot;1080p&quot;, 60, 8), P(&quot;hdmi21&quot;, &quot;hdmi21&quot;, &quot;8k&quot;, 60, 10),
    P(&quot;usbc_dp14&quot;, &quot;dp14&quot;, &quot;4k&quot;, 60, 10), P(&quot;usbc_dp14&quot;, &quot;hdmi20&quot;, &quot;4k&quot;, 60, 8), P(&quot;usbc_uhbr20&quot;, &quot;uhbr20&quot;, &quot;4k&quot;, 240, 10, &quot;unknown&quot;), P(&quot;usbc_uhbr20&quot;, &quot;uhbr20&quot;, &quot;4k&quot;, 240, 10, &quot;lanes4&quot;), P(&quot;hdmi20&quot;, &quot;hdmi20&quot;, &quot;4k&quot;, 60, 8),
    C(&quot;ps5&quot;, &quot;hdmi21&quot;, 10), C(&quot;ps5&quot;, &quot;hdmi20&quot;, 10), C(&quot;sw2_4k&quot;, &quot;hdmi20&quot;, 8), C(&quot;xss&quot;, &quot;hdmi21&quot;, 10),
  ];
}

// カードに出す仕様（その商品のメーカー公表の区分・長さ。絞り込みの条件は出さない）
function pickSpecs(id, v, M, lang) {
  const s = (M.pickSpec || {})[id];
  return s ? s[lang] : [];
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;sheet&quot;, RESULT: &quot;ruler&quot;, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h3 id=&quot;ports-and-cables-for-ps5-xbox-and-switch-2&quot;&gt;Ports and cables for PS5, Xbox and Switch 2&lt;/h3&gt;





















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Console&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Cable requirement&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;PS5&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Per the PlayStation Blog, the PS5’s included HDMI cable is recommended. For another cable, use an Ultra High Speed one that supports HDMI 2.1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Xbox Series X and S&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Per the Xbox website, both the Xbox Series X and Series S come with an Ultra High Speed HDMI cable&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Switch 2&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Per Nintendo Australia’s support page, connecting a Switch 2 to a TV takes an Ultra High Speed HDMI cable, and one comes with the Switch 2&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Pick cables by this table. It is separate from the bandwidth math.&lt;/p&gt;
&lt;p&gt;Per the makers’ official pages, the PS5, Xbox Series X|S and Switch 2 all output video over HDMI. The PS5 and Xbox use HDMI 2.1, and the Switch 2’s specs don’t state an HDMI version.&lt;/p&gt;
&lt;p&gt;For 4K at 120Hz from a PS5 or Xbox Series X, the monitor also needs an HDMI 2.1 input. An HDMI 2.0 input can’t carry 4K at 120Hz.&lt;/p&gt;
&lt;p&gt;The Switch 2’s specs don’t name an HDMI version, so its 4K at 60Hz is counted as HDMI 2.0. It is borderline in 8-bit, and falls short for 10-bit HDR in full 4:4:4 color.&lt;/p&gt;
&lt;h2 id=&quot;bandwidth-by-port-and-version&quot;&gt;Bandwidth by port and version&lt;/h2&gt;
&lt;p&gt;What separates the ports is how much video data they can send per second.&lt;/p&gt;















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Port and version&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Max bandwidth&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Usable for video&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;With DSC (before compression)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;HDMI 2.0&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;18 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14.4 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;None&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;HDMI 2.1&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;48 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;42.66 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;127.98 Gbps&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;DisplayPort 1.4&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;32.4 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;25.92 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;77.76 Gbps&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;DisplayPort 2.1 UHBR10&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;40 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;38.68 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;116.04 Gbps&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;DisplayPort 2.1 UHBR13.5&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;54 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;52.22 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;156.66 Gbps&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;DisplayPort 2.1 UHBR20&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;80 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;77.37 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;232.11 Gbps&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;UHBR is the name for DisplayPort 2.1’s faster link speeds, and a bigger number is faster. The DSC column assumes DSC compresses the video to one third, so it shows the uncompressed amount that fits.&lt;/p&gt;
&lt;p&gt;Per HDMI.org, every HDMI 2.1 feature is optional, so an “HDMI 2.1” label doesn’t guarantee 4K at 120Hz.&lt;/p&gt;
&lt;p&gt;HDMI 2.2 isn’t in the table or the calculator, because compatible devices weren’t researched. It goes up to 96 Gbps, and the Ultra96 cable is the only one that supports all of its features.&lt;/p&gt;
&lt;h2 id=&quot;why-is-usb-c-not-showing-video-on-a-monitor&quot;&gt;Why is USB-C not showing video on a monitor?&lt;/h2&gt;
&lt;p&gt;Your USB-C port may not support video output. Check in this order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Per the DisplayPort FAQ, whether a USB-C port outputs video depends on the device; check the specs for “DisplayPort Alt Mode” or a DP logo next to the port&lt;/li&gt;
&lt;li&gt;Per VESA, USB-C DP Alt Mode carries up to 80 Gbps when all four lanes carry video, and up to 40 Gbps when USB data shares the cable. If you can’t tell which setup you have, judge by the USB-sharing side. The calculator lets you pick the connection&lt;/li&gt;
&lt;li&gt;Per the DisplayPort FAQ, from a USB-C port that supports DP Alt Mode, adapters and cables connect to DisplayPort, HDMI, DVI and VGA inputs. For 4K at 60Hz, check the cable’s supported resolution and refresh rate in its specs&lt;/li&gt;
&lt;li&gt;For a hub or dock, check its specs for video output and for the resolutions and refresh rates it supports&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;USB-C and Thunderbolt are not the same thing. Per Intel, USB Type-C is a connector shape and Thunderbolt 5 is a standard. Thunderbolt 5 uses the USB Type-C port, and computers, accessories and cables all require certification.&lt;/p&gt;
&lt;p&gt;Per USB-IF, USB4’s 80 Gbps runs over 80 Gbps-certified cables.&lt;/p&gt;
&lt;h2 id=&quot;displayport-cables-and-how-long-they-can-be&quot;&gt;DisplayPort cables and how long they can be&lt;/h2&gt;
&lt;p&gt;Pick a DisplayPort cable by its logo. Per VESA, DisplayPort cables are told apart by VESA’s DP40 and DP80 logos. DP40 is rated for UHBR10 and is backward compatible with DisplayPort 1.4 speeds.&lt;/p&gt;






























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Cable&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Speed it carries&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Length guidance&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;DP40&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Up to UHBR10&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Needs improvements beyond 2 m&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;DP54&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Up to UHBR13.5&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Up to 2 m&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;DP80&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Up to UHBR20&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Needs improvements beyond 1 m&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;DP80LL (active)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Up to UHBR20&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Up to 3 m&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;can-you-convert-displayport-to-hdmi&quot;&gt;Can you convert DisplayPort to HDMI?&lt;/h2&gt;
&lt;p&gt;Check the converter’s direction and its supported resolution and refresh rate first. The converter and both devices must support your target video format.&lt;/p&gt;
&lt;p&gt;Per Dell’s support article, DisplayPort to HDMI works through an adapter. HDMI to DisplayPort takes an active converter.&lt;/p&gt;
&lt;p&gt;A passive DisplayPort-to-HDMI adapter only works on a DP++ (Dual-Mode) output. Active DisplayPort-to-HDMI adapters work with both regular DP and DP++ outputs. Conversion is one-way; HDMI to DisplayPort needs a converter made for that direction.&lt;/p&gt;
&lt;p&gt;Check your PC’s or graphics card’s spec sheet to see whether it supports DP++.&lt;/p&gt;
&lt;p&gt;For bandwidth, the smaller side of the chain sets the limit. Going from DisplayPort 1.4 to HDMI 2.1, 4K at 120Hz in 10-bit needs DSC.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-condition&quot;&gt;Picks by condition&lt;/h2&gt;
&lt;p&gt;Check your monitor’s input port and the speed you need against the table or the calculator before you pick. One pick per condition where a listing qualifies. The criteria:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The maker’s official page states the certification or specs. VESA’s certified-product database did not confirm a registration for the lengths picked&lt;/li&gt;
&lt;li&gt;Sold new, with at least 100 ratings and 4 stars or more. The 100 is judged on the count pooled across lengths. For DP80 the pooling is confirmed. Whether the DP40 count is pooled is not confirmed. The USB-C to HDMI count is likely pooled across lengths too&lt;/li&gt;
&lt;li&gt;Not a marked-up third-party import&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The picks come from the Amazon.com listings compared, and only when they were sold by the maker and shipped by Amazon. Check prices on the store.&lt;/p&gt;
&lt;h3 id=&quot;for-displayport-14-or-uhbr10&quot;&gt;For DisplayPort 1.4 or UHBR10&lt;/h3&gt;
&lt;p&gt;It is 2 m (6.6 ft) long.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters DP40 Cable, 6.6 ft&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/418S20eO01L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters DP40 Cable, 6.6 ft&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C15G6D81?q=Cable+Matters+DP40+Cable%2C+6.6+ft&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters DP40 Cable, 6.6 ft on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Sold by Cable Matters (the maker). Ships from Amazon.&lt;/p&gt;
&lt;h3 id=&quot;for-uhbr135-or-faster&quot;&gt;For UHBR13.5 or faster&lt;/h3&gt;
&lt;p&gt;A passive UHBR20 cable needs improvements beyond 1 m, so the pick is 1 m (3.3 ft).&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters DP80 Cable, 3.3 ft&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71ufUDQQRwL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters DP80 Cable, 3.3 ft&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CHK5NS87?q=Cable+Matters+DP80+Cable%2C+3.3+ft&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters DP80 Cable, 3.3 ft on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;usb-c-to-hdmi-for-4k-at-60hz&quot;&gt;USB-C to HDMI for 4K at 60Hz&lt;/h3&gt;
&lt;p&gt;The maker lists 4K at 60Hz or higher, and it is 1.8 m (6 ft) long. It is one-way, USB-C to HDMI, and needs a USB-C port with DisplayPort Alt Mode.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/41CftKgIreL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CT6CK72N?q=Cable+Matters+USB-C+to+HDMI+2.1+Cable%2C+one-way%2C+6+ft&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters USB-C to HDMI 2.1 Cable, one-way, 6 ft on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;should-i-use-hdmi-or-displayport&quot;&gt;Should I use HDMI or DisplayPort?&lt;/h3&gt;
&lt;p&gt;For a game console or TV, use HDMI. For a PC monitor with a DisplayPort input, use whichever port the “Which port fits each resolution and refresh rate” table says is enough.&lt;/p&gt;
&lt;p&gt;In this calculation, HDMI 2.0 and DisplayPort 1.4 have enough bandwidth for 1080p at 60Hz. For USB-C, first check that your device supports DisplayPort Alt Mode.&lt;/p&gt;
&lt;p&gt;This assumes both your device and your monitor have that port.&lt;/p&gt;
&lt;h3 id=&quot;can-you-convert-displayport-to-hdmi-or-hdmi-to-displayport&quot;&gt;Can you convert DisplayPort to HDMI, or HDMI to DisplayPort?&lt;/h3&gt;
&lt;p&gt;Per Dell’s support article, DisplayPort to HDMI works through an adapter. HDMI to DisplayPort takes an active converter.&lt;/p&gt;
&lt;p&gt;A passive DisplayPort-to-HDMI adapter only works on a DP++ (Dual-Mode) output. Active DisplayPort-to-HDMI adapters work with both regular DP and DP++ outputs.&lt;/p&gt;
&lt;p&gt;Conversion is one-way; HDMI to DisplayPort needs a converter made for that direction.&lt;/p&gt;
&lt;h3 id=&quot;which-port-do-i-need-for-4k-at-240hz-with-10-bit-hdr&quot;&gt;Which port do I need for 4K at 240Hz with 10-bit HDR?&lt;/h3&gt;
&lt;p&gt;In this calculation (4:4:4 color), among the ports compared here, only DisplayPort 2.1 UHBR20 carries 4K at 240Hz in 10-bit HDR uncompressed. HDMI 2.1 and DisplayPort 1.4 need DSC.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Worked out from the standards bodies’ and makers’ official pages as of October 2026. No hardware was tested. Standards bodies: &lt;a href=&quot;https://www.hdmi.org/spec/hdmi2&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;HDMI.org HDMI 2.2&lt;/a&gt;, &lt;a href=&quot;https://vesa.org/featured-articles/vesa-releases-displayport-2-1-specification/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;VESA DisplayPort 2.1&lt;/a&gt;, &lt;a href=&quot;https://www.displayport.org/faq/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;VESA DisplayPort FAQ&lt;/a&gt;, &lt;a href=&quot;https://www.usb.org/usb4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;USB-IF USB4&lt;/a&gt;. Makers: &lt;a href=&quot;https://download.intel.com/newsroom/archive/2025/en-us-2023-09-12-intel-introduces-thunderbolt-5-connectivity-standard.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Intel Thunderbolt 5&lt;/a&gt;, &lt;a href=&quot;https://blog.playstation.com/2020/11/09/ps5-the-ultimate-faq/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;PlayStation Blog PS5 FAQ&lt;/a&gt;, &lt;a href=&quot;https://www.nintendo.com/us/gaming-systems/switch-2/tech-specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Nintendo Switch 2 tech specs&lt;/a&gt;. Adapters: &lt;a href=&quot;https://www.dell.com/support/kbdoc/en-ly/000125170/hdmi-to-displayport-adapter-a-simple-guide&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell’s adapter guide&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Video data rate = pixel clock × bits per color × 3 ÷ 1000, in Gbps, uncompressed. Color is not subsampled (4:4:4) and HDR is counted as 10-bit. The pixel clock is a range: the VESA CVT-RB2 formula (minimum blanking used by PCs) against CTA-861 (TV and console timing) and Dell’s published timings. Shown to two decimals, the low end rounded down and the high end rounded up.&lt;/li&gt;
&lt;li&gt;Usable video capacity per port: HDMI 2.0 is 18 Gbps × 8/10 (TMDS) = 14.4 Gbps, HDMI 2.1 is 48 Gbps × 16/18 (FRL) = 42.66 Gbps, DisplayPort 1.4 uses VESA’s maximum payload 25.92 Gbps, and DisplayPort 2.1 UHBR20 is 77.37 Gbps. UHBR10 and UHBR13.5 scale the UHBR20 figure by per-lane rate (38.68 Gbps, 52.22 Gbps). Rounded down to two decimals.&lt;/li&gt;
&lt;li&gt;DSC is counted as compressing up to one third on DisplayPort 1.4 and 2.1 and HDMI 2.1. HDMI 2.0 has no DSC. DSC needs support on both the sending and receiving device. HDMI 2.1 at 4K 120Hz and up, and 8K, follow HDMI.org’s video table. HDMI 2.2 is left out because compatible devices were not checked.&lt;/li&gt;
&lt;li&gt;Verdict: if the high end fits, uncompressed. With less than 3% to spare, borderline. If only the low end fits, it depends on the signal. If DSC makes it fit, DSC is needed. The Switch 2 states no HDMI version, so it is judged at HDMI 2.0 capacity. Cable requirements (such as a console’s included cable) are given separately from the bandwidth math, from each maker’s official page.&lt;/li&gt;
&lt;li&gt;USB-C is judged by the DisplayPort version in its specs and by the connection. Per VESA, DP Alt Mode carries up to 80 Gbps when all four lanes carry video and up to 40 Gbps (two lanes) when USB data is sent at the same time. The four-lane case uses the version’s usable video capacity as is; the two-lane case with USB data uses half of it. When the connection is unknown, it is judged on the 40 Gbps (two-lane) side: if that fits, it works either way. If the 40 Gbps side falls short but four lanes fit, no firm check mark is shown and the result is ‘depends on the connection’. For USB-C to HDMI, the connection applies only to the DisplayPort leg.&lt;/li&gt;
&lt;li&gt;Color-depth check: 4K at 240Hz in 12-bit needs up to 82.27 Gbps at the high end, above UHBR20’s usable video capacity of 77.37 Gbps. The article’s claim that only UHBR20 carries 4K at 240Hz uncompressed covers up to 10-bit (HDR).&lt;/li&gt;
&lt;li&gt;Cable length uses only VESA’s statements: the lengths beyond which passive cables need improvements (DP40 beyond 2 m, DP80 beyond 1 m), DP80LL up to 3 m, and DP54 up to 2 m. No hardware was tested. Picks come from products whose maker pages state the certification and specs, among new Amazon listings with 100+ ratings (judged on the count pooled across lengths), 4+ stars, no Sakura Checker warning and no lower-than-Amazon score, and no import, the cheapest per condition including shipping.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;










































































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.1 / Ultra High Speed cable bandwidth&lt;/td&gt;&lt;td&gt;48 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/spec/hdmi2&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video formats targeted by Ultra High Speed cable&lt;/td&gt;&lt;td&gt;8K@60 and 4K@120&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/resource/cables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Ultra High Speed: 8K@60 and 4K@120 formats&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.2 / Ultra96 cable bandwidth&lt;/td&gt;&lt;td&gt;96 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/spec/hdmi2&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Up to 96Gbps bandwidth and next-gen HDMI Fixed Rate Link technology; The new Ult&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.2 supported formats&lt;/td&gt;&lt;td&gt;12K@120 and 16K@60; uncompressed 8K@60/4:4:4 and 4K@240/4:4:4 at 10-bit and 12-bit&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/spec/hdmi2&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Supported resolutions include 4K240 and 8K60, both uncompressed and with full ch&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cable needed for all HDMI 2.2 applications&lt;/td&gt;&lt;td&gt;Ultra96 HDMI Cable is the only cable that supports all HDMI 2.2 applications&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/spec/hdmi2&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; The new Ultra96 HDMI Cable supports up to 96Gbps bandwidth and is the only cable&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ultra96 feature name (devices)&lt;/td&gt;&lt;td&gt;Ultra96 feature name: 64Gbps, 80Gbps or 96Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/spec/hdmi2&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; “Ultra96” is a feature name that manufacturers are encouraged to use to indicate&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ultra cable certification being mandatory&lt;/td&gt;&lt;td&gt;mandatory certification program (Ultra96 and Ultra High Speed)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/spec2sub/ultrahdmicables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Both the Ultra96 HDMI Cable and Ultra High Speed HDMI Cable are part of the Ultr&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.1 features being optional&lt;/td&gt;&lt;td&gt;optional&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/blog/detail/139&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 1.4a maximum link bandwidth&lt;/td&gt;&lt;td&gt;32.4 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/press/vesa-publishes-displayport-2-0-video-standard-enabling-support-for-beyond-8k-resolutions-higher-refresh-rates-for-4k-hdr-and-virtual-reality-applications/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt; The previous version of DisplayPort, v1.4a, provided a maximum link bandwidth of&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 1.4a maximum payload&lt;/td&gt;&lt;td&gt;25.92 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/press/vesa-publishes-displayport-2-0-video-standard-enabling-support-for-beyond-8k-resolutions-higher-refresh-rates-for-4k-hdr-and-virtual-reality-applications/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt; With 8b/10b channel coding, that equates to a maximum payload of 25.92 Gbps.&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 2.1 maximum bandwidth (UHBR20, four lanes)&lt;/td&gt;&lt;td&gt;80 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-releases-displayport-2-1-specification/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt; VESA certified DP80 cables support up to the UHBR20 link rate (20 Gbps), with fo&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 2.1b maximum payload&lt;/td&gt;&lt;td&gt;77.37 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.displayport.org/faq/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;displayport.org&lt;/a&gt; DisplayPort 2.1b … maximum link rate to up to 20 Gbps/lane and features more e&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DP40 cable definition&lt;/td&gt;&lt;td&gt;UHBR10, 40Gbps (DP40)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-releases-displayport-2-1-specification/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt; VESA certified DP40 cables support up to the UHBR10 link rate (10 Gbps), with fo&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort cable certification logo&lt;/td&gt;&lt;td&gt;DP40 / DP80 logo from VESA&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-readies-displayport-uhbr-ultra-high-bit-rate-device-certification-and-begins-certification-of-uhbr-cables/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt; if your cable has the DP40 or DP80 logo from VESA, it will meet the specs for th&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DP40 / DP80 cable backward compatibility&lt;/td&gt;&lt;td&gt;DP40 and DP80 cables are backward compatible with RBR, HBR, HBR2 and HBR3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-readies-displayport-uhbr-ultra-high-bit-rate-device-certification-and-begins-certification-of-uhbr-cables/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt; fully backward compatible with devices supporting DisplayPort link rates previou&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DP40 / DP80 cable length guidance&lt;/td&gt;&lt;td&gt;DP40: improvements needed beyond 2 m; DP80 passive: beyond 1 m; DP80LL active: up to 3 m&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-releases-displayport-2-1-specification/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt; improved connectivity and longer cable lengths (beyond two meters for DP40 cable&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DSC support required in DisplayPort 2.1&lt;/td&gt;&lt;td&gt;DisplayPort 2.1 mandates DSC support; can reduce transport bandwidth in excess of 67 percent&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-releases-displayport-2-1-specification/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 1.4 DSC (up to 3:1)&lt;/td&gt;&lt;td&gt;DSC 1.2 up to 3:1, visually lossless&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-publishes-displayport-standard-version-1-4/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 2.1 uncompressed configurations&lt;/td&gt;&lt;td&gt;8K 60Hz 4:4:4 with 30 bits per pixel (HDR-10); two 4K 144Hz 24bpp uncompressed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.displayport.org/faq/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;displayport.org&lt;/a&gt; First standard to support 8K resolution (7680 x 4320) at 60 Hz refresh rate with&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;How to tell whether a USB-C port outputs video (DP Alt Mode)&lt;/td&gt;&lt;td&gt;check device documentation or the DP logo; USB Type-C connectors that support DisplayPort over USB-C normally carry the DP logo&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.displayport.org/faq/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;displayport.org&lt;/a&gt; How do I know if a device supports DisplayPort Alt Mode? This information should&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;USB-C DP Alt Mode bandwidth&lt;/td&gt;&lt;td&gt;up to 80Gbps of DisplayPort video using all four lanes, or up to 40Gbps with simultaneous SuperSpeed USB data&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-releases-updated-displayport-alt-mode-spec-to-bring-displayport-2-0-performance-to-usb4-and-new-usb-type-c-devices/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;USB4 Version 2 maximum bandwidth&lt;/td&gt;&lt;td&gt;80 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.usb.org/usb4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;usb.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;USB4 compatibility&lt;/td&gt;&lt;td&gt;compatible with USB 3.2, USB 2.0 and Thunderbolt 3 hosts and devices&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.usb.org/usb4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;usb.org&lt;/a&gt; Compatibility with existing USB 3.2, USB 2.0, and Thunderbolt 3 hosts and device&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Thunderbolt 5 bandwidth (each direction)&lt;/td&gt;&lt;td&gt;80 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://download.intel.com/newsroom/archive/2025/en-us-2023-09-12-intel-introduces-thunderbolt-5-connectivity-standard.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;download.intel.com&lt;/a&gt; Thunderbolt 5 will deliver 80 gigabits per second (Gbps) of bi-directional bandw&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Thunderbolt 5 Bandwidth Boost (transmit)&lt;/td&gt;&lt;td&gt;120 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://download.intel.com/newsroom/archive/2025/en-us-2023-09-12-intel-introduces-thunderbolt-5-connectivity-standard.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;download.intel.com&lt;/a&gt; with Bandwidth Boost it will provide up to 120 Gbps for the best display experie&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Thunderbolt 5 display configurations (Intel)&lt;/td&gt;&lt;td&gt;dual 8K (60Hz) or three 4K (144Hz)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.thunderbolttechnology.net/sites/default/files/TBT5%20Press%20Deck%20Q4%2025_Final.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;thunderbolttechnology.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Thunderbolt 5 foundations and compatibility&lt;/td&gt;&lt;td&gt;built on USB4 V2, DisplayPort 2.1 and PCI Express Gen 4; fully compatible with previous versions&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://download.intel.com/newsroom/archive/2025/en-us-2023-09-12-intel-introduces-thunderbolt-5-connectivity-standard.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;download.intel.com&lt;/a&gt; Built on industry standards including USB4 V2, DisplayPort 2.1 and PCI Express G&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Thunderbolt 5 passive cable length (Intel announcement)&lt;/td&gt;&lt;td&gt;passive cables up to 1 meter&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://download.intel.com/newsroom/archive/2025/en-us-2023-09-12-intel-introduces-thunderbolt-5-connectivity-standard.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;download.intel.com&lt;/a&gt; Utilizes a new signaling technology, PAM-3, to deliver these significant increas&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Thunderbolt certification being mandatory&lt;/td&gt;&lt;td&gt;mandatory certification for all shipping computers, accessories, and cables&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.thunderbolttechnology.net/sites/default/files/TBT5%20Press%20Deck%20Q4%2025_Final.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;thunderbolttechnology.net&lt;/a&gt; Maximized Performance: Mandatory certification for all shipping computers, acces&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Thunderbolt port shape (USB Type-C)&lt;/td&gt;&lt;td&gt;One universal computer port (USB Type-C)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.thunderbolttechnology.net/sites/default/files/TBT5%20Press%20Deck%20Q4%2025_Final.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;thunderbolttechnology.net&lt;/a&gt; Thunderbolt 5 Leaps Ahead: One universal computer port (USB Type-C)&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 HDMI 2.1 and 4K 120Hz&lt;/td&gt;&lt;td&gt;HDMI 2.1, 4K 120Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://blog.playstation.com/2020/11/09/ps5-the-ultimate-faq/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;blog.playstation.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 HDMI cable recommendation&lt;/td&gt;&lt;td&gt;included cable recommended; otherwise Ultra High Speed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://blog.playstation.com/2020/11/09/ps5-the-ultimate-faq/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;blog.playstation.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 Pro 8K output condition&lt;/td&gt;&lt;td&gt;PS5 Pro 8K output requires a screen supporting 8K at 60Hz with DSC&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.playstation.com/en-us/support/hardware/ps5-4k-resolution-guide/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;playstation.com&lt;/a&gt; PS5 Pro console 8K output requires a screen that supports 8K at 60Hz with Displa&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Xbox Series X HDMI 2.1 and included cable&lt;/td&gt;&lt;td&gt;1x HDMI 2.1 port; up to 120 FPS; Ultra High Speed HDMI cable included&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xbox.com/en-US/consoles/xbox-series-x&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xbox.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Xbox Series S HDMI 2.1 and included cable&lt;/td&gt;&lt;td&gt;1x HDMI 2.1 port; 1440p up to 120 FPS; Ultra High Speed HDMI cable included&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xbox.com/en-US/consoles/xbox-series-s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xbox.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Switch 2 TV output&lt;/td&gt;&lt;td&gt;HDMI output in TV mode; max 4K at 60 fps; 120 fps at 1080p/1440p; HDR10; VRR up to 120Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nintendo.com/us/gaming-systems/switch-2/tech-specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nintendo.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI cable needed for Switch 2 TV mode&lt;/td&gt;&lt;td&gt;Ultra High Speed HDMI cable required (meets HDMI 2.1 specifications); one is included with Switch 2&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nintendo.com/au/support/articles/how-to-connect-a-nintendo-switch-2-console-to-a-tv/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nintendo.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;When a passive DisplayPort-to-HDMI adapter works&lt;/td&gt;&lt;td&gt;passive DisplayPort-to-HDMI adapters only work on DP++ (Dual-Mode) ports; active adapters work with a pure DisplayPort or DP++ output&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/support/kbdoc/en-ly/000125170/hdmi-to-displayport-adapter-a-simple-guide&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI-to-DisplayPort conversion and direction&lt;/td&gt;&lt;td&gt;HDMI to DisplayPort always requires an active adapter; an adapter designed for DisplayPort to HDMI cannot work in reverse&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/support/kbdoc/en-ly/000125170/hdmi-to-displayport-adapter-a-simple-guide&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;USB-C DP Alt Mode adapters to other video ports&lt;/td&gt;&lt;td&gt;adapters and adapter cables defined in the DisplayPort Alt Mode for USB Type-C Standard connect DisplayPort over USB-C to DisplayPort, HDMI, DVI and VGA monitor inputs&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.displayport.org/faq/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;displayport.org&lt;/a&gt; Adapters and Adapter cables, as defined in the DisplayPort Alt Mode for USB Type&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.0 maximum bandwidth&lt;/td&gt;&lt;td&gt;18 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/press/bodydetails/24&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.0 encoding efficiency (8b/10b)&lt;/td&gt;&lt;td&gt;0.8&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xilinx.com/content/dam/xilinx/support/documents/ip_documentation/v_hdmi_rxss1/v1_2/pg351-v-hdmi-rxss1.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xilinx.com&lt;/a&gt; AMD/Xilinx PG351: TMDS up to 6 Gb/s @ 3 lanes&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.1 encoding efficiency (16b/18b)&lt;/td&gt;&lt;td&gt;0.8888888888888888&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xilinx.com/content/dam/xilinx/support/documents/ip_documentation/v_hdmi_rxss1/v1_2/pg351-v-hdmi-rxss1.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xilinx.com&lt;/a&gt; AMD/Xilinx PG351: FRL 12 Gb/s @ 4 lanes, decode the incoming 16-bit/18-bit encod&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DSC maximum compression ratio&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-publishes-displayport-standard-version-1-4/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 horizontal blanking&lt;/td&gt;&lt;td&gt;80 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; CVT_RB_V2_H_BLANK 80 pixels&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 vertical blanking time&lt;/td&gt;&lt;td&gt;460 µs&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; CVT_RB_MIN_V_BLANK 460 us&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 vertical sync lines&lt;/td&gt;&lt;td&gt;8 lines&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; RB v2 is detected when vsync == 8&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 minimum back porch lines&lt;/td&gt;&lt;td&gt;6 lines&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; CVT_RB_V_BPORCH 6&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 minimum front porch lines&lt;/td&gt;&lt;td&gt;1 lines&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; CVT_RB_V2_MIN_V_FPORCH 1&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CTA-861 1080p60 pixel clock&lt;/td&gt;&lt;td&gt;148.5 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/gpu/drm/drm_edid.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; edid_cea_modes: /* 16 - 1920x1080@60Hz */ 148500 kHz&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CTA-861 1080p120 pixel clock&lt;/td&gt;&lt;td&gt;297 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/gpu/drm/drm_edid.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; edid_cea_modes: /* 63 - 1920x1080@120Hz */ 297000 kHz&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CTA-861 4K60 pixel clock&lt;/td&gt;&lt;td&gt;594 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/gpu/drm/drm_edid.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; edid_cea_modes: /* 97 - 3840x2160@60Hz */ 594000 kHz&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CTA-861 4K120 pixel clock&lt;/td&gt;&lt;td&gt;1188 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/gpu/drm/drm_edid.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; edid_cea_modes: /* 118 - 3840x2160@120Hz */ 1188000 kHz&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CTA-861 8K60 pixel clock&lt;/td&gt;&lt;td&gt;2376 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/gpu/drm/drm_edid.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; edid_cea_modes: /* 199 - 7680x4320@60Hz */ 2376000 kHz&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 4K60 pixel clock (CVT)&lt;/td&gt;&lt;td&gt;533.25 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual12109242-dell-u2723qe-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; UHD 3840x2160 (DP) 60Hz 533.25 MHz PDF p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 4K120 pixel clock (low)&lt;/td&gt;&lt;td&gt;1074.73 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual74300550-dell-g3223q-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; VESA 3840x2160 119.88Hz 1074.73 MHz PDF p.14&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 4K144 pixel clock&lt;/td&gt;&lt;td&gt;1250 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual74300550-dell-g3223q-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; VESA 3840x2160 144Hz 1250 MHz PDF p.13-14&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 1440p144 pixel clock&lt;/td&gt;&lt;td&gt;591.31 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual74300550-dell-g3223q-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; 2560x1440 144Hz 591.31 MHz PDF p.14&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI.org video table (cable per format)&lt;/td&gt;&lt;td&gt;HDMI Video Table: 4K100/120 all formats = UHS; 4K144 12-bit RGB/4:4:4 = UHS+DSC or Ultra96, others = UHS; 4K200/240 and 8K48/50/60 RGB/4:4:4/4:2:2 = UHS+DSC or Ultra96, 4:2:0 = UHS&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://hdmi.org/download/savefile?filekey=Marketing/HDMI-Video-Table-All-Formats-100.jpg&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; HDMI Video Table - All Formats. BLACK = Support with UHS HDMI Cables or Ultra96&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cable required for higher formats&lt;/td&gt;&lt;td&gt;Ultra High Speed or Ultra96 required&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/spec2sub/res-bandwidth&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Will some resolutions and refresh rates require a specific cable? In order to en&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI compression (DSC) support&lt;/td&gt;&lt;td&gt;uncompressed and compressed (DSC 1.2a) modes; manufacturers can implement either or both&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/spec2sub/res-bandwidth&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; The specification supports both uncompressed and compressed modes. Manufacturers&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UHBR10 per-lane rate&lt;/td&gt;&lt;td&gt;10 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-releases-displayport-2-1-specification/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UHBR13.5 per-lane rate&lt;/td&gt;&lt;td&gt;13.5 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/press/vesa-announces-displayport-updates-and-extensions-for-gaming-and-automotive-market-at-ces/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DP54 cable (for UHBR13.5)&lt;/td&gt;&lt;td&gt;DP54: UHBR10 and UHBR13.5 up to 2 m passive; UHBR13.5 previously only through a DP80 cable&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/press/vesa-announces-displayport-updates-and-extensions-for-gaming-and-automotive-market-at-ces/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-09&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Video port and cable check: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;






























































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 1.4, DisplayPort 1.4, 4K, 144Hz, HDR (10-bit)&lt;/td&gt;&lt;td&gt;△ Works with DSC compression. DisplayPort 1.4 carries 25.92 Gbps as video. DSC only works when both the source and the monitor support it&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=dp14&amp;amp;video-port-calc-mon=dp14&amp;amp;video-port-calc-res=4k&amp;amp;video-port-calc-hz=144&amp;amp;video-port-calc-depth=10#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.1, HDMI 2.1, 4K, 144Hz, HDR (10-bit)&lt;/td&gt;&lt;td&gt;✓ Fits uncompressed. HDMI 2.1 carries 42.66 Gbps as video. Every HDMI 2.1 feature is optional, so check that the monitor takes this resolution and refresh rate over HDMI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=hdmi21&amp;amp;video-port-calc-mon=hdmi21&amp;amp;video-port-calc-res=4k&amp;amp;video-port-calc-hz=144&amp;amp;video-port-calc-depth=10#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 2.1 (UHBR20), DisplayPort 2.1 (UHBR20), 4K, 240Hz, HDR (10-bit)&lt;/td&gt;&lt;td&gt;✓ Fits uncompressed. DisplayPort 2.1 (UHBR20) carries 77.37 Gbps as video. UHBR20 over a passive DP80 cable has been limited to 1 m. The active DP80LL goes to 3 m (VESA)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=uhbr20&amp;amp;video-port-calc-mon=uhbr20&amp;amp;video-port-calc-res=4k&amp;amp;video-port-calc-hz=240&amp;amp;video-port-calc-depth=10#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 2.1 (UHBR13.5), DisplayPort 2.1 (UHBR13.5), 4K, 240Hz, HDR (10-bit)&lt;/td&gt;&lt;td&gt;△ Works with DSC compression. DisplayPort 2.1 (UHBR13.5) carries 52.22 Gbps as video. DSC only works when both the source and the monitor support it. For UHBR13.5, a passive DP54 cable works up to 2 m (VESA)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=uhbr13&amp;amp;video-port-calc-mon=uhbr13&amp;amp;video-port-calc-res=4k&amp;amp;video-port-calc-hz=240&amp;amp;video-port-calc-depth=10#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 1.4, DisplayPort 1.4, 1440p, 165Hz, SDR (8-bit)&lt;/td&gt;&lt;td&gt;✓ Fits uncompressed. DisplayPort 1.4 carries 25.92 Gbps as video&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=dp14&amp;amp;video-port-calc-mon=dp14&amp;amp;video-port-calc-res=1440p&amp;amp;video-port-calc-hz=165&amp;amp;video-port-calc-depth=8#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 1.4, HDMI 2.1, 4K, 120Hz, HDR (10-bit)&lt;/td&gt;&lt;td&gt;△ Works with DSC compression. DisplayPort 1.4 carries 25.92 Gbps as video. HDMI 2.1 carries 42.66 Gbps as video. DSC only works when both the source and the monitor support it. On a DP++ output a passive adapter works too. An active adapter works with or without DP++ (per Dell). The HDMI side needs HDMI 2.1 bandwidth, so pick an adapter or cable with HDMI 2.1 output. Every HDMI 2.1 feature is optional, so check that the monitor takes this resolution and refresh rate over HDMI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=dp14&amp;amp;video-port-calc-mon=hdmi21&amp;amp;video-port-calc-res=4k&amp;amp;video-port-calc-hz=120&amp;amp;video-port-calc-depth=10#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.1, DisplayPort 1.4, 1080p, 60Hz, SDR (8-bit)&lt;/td&gt;&lt;td&gt;△ Works if the adapter supports the format. HDMI 2.1 carries 42.66 Gbps as video. DisplayPort 1.4 carries 25.92 Gbps as video. HDMI to DisplayPort takes an active adapter, and a DisplayPort-to-HDMI adapter won’t work in reverse (per Dell). Check the adapter’s specs for the formats it supports. Every HDMI 2.1 feature is optional, so check that the monitor takes this resolution and refresh rate over HDMI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=hdmi21&amp;amp;video-port-calc-mon=dp14&amp;amp;video-port-calc-res=1080p&amp;amp;video-port-calc-hz=60&amp;amp;video-port-calc-depth=8#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.1, HDMI 2.1, 8K, 60Hz, HDR (10-bit)&lt;/td&gt;&lt;td&gt;△ Works with DSC compression. HDMI 2.1 carries 42.66 Gbps as video. DSC only works when both the source and the monitor support it. Every HDMI 2.1 feature is optional, so check that the monitor takes this resolution and refresh rate over HDMI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=hdmi21&amp;amp;video-port-calc-mon=hdmi21&amp;amp;video-port-calc-res=8k&amp;amp;video-port-calc-hz=60&amp;amp;video-port-calc-depth=10#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;USB-C (DP Alt Mode, DisplayPort 1.4), Not sure, DisplayPort 1.4, 4K, 60Hz, HDR (10-bit)&lt;/td&gt;&lt;td&gt;△ Depends on the connection. DisplayPort 1.4 carries 25.92 Gbps as video. DSC only works when both the source and the monitor support it. Check the device’s specs for “DisplayPort Alt Mode”, or a DP logo next to the port, to see if that USB-C outputs video. Since the connection is unknown, this can’t be confirmed. With all four lanes for video: ✓ Fits uncompressed. With two lanes shared with USB data: △ Works with DSC compression&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=usbc_dp14&amp;amp;video-port-calc-conn=unknown&amp;amp;video-port-calc-mon=dp14&amp;amp;video-port-calc-res=4k&amp;amp;video-port-calc-hz=60&amp;amp;video-port-calc-depth=10#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;USB-C (DP Alt Mode, DisplayPort 1.4), Not sure, HDMI 2.0, 4K, 60Hz, SDR (8-bit)&lt;/td&gt;&lt;td&gt;△ Depends on the connection. DisplayPort 1.4 carries 25.92 Gbps as video. HDMI 2.0 carries 14.4 Gbps as video. HDMI 2.0 has 1% to spare. It fits with PC timings (VESA CVT-RB2) but not with TV timings. The HDMI side fits within HDMI 2.0’s capacity. Check the device’s specs for “DisplayPort Alt Mode”, or a DP logo next to the port, to see if that USB-C outputs video. Since the connection is unknown, this can’t be confirmed. With all four lanes for video: △ Just fits uncompressed. With two lanes shared with USB data: △ Depends on the signal&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=usbc_dp14&amp;amp;video-port-calc-conn=unknown&amp;amp;video-port-calc-mon=hdmi20&amp;amp;video-port-calc-res=4k&amp;amp;video-port-calc-hz=60&amp;amp;video-port-calc-depth=8#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;USB-C (DP Alt Mode, DisplayPort 2.1 UHBR20), Not sure, DisplayPort 2.1 (UHBR20), 4K, 240Hz, HDR (10-bit)&lt;/td&gt;&lt;td&gt;△ Depends on the connection. DisplayPort 2.1 (UHBR20) carries 77.37 Gbps as video. DSC only works when both the source and the monitor support it. Check the device’s specs for “DisplayPort Alt Mode”, or a DP logo next to the port, to see if that USB-C outputs video. Since the connection is unknown, this can’t be confirmed. With all four lanes for video: ✓ Fits uncompressed. With two lanes shared with USB data: △ Works with DSC compression. UHBR20 over a passive DP80 cable has been limited to 1 m. The active DP80LL goes to 3 m (VESA)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=usbc_uhbr20&amp;amp;video-port-calc-conn=unknown&amp;amp;video-port-calc-mon=uhbr20&amp;amp;video-port-calc-res=4k&amp;amp;video-port-calc-hz=240&amp;amp;video-port-calc-depth=10#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;USB-C (DP Alt Mode, DisplayPort 2.1 UHBR20), All four lanes carry video (up to 80 Gbps), DisplayPort 2.1 (UHBR20), 4K, 240Hz, HDR (10-bit)&lt;/td&gt;&lt;td&gt;✓ Fits uncompressed. DisplayPort 2.1 (UHBR20) carries 77.37 Gbps as video. Check the device’s specs for “DisplayPort Alt Mode”, or a DP logo next to the port, to see if that USB-C outputs video. Calculated as a connection where all four lanes carry video (up to 80 Gbps). UHBR20 over a passive DP80 cable has been limited to 1 m. The active DP80LL goes to 3 m (VESA)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=usbc_uhbr20&amp;amp;video-port-calc-conn=lanes4&amp;amp;video-port-calc-mon=uhbr20&amp;amp;video-port-calc-res=4k&amp;amp;video-port-calc-hz=240&amp;amp;video-port-calc-depth=10#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.0, HDMI 2.0, 4K, 60Hz, SDR (8-bit)&lt;/td&gt;&lt;td&gt;△ Just fits uncompressed. HDMI 2.0 carries 14.4 Gbps as video. HDMI 2.0 has 1% to spare&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=hdmi20&amp;amp;video-port-calc-mon=hdmi20&amp;amp;video-port-calc-res=4k&amp;amp;video-port-calc-hz=60&amp;amp;video-port-calc-depth=8#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 (4K at 120Hz), HDMI 2.1, HDR (10-bit)&lt;/td&gt;&lt;td&gt;✓ Fits uncompressed. HDMI 2.1 carries 42.66 Gbps as video. Every HDMI 2.1 feature is optional, so check that the monitor takes this resolution and refresh rate over HDMI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=ps5&amp;amp;video-port-calc-mon=hdmi21&amp;amp;video-port-calc-depth=10#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 (4K at 120Hz), HDMI 2.0, HDR (10-bit)&lt;/td&gt;&lt;td&gt;✕ This port and version fall short (by this math). HDMI 2.0 carries 14.4 Gbps as video. With 4:2:0 chroma subsampling: ✕ This port and version fall short (by this math)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=ps5&amp;amp;video-port-calc-mon=hdmi20&amp;amp;video-port-calc-depth=10#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Switch 2 (4K at 60Hz), HDMI 2.0, SDR (8-bit)&lt;/td&gt;&lt;td&gt;△ Just fits uncompressed. HDMI 2.0 carries 14.4 Gbps as video. HDMI 2.0 has 1% to spare. Nintendo’s specs don’t state an HDMI version, so this uses HDMI 2.0’s capacity&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=sw2_4k&amp;amp;video-port-calc-mon=hdmi20&amp;amp;video-port-calc-depth=8#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Xbox Series S (1440p at 120Hz), HDMI 2.1, HDR (10-bit)&lt;/td&gt;&lt;td&gt;✓ Fits uncompressed. HDMI 2.1 carries 42.66 Gbps as video. Every HDMI 2.1 feature is optional, so check that the monitor takes this resolution and refresh rate over HDMI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-17-video-terminal/?video-port-calc-port=xss&amp;amp;video-port-calc-mon=hdmi21&amp;amp;video-port-calc-depth=10#video-port-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>hdmi</category><category>displayport</category><category>usb-c</category><category>thunderbolt</category></item><item><title>Peak Design Capture V3 and ProPad review — the clip that locks a DSLR onto your hip belt</title><link>https://aulvem.com/blog/2021-04-16-peakdesign-capture-propad/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-16-peakdesign-capture-propad/</guid><description>A few years with the Peak Design Capture V3 (CC-BK-3) and ProPad (PP-2). The main draw is locking a DSLR onto a hip belt so you can raise it to your eye in one motion. The lock is solid and almost rattle-free, though tolerances against some plates can produce a metallic click.</description><pubDate>Fri, 16 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported from the old VuePress blog. The Peak Design Capture is still in the current line-up in 2026, with successive minor revisions of the V3 generation on sale. The review angles here — comfort on a hip belt, lock robustness, the metallic click from plate tolerance — still apply.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Take a DSLR out for the day and every shot has the same tax: dig the camera out of the bag, miss the moment, repeat. Lay it flat inside the pack and by the time it is out, whatever you wanted to shoot has already moved on.&lt;/p&gt;
&lt;p&gt;To deal with this at the physical layer, I bought the &lt;strong&gt;Peak Design Capture V3 (CC-BK-3)&lt;/strong&gt; and &lt;strong&gt;ProPad (PP-2)&lt;/strong&gt; and have lived with them for a few years. The flow becomes: clip the camera directly onto a hip belt or backpack shoulder strap, lift it off one-handed, raise it to the eye.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--worth-the-money-if-you-raise-a-dslr-often&quot;&gt;The verdict — worth the money if you raise a DSLR often&lt;/h2&gt;
&lt;p&gt;Short answer: if you want out of strap-based carry, buy it. The lock is solid, the camera does not come loose while running, and after several years the button has never broken.&lt;/p&gt;
&lt;p&gt;The reason is that the &lt;strong&gt;number of actions before the camera is at your eye&lt;/strong&gt; drops sharply. Three actions — put the bag down, open the zip, lift the camera out — collapse to one: press the button and lift. With moving subjects that will not wait — kids, animals at a zoo, sports day — that difference is the gap between getting the shot and not.&lt;/p&gt;
&lt;p&gt;A few cautions before buying:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hands-free types who only shoot occasionally&lt;/strong&gt;: a strap for a few thousand yen is enough&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Full-frame + f/2.8 trinity users&lt;/strong&gt;: hanging that much weight off the hip swings while you walk. Routing the load through the shoulder is more realistic&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;People shooting in environments that need to be quiet&lt;/strong&gt;: tolerance between the plate and the clamp can produce a metallic click (more below)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;look-and-feel&quot;&gt;Look and feel&lt;/h2&gt;
&lt;p&gt;Short answer: machined aluminium, single matte black, edges rounded but the surface feels hard. The build quality sits above most camera accessories.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Peak Design Capture V3, front view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-PeakDesign-Capture-front.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The front is plain. A lock-release button sits in the centre, with hex-socket clamp screws to either side.&lt;/p&gt;

























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Spec&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Capture V3&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 13 × 13 × 3 cm&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Weight&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 144g (rated)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Material&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;machined aluminium&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Strap thickness&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;up to ~6.4mm (rated)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;img width=&quot;800&quot; alt=&quot;Peak Design Capture V3, back&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-PeakDesign-Capture-rear.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The back is flat. This is the face that meets the belt, and it is designed to have nothing catching. On a hip belt the surface ends up close to your skin and hip bone, so the cushion (ProPad) earns its place.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Peak Design Capture V3, side view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-PeakDesign-Capture-left.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;From the side the depth is shallow. On a hip belt it is small enough that the hem of a jacket can cover it.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Peak Design Capture V3, underside showing the plate slot&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-PeakDesign-Capture-back.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The underside is the female slot for the plate. The trapezoidal quick-release plate on the camera slides into here from above.&lt;/p&gt;
&lt;h3 id=&quot;propad-pp-2&quot;&gt;ProPad PP-2&lt;/h3&gt;
&lt;img width=&quot;800&quot; alt=&quot;Peak Design ProPad PP-2 on its own&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-PeakDesign-ProPad.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The cushion that sits between the Capture and a hip belt to spread the load.&lt;/p&gt;





















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Spec&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;ProPad PP-2&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 17 × 9 × 3 cm&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Weight&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 36g (rated)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Material&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;cushion + hook-and-loop&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The cushion is not overly thick, and once the belt is tightened it sits flush against the hip. Even when I worked up a sweat the hook-and-loop did not loosen.&lt;/p&gt;
&lt;h2 id=&quot;what-worked&quot;&gt;What worked&lt;/h2&gt;
&lt;p&gt;Short answer: the motion to bring the camera to your eye is at its shortest / the lock is genuinely robust / nothing has broken over several years.&lt;/p&gt;
&lt;h3 id=&quot;one-handed-one-action-to-ready&quot;&gt;One-handed, one-action to ready&lt;/h3&gt;
&lt;p&gt;The biggest single win. &lt;strong&gt;Hold the lock-release button while you pull the camera up — done&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Unlike pulling it out of a bag, by the time it is up it is already in shooting position. With kids or animals that move unpredictably, the two or three seconds saved decide whether the shot exists. The effect has been largest for travel, sports day, the zoo, and hiking.&lt;/p&gt;
&lt;h3 id=&quot;the-lock-does-not-open-unless-you-mean-it&quot;&gt;The lock does not open unless you mean it&lt;/h3&gt;
&lt;p&gt;If it is one-handed in one motion, the obvious worry is “will it pop open while I am walking?” Over several years of use, that &lt;strong&gt;has never happened&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The lock geometry will not allow vertical removal without the button being pressed. Run, jump — as long as nothing touches the button, the camera stays put. Press it intentionally and it slides out cleanly. The on/off distinction is unambiguous, with no nagging worry about accidental release.&lt;/p&gt;
&lt;h3 id=&quot;the-button-is-built-into-the-body-so-it-cannot-be-lost&quot;&gt;The button is built into the body, so it cannot be lost&lt;/h3&gt;
&lt;p&gt;A generic camera clip I had used before put the lock-release button on a removable cap. Within six months it had gone missing and the clip was unusable.&lt;/p&gt;
&lt;p&gt;On the Peak Design side the button is &lt;strong&gt;fully integrated into the body&lt;/strong&gt; — you cannot pop it off even if you try. Serviceability suffers in exchange, but the field-loss risk drops to zero, and in real use that matters.&lt;/p&gt;
&lt;h3 id=&quot;arca-swiss-plates-work-too&quot;&gt;Arca-Swiss plates work too&lt;/h3&gt;
&lt;p&gt;The standard Peak Design plate has an Arca-Swiss-compatible cross section, so if your tripod head already takes Arca-Swiss clamps, the same plate goes straight onto the tripod with no swapping.&lt;/p&gt;
&lt;p&gt;Third-party Arca-Swiss plates have also worked in the slot. If you are buying a new kit it is safest to stay all Peak Design, but if you have already standardised your tripod side on Arca, the cost of moving over is low.&lt;/p&gt;
&lt;h2 id=&quot;what-didnt&quot;&gt;What didn’t&lt;/h2&gt;
&lt;p&gt;Short answer: third-party plates can rattle metallically / heavy rigs swing on a hip belt / the standard plate slides on its own bottom face.&lt;/p&gt;
&lt;h3 id=&quot;tolerance-against-third-party-plates-causes-a-metallic-rattle&quot;&gt;Tolerance against third-party plates causes a metallic rattle&lt;/h3&gt;
&lt;p&gt;The plate slot is built with some clearance, presumably so that it will accept a range of compatible plates.&lt;/p&gt;
&lt;p&gt;With the genuine Peak Design plate there is almost no play, but a third-party Arca-Swiss plate can produce a &lt;strong&gt;light metallic click-clack&lt;/strong&gt;, more obvious the faster you walk. For environments where silence matters — bird photography, say — the realistic options are to standardise on Peak Design plates, or to take up the slack with a thin strip of PTFE tape.&lt;/p&gt;
&lt;h3 id=&quot;heavy-lenses-swing-on-a-hip-belt&quot;&gt;Heavy lenses swing on a hip belt&lt;/h3&gt;
&lt;p&gt;Mount a full-frame body with a 70–200mm f/2.8-class lens on the hip and it bounces up and down with every step. This is not really a problem with Capture; it is the physical limit of hanging that much weight off a hip belt at all.&lt;/p&gt;
&lt;p&gt;In practice, for rigs that heavy, move the Capture &lt;strong&gt;onto a backpack shoulder strap&lt;/strong&gt;, or pair it with a regular strap to share the load. Hip-belt use stays comfortable up to about mirrorless plus a prime or a standard zoom.&lt;/p&gt;
&lt;h3 id=&quot;the-standard-plate-slides-on-a-tripod-head&quot;&gt;The standard plate slides on a tripod head&lt;/h3&gt;
&lt;p&gt;The base of the standard plate is flat, with no cork or rubber anti-slip layer (may vary by unit).&lt;/p&gt;
&lt;p&gt;If you set the camera down on its bottom directly, or onto a slick tripod head, there is a slight slip. Clamped down it is fine, but a casual drop onto a desk can start sliding, so worth knowing.&lt;/p&gt;
&lt;h2 id=&quot;how-to-mount-and-use-it&quot;&gt;How to mount and use it&lt;/h2&gt;
&lt;p&gt;Short answer: open the clamp, thread the belt, tighten — 30 seconds. The plate stays on the tripod thread once you put it on and basically never comes off.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Peak Design Capture V3 with the clamp loosened and opened&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-PeakDesign-Capture-open.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;First, loosen the two clamp screws with a hex key. You can work from either side. With the screws loose, the upper half rotates open and clears a path for the belt.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Peak Design Capture and ProPad partway through assembly&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-PeakDesign-Capture-ProPad-midway.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;For hip-belt use, open the ProPad and sandwich the Capture in along the printed guide on the inside. Thread the whole sandwich onto the belt.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Peak Design Capture and ProPad fully attached to a belt&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-PeakDesign-Capture-ProPad-Complete.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;Close the ProPad, swing the Capture’s upper half back into place, and retighten the screws. Done — 30 seconds once you know the moves.&lt;/p&gt;
&lt;h3 id=&quot;fitting-the-camera-plate&quot;&gt;Fitting the camera plate&lt;/h3&gt;
&lt;img width=&quot;800&quot; alt=&quot;Peak Design standard plate, top side&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-plate.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;On the camera side, screw the quick-release plate into the tripod thread with the 1/4-inch screw. Once it is on, it basically stays on.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Peak Design plate from the side showing its trapezoidal base&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-plate-side.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;Seen from the side, the base is trapezoidal (Arca-Swiss compatible). That dovetail slides into the matching female profile inside the Capture.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Peak Design plate sliding into the Capture&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-PeakDesign-Capture-ProPad-plate-midway.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;Press the black cylindrical button on the side of the Capture, then drop the plate in from above.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Peak Design Capture with the plate locked in&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-PeakDesign-Capture-ProPad-plate.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;Push it all the way down, release the button, and the lock engages. Removing it uses the same button in reverse.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;A GoPro mounted on the Peak Design Capture&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-PeakDesign-Capture-ProPad-plate-Complete.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;A GoPro will also fit, given an adapter mount with a 1/4-inch thread. In practice, though, the main use case is mirrorless or DSLR carry on a hip belt, not action cams.&lt;/p&gt;
&lt;h2 id=&quot;compared-with-camera-belts-and-sling-harnesses&quot;&gt;Compared with camera belts and sling harnesses&lt;/h2&gt;
&lt;p&gt;Short answer: Capture locks the camera flush to your body, a harness slings it off your shoulder for a fast lift, a neck strap just hangs it from your neck — they are answers to different questions.&lt;/p&gt;





















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;Peak Design Capture V3&lt;/th&gt;&lt;th&gt;Sling harness (general)&lt;/th&gt;&lt;th&gt;Neck strap (general)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Mount position&lt;/td&gt;&lt;td&gt;Hip belt or shoulder strap&lt;/td&gt;&lt;td&gt;Shoulder / under arm&lt;/td&gt;&lt;td&gt;Neck&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bring-up motion&lt;/td&gt;&lt;td&gt;Press button, lift out&lt;/td&gt;&lt;td&gt;Lift the dangling camera&lt;/td&gt;&lt;td&gt;Lift the dangling camera&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hands fully free?&lt;/td&gt;&lt;td&gt;Yes — locked in place&lt;/td&gt;&lt;td&gt;No — still swings&lt;/td&gt;&lt;td&gt;No — still swings&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Stability while running or jumping&lt;/td&gt;&lt;td&gt;High (no swing)&lt;/td&gt;&lt;td&gt;Medium (strap rebound)&lt;/td&gt;&lt;td&gt;Low (camera flails)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Heavy lenses&lt;/td&gt;&lt;td&gt;Swings on a hip belt&lt;/td&gt;&lt;td&gt;Good — shoulder absorbs it&lt;/td&gt;&lt;td&gt;Average&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Noise&lt;/td&gt;&lt;td&gt;Possible plate-tolerance click&lt;/td&gt;&lt;td&gt;Quiet&lt;/td&gt;&lt;td&gt;Quiet&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Price band (at the time of writing)&lt;/td&gt;&lt;td&gt;~18,000–20,000 yen&lt;/td&gt;&lt;td&gt;~5,000–15,000 yen&lt;/td&gt;&lt;td&gt;~2,000–5,000 yen&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;“I want the absolute shortest path to my eye” and “I want both hands genuinely free” both point at Capture. “I want to walk with the camera hanging off me all day” leans toward a harness, which is less tiring over long stretches.&lt;/p&gt;
&lt;p&gt;For an adjacent piece in the same camera-accessory category, I also wrote up the &lt;a href=&quot;https://aulvem.com/blog/2021-03-03-jobygorillapod-jb01542-pkk/&quot;&gt;JOBY GorillaPod JB01542-PKK&lt;/a&gt;, which is a small flexible tripod for wrapping around a pillar or shelf. That sits on the desk-or-pillar layer rather than the body-mounted layer, so it is a separate choice from Capture.&lt;/p&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Peak Design Capture V3 (CC-BK-3)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-16-peakdesign-capture-propad/2021-04-16-PeakDesign-Capture-ProPad.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Peak Design Capture V3 (CC-BK-3)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B07818Z4Q5?q=Peak+Design+Capture+V3+%28CC-BK-3%29&amp;amp;l=en&quot; aria-label=&quot;View Peak Design Capture V3 (CC-BK-3) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for Peak Design ProPad (PP-2)&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Peak Design ProPad (PP-2)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0781S64XJ?q=Peak+Design+ProPad+%28PP-2%29&amp;amp;l=en&quot; aria-label=&quot;View Peak Design ProPad (PP-2) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. What cameras and packs does it fit?&lt;/strong&gt;
A. The clamp is rated for straps and belts up to about 6.4mm thick. That covers the shoulder straps on most camera backpacks and hip belts up to roughly 5cm wide. On the camera side, anything with a 1/4-inch tripod thread will work — mirrorless, DSLR, or compact. Heavy rigs (a full-frame body with a telephoto, for example) put real load on the shoulder or hip, so pairing with a shoulder strap is the practical call.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Is it better than a harness or a sling strap?&lt;/strong&gt;
A. They solve different problems. A harness or sling strap is for “hang it off the shoulder and bring it up fast”; the camera always dangles from your body. Capture is for “lock it flush to your body” and is strong when you want both hands fully free — hiking, shooting with kids. The way the weight is routed is also different: a harness rides on the shoulder, Capture distributes load through the hip (via the ProPad). People who shoot a lot on a tripod, or who swap lenses often, frequently end up using both.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Do I actually need the ProPad?&lt;/strong&gt;
A. For hip-belt use, effectively yes. With Capture alone, the back of the clamp digs straight into the belt, and after a long walk it presses on the hip bone and hurts. ProPad sandwiches the belt in cushioning so the load spreads out around the waist. For backpack-shoulder use the cushion is not needed and Capture on its own is enough. The rule of thumb is “ProPad for hip, Capture alone for shoulder.”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Does it hold up over years of use?&lt;/strong&gt;
A. After several years of daily use, the lock mechanism has never failed. The clamp screws, the lock button, the aluminium body — none of them show meaningful wear. By way of comparison, a generic clip from another brand I had used before had a removable lock button, and within six months the button was lost or broken. On the Peak Design side the button is built into the body and cannot be removed, so the loss risk is structurally zero.&lt;/p&gt;
&lt;h2 id=&quot;verdict--if-you-raise-a-dslr-often-the-day-to-day-changes&quot;&gt;Verdict — if you raise a DSLR often, the day-to-day changes&lt;/h2&gt;
&lt;p&gt;It is the kind of accessory that picks its users, but for the right use case it is hard to go back to strap-only carry.&lt;/p&gt;
&lt;p&gt;It is an easy recommendation for &lt;strong&gt;kids, travel, the zoo, hiking&lt;/strong&gt; — anywhere you want both hands free with a DSLR ready to come up in one motion. Conversely, if the camera only comes out a few times a month, a neck strap for a few thousand yen will do the job.&lt;/p&gt;
&lt;p&gt;The two cautions are the metallic click from plate tolerance and hip-belt swing with heavy lenses. The first is fixed by standardising on Peak Design plates; the second by moving over to a shoulder-strap mount.&lt;/p&gt;</content:encoded><category>reviews</category><category>camera-equipment</category></item><item><title>Vue.js basics — v-if and v-for</title><link>https://aulvem.com/blog/2021-04-15-vue-v-if/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-15-vue-v-if/</guid><description>A primer on Vue.js template directives for conditional rendering and list rendering — v-if / v-else / v-else-if, v-show for visibility toggles, v-for with the :key attribute, and when to reach for v-if versus v-show.</description><pubDate>Thu, 15 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: this post was first written for Vue 2 / Options API. In 2026, Vue 3 with the Composition API (&lt;code&gt;&amp;lt;script setup&amp;gt;&lt;/code&gt;) is the default, but the template syntax for v-if / v-else / v-for hasn’t changed, so the shape of the examples below still maps over.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A short reference for the Vue.js directives that handle conditional rendering and iteration.&lt;/p&gt;
&lt;p&gt;The mustache syntax and v-bind are covered in a separate post.&lt;/p&gt;
&lt;h2 id=&quot;the-short-answer&quot;&gt;The short answer&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;v-if&lt;/strong&gt;: renders the element only when the condition is truthy. Pairs with &lt;code&gt;v-else&lt;/code&gt; / &lt;code&gt;v-else-if&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;v-show&lt;/strong&gt;: toggles visibility through CSS &lt;code&gt;display&lt;/code&gt;. Suited to elements that flip on and off often&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;v-for&lt;/strong&gt;: iterates over an array. Always pass &lt;code&gt;:key&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;v-if&quot;&gt;v-if&lt;/h2&gt;
&lt;p&gt;v-if &lt;strong&gt;renders an element only when the expression is truthy&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;It’s common in real work — UI that needs to differ between mobile and desktop, or between logged-in and logged-out states, is the typical case.&lt;/p&gt;
&lt;h3 id=&quot;basic-usage&quot;&gt;Basic usage&lt;/h3&gt;
&lt;p&gt;v-if is written as an attribute on the target element, with the condition as its value.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;The snippet below decides inside the template whether the block renders.&lt;/p&gt;
&lt;p&gt;In practice this displays &lt;strong&gt;This is a sample.&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; v-if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;sampleNum === 1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    サンプルです。&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      sampleNum: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;v-else&quot;&gt;v-else&lt;/h3&gt;
&lt;p&gt;v-if accepts an else branch in the same way a regular if statement does.&lt;/p&gt;
&lt;p&gt;Just add &lt;code&gt;v-else&lt;/code&gt; as an attribute on the next element.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;This snippet displays &lt;strong&gt;else is shown.&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; v-if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;sampleNum === 0&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      サンプルです。&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; v-else&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      elseが表示です。&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      sampleNum: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;One gotcha: &lt;code&gt;v-else&lt;/code&gt; has to sit on the element directly after the &lt;code&gt;v-if&lt;/code&gt;. Anything in between breaks the pairing.&lt;/p&gt;
&lt;h3 id=&quot;v-else-if&quot;&gt;v-else-if&lt;/h3&gt;
&lt;p&gt;else-if works alongside else.&lt;/p&gt;
&lt;p&gt;The form is the same — add &lt;code&gt;v-else-if&lt;/code&gt; as the attribute.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;This snippet displays &lt;strong&gt;sampleNum is 1.&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; v-if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;sampleNum === 0&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      サンプルです。&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; v-else-if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;sampleNum === 1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      sampleNumは1です。&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      sampleNum: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;v-show&quot;&gt;v-show&lt;/h3&gt;
&lt;p&gt;v-show looks similar to v-if from the outside, but the mechanics are different.&lt;/p&gt;
&lt;p&gt;The syntax matches v-if — write &lt;code&gt;v-show=&amp;quot;...&amp;quot;&lt;/code&gt; as an attribute.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;The difference between v-if and v-show is &lt;strong&gt;whether the DOM node is added and removed, or just hidden with &lt;code&gt;display&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;v-if creates the element when the condition turns truthy and removes it from the DOM when the condition turns falsy. v-show keeps the element in the DOM from the start and only toggles &lt;code&gt;display: none&lt;/code&gt;. As a result, the toggle cost is lower with v-show, while the initial-render cost is lower with v-if.&lt;/p&gt;
&lt;p&gt;A rough rule of thumb:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Element that’s likely falsy at first paint and rarely shown after — v-if&lt;/li&gt;
&lt;li&gt;Toggle UI that flips on and off frequently — v-show&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that v-show leans on the &lt;code&gt;display&lt;/code&gt; property, so it doesn’t compose with &lt;code&gt;&amp;lt;template&amp;gt;&lt;/code&gt; elements or with &lt;code&gt;v-else&lt;/code&gt;. In those cases, use v-if.&lt;/p&gt;
&lt;h2 id=&quot;v-for&quot;&gt;v-for&lt;/h2&gt;
&lt;p&gt;v-for &lt;strong&gt;iterates over an array or object&lt;/strong&gt; and renders the template once per entry.&lt;/p&gt;
&lt;p&gt;It maps closely to a JavaScript for loop — Vue lays out the same template for each item in the list.&lt;/p&gt;
&lt;p&gt;The form is &lt;code&gt;v-for=&amp;quot;(item, index) in list&amp;quot;&lt;/code&gt;. Pass a unique value to &lt;code&gt;:key&lt;/code&gt; so Vue can diff the list correctly.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;This snippet displays &lt;strong&gt;num is 1, index is 0. num is 2, index is 1.&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; v-for&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;(num, i) in numList&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; :key&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;i&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      中身は{{ num }}, indexは{{ i }}。&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      numList: [&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;wrapping-up&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;v-if creates or removes the element based on the condition; v-show keeps the element and hides it with CSS. v-for needs &lt;code&gt;:key&lt;/code&gt; to iterate cleanly. The template syntax carries over to Vue 3 unchanged, so this same shape works once you move to the Composition API.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Related posts&lt;/strong&gt;:&lt;/p&gt;</content:encoded><category>build</category><category>JavaScript</category><category>Vue.js</category><category>v-if</category><category>v-for</category></item><item><title>Getting started with Vue.js — v-bind basics, explained</title><link>https://aulvem.com/blog/2021-04-14-vue-v-bind/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-14-vue-v-bind/</guid><description>A step-by-step intro to Vue.js&apos;s own HTML notation for newcomers: the mustache tag ({{ }}), the v-bind directive, its shorthand colon form (:), and binding multiple attributes at once — each with a runnable code example.</description><pubDate>Wed, 14 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026-05-16 update&lt;/strong&gt;: An older post. The bones still hold up, but the tool UI and versions are from the original writing — newer releases may differ.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A short intro to &lt;strong&gt;Vue.js’s own HTML notation&lt;/strong&gt;, written for people picking up Vue for the first time.&lt;/p&gt;
&lt;h2 id=&quot;the-takeaway&quot;&gt;The takeaway&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;mustache tag&lt;/strong&gt; (&lt;code&gt;{{ }}&lt;/code&gt;) outputs script-side variables into HTML&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;v-bind&lt;/strong&gt; is a directive that binds attributes to dynamic expressions&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:&lt;/code&gt; is the shorthand prefix for &lt;code&gt;v-bind:&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Array notation lets you apply multiple classes or styles at once&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;mustache-tag&quot;&gt;Mustache tag&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;The mustache tag is for surfacing variables or function results — defined in &lt;code&gt;script&lt;/code&gt; — inside the HTML.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You use it by writing &lt;code&gt;{{ }}&lt;/code&gt; somewhere in the template.&lt;/p&gt;
&lt;p&gt;The code below defines &lt;code&gt;displayText&lt;/code&gt; in script and prints it from HTML.&lt;/p&gt;
&lt;p&gt;When you run it, the output reads &lt;strong&gt;文字列です。&lt;/strong&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  {{ displayText }}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      displayText: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;文字列です。&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That’s the simplest possible form.&lt;/p&gt;
&lt;p&gt;The example uses a string variable, but the same syntax accepts an object.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  {{ displayObj }}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      displayObj: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        text: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;文字列です。&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Worth noting: running this prints &lt;code&gt;{ text: &amp;#39;文字列です。&amp;#39; }&lt;/code&gt; literally.&lt;/p&gt;
&lt;p&gt;To render &lt;strong&gt;文字列です。&lt;/strong&gt; on its own, write &lt;code&gt;displayObj.text&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;v-bind&quot;&gt;v-bind&lt;/h2&gt;
&lt;p&gt;v-bind is the main thing this post is about.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;v-bind lets you bind attributes to dynamic logic with almost no ceremony.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Toggling &lt;code&gt;class&lt;/code&gt; dynamically opens up a lot of expressive room on the page, so this is where it gets used most.&lt;/p&gt;
&lt;h3 id=&quot;basic-v-bind-usage&quot;&gt;Basic v-bind usage&lt;/h3&gt;
&lt;p&gt;The code below applies the &lt;code&gt;activeClass&lt;/code&gt; class based on the boolean &lt;code&gt;isActive&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;When you run it, &lt;strong&gt;文字列です。&lt;/strong&gt; appears in white text.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; v-bind:class&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;{ activeClass: isActive }&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    サンプルです。&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      isActive: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  .activeClass&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    color&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;#fff&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;isActive&lt;/code&gt; is defined in script, and the HTML’s &lt;code&gt;v-bind:class&lt;/code&gt; evaluates it.&lt;/p&gt;
&lt;p&gt;Here &lt;code&gt;isActive&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;, so the class applies. Flip it to &lt;code&gt;false&lt;/code&gt; and the text renders in black.&lt;/p&gt;
&lt;h3 id=&quot;v-bind-shorthand&quot;&gt;v-bind shorthand&lt;/h3&gt;
&lt;p&gt;v-bind has a shorthand.&lt;/p&gt;
&lt;p&gt;Prefix the attribute with &lt;code&gt;:&lt;/code&gt; and v-bind kicks in.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;The code below applies the &lt;code&gt;activeClass&lt;/code&gt; class based on the boolean &lt;code&gt;isActive&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;When you run it, &lt;strong&gt;文字列です。&lt;/strong&gt; appears in black text.&lt;/p&gt;
&lt;p&gt;The reason it’s black: the expression uses &lt;code&gt;!&lt;/code&gt; to negate the value.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; :class&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;{ activeClass: !isActive }&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    サンプルです。&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      isActive: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  .activeClass&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    color&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;#fff&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;multiple-v-bind&quot;&gt;Multiple v-bind&lt;/h3&gt;
&lt;p&gt;To bind more than one class condition on a single attribute, wrap the expressions in an array.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;The code below applies both &lt;code&gt;activeClass&lt;/code&gt; and &lt;code&gt;sampleClass&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;When you run it, &lt;strong&gt;文字列です。&lt;/strong&gt; appears in white text.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; :class&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;[{ activeClass: isActive }, { sampleClass: sampleNum === 1 }]&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    サンプルです。&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      isActive: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      sampleNum: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  .activeClass&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    color&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;#fff&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  .sampleClass&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    width&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Each entry is a normal JS expression, so comparison operators are fair game.&lt;/p&gt;
&lt;p&gt;v-bind works on essentially any attribute. The ones it ends up on most often are &lt;strong&gt;class, style, and src&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;closing&quot;&gt;Closing&lt;/h2&gt;
&lt;p&gt;That’s the mustache tag and v-bind in Vue.js — the foundation everything else builds on.&lt;/p&gt;
&lt;p&gt;Worth getting comfortable with before moving on.&lt;/p&gt;</content:encoded><category>build</category><category>JavaScript</category><category>Vue.js</category><category>v-bind</category></item><item><title>Sennheiser HD 598 SR review — open-back spaciousness and a fit that lasts for hours</title><link>https://aulvem.com/blog/2021-04-13-sennheiser-hd-598-sr/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-13-sennheiser-hd-598-sr/</guid><description>A hands-on review of the Sennheiser HD 598 SR open-back headphones after years of work and personal use. Strong on soundstage and long-session comfort; weak on isolation and price tier. With closed-back and wireless comparisons.</description><pubDate>Tue, 13 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported from the old VuePress blog. The HD 598 SR is an Amazon-exclusive black variant, and as of 2026 new-stock circulation has all but ended. On the open-back side, the HD 599 and HD 560S remain in the current lineup as natural successors. The review angles here — open-back soundstage, fit, and how it compares against closed-backs — should still be useful, so I kept the bones and only cleaned up the wording and structure.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have used the Sennheiser HD 598 SR open-back headphones for a long stretch of work and personal listening, and this is the write-up.&lt;/p&gt;
&lt;p&gt;For anyone who has not owned an open-back before, the first wall is the same: “sound leaks out, outside sound leaks in.” Whether you can live with that splits the verdict cleanly in two. If you can — at home, in your own room, doing remote work — the HD 598 SR is a more honest way to enjoy music than most closed-backs at the same price.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--still-a-working-pick-for-a-fixed-home-setup&quot;&gt;The verdict — still a working pick for a fixed home setup&lt;/h2&gt;
&lt;p&gt;Short answer: the strengths are the open-back spaciousness and the lightness over long sessions. The price for that is zero isolation and audible leakage, so it does not belong outside or in a shared room.&lt;/p&gt;
&lt;p&gt;Three reasons.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Wide soundstage&lt;/strong&gt;: as an open-back, the “inside-the-skull” feeling is muted. It pays off for film, streaming, and live recordings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Light fit&lt;/strong&gt;: the clamp is moderate, and the over-ear cups fully surround the ear, so multi-hour use does not tire you out&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Removable ear pads&lt;/strong&gt;: cleaning and replacement are easy, which suits long-term ownership&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On the other hand, look elsewhere if any of these apply:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You also want to use them outside or on a commute&lt;/strong&gt;: open-backs leak heavily in both directions and are unusable in public spaces&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You share a room and listen late at night&lt;/strong&gt;: someone seated next to you will faintly hear what you are playing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You need wireless&lt;/strong&gt;: the HD 598 SR is wired only, with no Bluetooth support&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-and-accessories&quot;&gt;Build and accessories&lt;/h2&gt;
&lt;p&gt;Short answer: the all-black finish reads as calm and restrained. As an Amazon-exclusive color, it is the one to pick if the cream of the standard HD 598 is not your taste.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Sennheiser HD 598 SR, front view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-13-sennheiser-hd-598-sr/2021-04-13-Sennheiser-HD-598-SR-point.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The HD 598 SR is the Amazon-exclusive variant of the HD 598, with the cream finish swapped for black. For most home and remote-work setups, the SR is the easier color to live with.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Sennheiser HD 598 SR, right side with logo&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-13-sennheiser-hd-598-sr/2021-04-13-Sennheiser-HD-598-SR-side.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The housings are vertically elongated ovals. If you are used to round earcups it looks unusual at first, but the shape follows the outline of the ear and settles in cleanly once worn.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Sennheiser HD 598 SR, bottom view with the cable jack&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-13-sennheiser-hd-598-sr/2021-04-13-Sennheiser-HD-598-SR-rear.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The cable is detachable and exits from the bottom of the right cup. Being able to swap only the cable when it eventually breaks is a real plus for long-term ownership.&lt;/p&gt;
&lt;p&gt;The bundled accessories are as follows.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;In the box&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3 m cable with a 6.3 mm stereo plug (for desktop amps and audio interfaces)&lt;/li&gt;
&lt;li&gt;1.2 m cable with a 3.5 mm straight plug (for PCs and phones)&lt;/li&gt;
&lt;li&gt;6.3 mm to 3.5 mm adapter&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;img width=&quot;800&quot; alt=&quot;Sennheiser HD 598 SR, top view with the L / R markings&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-13-sennheiser-hd-598-sr/2021-04-13-Sennheiser-HD-598-SR-RL.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The inside of the headband is cushioned. The L / R marks live on the inside as well, so you can tell the sides apart by feel in a dark room.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Sennheiser HD 598 SR headband adjustment&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-13-sennheiser-hd-598-sr/2021-04-13-Sennheiser-HD-598-SR-adjust.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The length adjustment is nearly continuous in feel, so larger heads fit without issue (the photo shows the headband at full extension).&lt;/p&gt;
&lt;h2 id=&quot;what-worked&quot;&gt;What worked&lt;/h2&gt;
&lt;p&gt;Short answer: the soundstage, the long-session comfort, and the ease of maintenance — those three carry the headphone.&lt;/p&gt;
&lt;h3 id=&quot;open-back-soundstage-and-an-honest-balance&quot;&gt;Open-back soundstage and an honest balance&lt;/h3&gt;
&lt;p&gt;As an open-back design, the HD 598 SR avoids the “stuffy, inside-the-skull” feeling closed-backs tend to have. There is a sense of air, closer to listening through speakers.&lt;/p&gt;
&lt;p&gt;Low end on an open-back will always sit below an equivalent closed-back by construction, but the HD 598 SR puts out what the music needs. Bass and kick do not vanish, and no genre falls apart.&lt;/p&gt;
&lt;p&gt;If your daily listening is EDM or hip-hop where the low end has to push the song, this is not the right fit. For most other listening — vocals, acoustic music, film, games — it stays enjoyable without forcing anything.&lt;/p&gt;
&lt;h3 id=&quot;over-ear-comfort-that-holds-up-over-long-sessions&quot;&gt;Over-ear comfort that holds up over long sessions&lt;/h3&gt;
&lt;p&gt;The combination of fully over-ear cups, an open-back chamber, and a moderate clamp means very little listening fatigue.&lt;/p&gt;
&lt;p&gt;Unlike in-ears or closed-backs, heat does not build up around or inside the ear, so it stays comfortable even in summer. Half a day of wearing them during remote work is genuinely low stress.&lt;/p&gt;
&lt;h3 id=&quot;tool-less-removable-ear-pads&quot;&gt;Tool-less, removable ear pads&lt;/h3&gt;
&lt;img width=&quot;800&quot; alt=&quot;Sennheiser HD 598 SR with the ear pads removed&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-13-sennheiser-hd-598-sr/2021-04-13-Sennheiser-HD-598-SR-disassembly.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;To remove a pad, orient the logo downward and pull it straight off (it comes free with a soft click). Cleaning and replacement are easy, and that pays back the longer you own the headphone.&lt;/p&gt;
&lt;p&gt;After a few years of use, swapping only the pads extends the life of the rest of the headphone. Sennheiser has supplied replacement pads for the HD 598 family for a long time.&lt;/p&gt;
&lt;h2 id=&quot;what-didnt&quot;&gt;What didn’t&lt;/h2&gt;
&lt;p&gt;Short answer: zero isolation, wired-only operation, and the practical difficulty of buying one new today.&lt;/p&gt;
&lt;h3 id=&quot;zero-isolation--not-for-outside-not-for-late-nights&quot;&gt;Zero isolation — not for outside, not for late nights&lt;/h3&gt;
&lt;p&gt;By construction, leakage in and out happens essentially without filtering.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People next to you can faintly hear what you are playing&lt;/li&gt;
&lt;li&gt;Voices and household sounds come straight in&lt;/li&gt;
&lt;li&gt;Noise cancellation is, of course, not on the table&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a design characteristic rather than a flaw — but it is the line item that decides whether the headphone is “wrong tool for the job.” For &lt;strong&gt;listening alone in your own room at home&lt;/strong&gt;, it is not an issue. For an office, a cafe, or a bedroom that shares a wall with family, this is not the headphone to choose.&lt;/p&gt;
&lt;h3 id=&quot;wired-only-no-bluetooth&quot;&gt;Wired only, no Bluetooth&lt;/h3&gt;
&lt;p&gt;By 2026 the default is wireless. The HD 598 SR is wired only, designed to plug straight into a PC, a desktop amp, or a phone.&lt;/p&gt;
&lt;p&gt;Phones no longer carry a 3.5 mm jack in most cases, so a USB-C or Lightning DAC dongle is an extra step in the chain.&lt;/p&gt;
&lt;h3 id=&quot;price-band-and-current-availability&quot;&gt;Price band and current availability&lt;/h3&gt;
&lt;p&gt;At the time of writing, the street price was around 20,000 yen. That is not entry-level.&lt;/p&gt;
&lt;p&gt;On top of that, as of 2026 new-stock circulation has effectively ended, which makes “buy new” hard to recommend. Looking at the successor open-backs — the HD 599 and the HD 560S — is the more realistic move.&lt;/p&gt;
&lt;h2 id=&quot;comparison-open-back-hd-598-sr-vs-same-price-closed-back--wireless&quot;&gt;Comparison: open-back HD 598 SR vs same-price closed-back / wireless&lt;/h2&gt;
&lt;p&gt;Short answer: the HD 598 SR wins on “at home, fixed setup, wired, soundstage-first.” Outside that, a different category is more comfortable.&lt;/p&gt;



























































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;HD 598 SR (open-back, wired)&lt;/th&gt;&lt;th&gt;Same-price closed-back&lt;/th&gt;&lt;th&gt;Same-price wireless (with ANC)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Soundstage&lt;/td&gt;&lt;td&gt;Wide&lt;/td&gt;&lt;td&gt;Narrower&lt;/td&gt;&lt;td&gt;Depends on model (typically narrower)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bass quantity&lt;/td&gt;&lt;td&gt;Enough for the music&lt;/td&gt;&lt;td&gt;Stronger&lt;/td&gt;&lt;td&gt;Strong (DSP-assisted)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Isolation&lt;/td&gt;&lt;td&gt;None (open-back)&lt;/td&gt;&lt;td&gt;High&lt;/td&gt;&lt;td&gt;High (with ANC)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sound leakage&lt;/td&gt;&lt;td&gt;Large&lt;/td&gt;&lt;td&gt;Small&lt;/td&gt;&lt;td&gt;Small&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Long-session fatigue&lt;/td&gt;&lt;td&gt;Low&lt;/td&gt;&lt;td&gt;Heat builds up&lt;/td&gt;&lt;td&gt;Battery weight adds up&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cable&lt;/td&gt;&lt;td&gt;Wired only&lt;/td&gt;&lt;td&gt;Mostly wired&lt;/td&gt;&lt;td&gt;Mostly wireless&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Outdoor / commute use&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Best fit&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Home remote work&lt;/td&gt;&lt;td&gt;Best fit&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes (needs charging)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The HD 598 SR’s winning lane is narrow: at home, in your own room, wired is fine, soundstage matters. For anyone who lands in that lane, the listening experience is clearly better than a same-price closed-back or a budget wireless.&lt;/p&gt;
&lt;p&gt;If there is any chance you will want to use them outside or on a commute, buying a closed-back or a wireless ANC pair from the start tends to have fewer regrets.&lt;/p&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Sennheiser HD 598 SR&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-13-sennheiser-hd-598-sr/2021-04-13-Sennheiser-HD-598-SR.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Sennheiser HD 598 SR&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B06WLGRYSF?q=Sennheiser+HD+598+SR&amp;amp;l=en&quot; aria-label=&quot;View Sennheiser HD 598 SR on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Can I plug them straight into a phone?&lt;/strong&gt;
A. If the phone still has a 3.5 mm jack, the 1.2 m cable plugs in directly. Most current phones have dropped the jack, so a USB-C or Lightning DAC dongle is needed separately. By impedance, the HD 598 SR is generally easy enough to drive from a phone.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How does it differ from a closed-back?&lt;/strong&gt;
A. The biggest gaps are soundstage and isolation. An open-back like the HD 598 SR has speaker-like air around the sound, without the boxed-in feeling. The trade is heavy leakage in both directions. A closed-back does the opposite — strong isolation and strong low end, at the cost of heat and pressure around the ear over long sessions. &lt;strong&gt;Open-back for listening alone in your own room, closed-back for outside or shared rooms&lt;/strong&gt; — that is the simple split.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How does it compare to wireless headphones?&lt;/strong&gt;
A. Setting tuning aside, the operational gap is the big one. Wireless asks you to manage charging, pairing, and latency, in exchange for the freedom of no cable. The HD 598 SR has no charging, no latency, and a stable connection by virtue of being wired, but the cable is always there. For a desk-bound remote-work setup, wired is often the easier choice.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Are they comfortable over long sessions?&lt;/strong&gt;
A. The combination of an over-ear cup, an open-back chamber, and a light clamp puts fatigue on the low end of the same-price range, in my experience. Unlike in-ears that push into the canal, these only surround the ear, so the pressure is mild. Comfort still varies by head shape, so trying a pair for ten or fifteen minutes in a store before committing is the safe move.&lt;/p&gt;
&lt;h2 id=&quot;verdict--for-someone-happy-to-keep-them-at-home&quot;&gt;Verdict — for someone happy to keep them at home&lt;/h2&gt;
&lt;p&gt;The HD 598 SR is a still-useful open-back if you are clear about the use case.&lt;/p&gt;
&lt;p&gt;It suits home listening — remote work, music, film, games in your own room — where the wide soundstage, the long-session comfort, and the easy maintenance all show up in daily use.&lt;/p&gt;
&lt;p&gt;It does not suit using them outside, sharing time with family in the same room, or operating wireless-first. For those uses, the design loses by construction.&lt;/p&gt;
&lt;p&gt;If you are buying new in 2026, new stock has thinned out, so it is worth looking at the successor lineup (HD 599 / HD 560S) at the same time. On the secondhand or clearance market, the HD 598 SR is “the black HD 598” — the sound is the same as the standard version, so picking on color preference is fine.&lt;/p&gt;
</content:encoded><category>reviews</category><category>audio</category><category>headphones</category><category>sennheiser</category></item><item><title>Elecom EX-G Bluetooth M-XGL10BBBK review — the budget mouse where grip differences show up most</title><link>https://aulvem.com/blog/2021-04-12-elecom-m-xgl10bbbk/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-12-elecom-m-xgl10bbbk/</guid><description>A review of the Elecom EX-G M-XGL10BBBK, a low-priced Bluetooth mouse offered in three sizes. The grip punches above its price; wireless stability and the configuration software are where the corners were cut.</description><pubDate>Mon, 12 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported from the old VuePress blog. The M-XGL10BBBK is still in circulation as a current budget Bluetooth mouse in 2026. The review angles here (size options, grip comfort, wireless stability) still apply. Spec values quoted are the manufacturer’s figures from the time of writing, so check the latest product page before buying.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I used the Elecom EX-G Bluetooth M-XGL10BBBK at work for about a year. This is a review combining what it felt like then with a 2026 re-read of the same points.&lt;/p&gt;
&lt;p&gt;In the “I don’t want to spend much on a mouse, but I do want to graduate from the one that came in the box” price band, this is the model where the grip difference is most obvious. Being able to pick S, M, or L is also rare at this price.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--the-best-first-step-up-if-you-want-size-options&quot;&gt;The verdict — the best “first step up” if you want size options&lt;/h2&gt;
&lt;p&gt;Short answer: if you’re moving up from a bundled cheap mouse, this is the one in its price band where the difference in grip is most clearly felt. The S/M/L sizing makes it easy to recommend to people with smaller hands too.&lt;/p&gt;
&lt;p&gt;The reason is that the ergonomic shape and the side buttons are both there — you can feel the design intent in your fingers the moment you pick it up. Coming from a generic bundled mouse, the way your hand stiffens during long sessions visibly improves.&lt;/p&gt;
&lt;p&gt;That said, look elsewhere if any of the following apply:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You prioritize wireless stability&lt;/strong&gt;: it is Bluetooth-only, so it will not be as steady as a USB-receiver model&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You want fine button customization&lt;/strong&gt;: the bundled software is more modest than the Logicool Options family&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gaming use&lt;/strong&gt;: response speed and sensor performance are tuned for office work&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build--a-mid-height-ergonomic-shape&quot;&gt;Build — a mid-height ergonomic shape&lt;/h2&gt;
&lt;p&gt;Short answer: a shape that sits between flat mice and tall sculpted mice. An asymmetric design that drops away on the right-click side, made to be palmed rather than clawed.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;ELECOM M-XGL10BBBK, top view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-12-elecom-m-xgl10bbbk/2021-04-12-ELECOM-M-XGL10BBBK.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The shape from above. Photographed in L size. You pick S, M, or L to match your hand.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;ELECOM M-XGL10BBBK, underside&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-12-elecom-m-xgl10bbbk/2021-04-12-ELECOM-M-XGL10BBBK-back.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The underside holds the power switch, pairing button, and battery cover. It runs on a single AA cell, and the manufacturer’s rated battery life is about 402 days (check the latest spec before buying).&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;ELECOM M-XGL10BBBK, front view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-12-elecom-m-xgl10bbbk/2021-04-12-ELECOM-M-XGL10BBBK-front.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;Seen from the front, the right-click side drops away noticeably. Not flat, not fully sculpted — a mid-height ergonomic shape.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;ELECOM M-XGL10BBBK, rear view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-12-elecom-m-xgl10bbbk/2021-04-12-ELECOM-M-XGL10BBBK-rear.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;From the back. The hump is modest — it sits in your whole palm. If you only ever claw-grip, the MX Master family will suit you better.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;ELECOM M-XGL10BBBK, right side&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-12-elecom-m-xgl10bbbk/2021-04-12-ELECOM-M-XGL10BBBK-right.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The right flank is wrapped in rubber, and the ring and little fingers stop there without sliding. Even with sweaty hands during long sessions, it does not slip.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;ELECOM M-XGL10BBBK, left side&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-12-elecom-m-xgl10bbbk/2021-04-12-ELECOM-M-XGL10BBBK-left.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The left flank has a thumb rest and two side buttons. The thumb area is shaped with a gentle convex curve that matches the natural shape of the thumb, so the thumb settles there without thinking about it.&lt;/p&gt;
&lt;h2 id=&quot;what-worked--grip-and-side-buttons-that-punch-above-the-price&quot;&gt;What worked — grip and side buttons that punch above the price&lt;/h2&gt;
&lt;p&gt;Short answer: a deliberate grip, side buttons, S/M/L sizing, and a light weight. The basics of a budget mouse, all present.&lt;/p&gt;
&lt;h3 id=&quot;a-grip-designed-to-be-held&quot;&gt;A grip designed to be held&lt;/h3&gt;
&lt;img width=&quot;800&quot; alt=&quot;ELECOM M-XGL10BBBK, scroll wheel&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-12-elecom-m-xgl10bbbk/2021-04-12-ELECOM-M-XGL10BBBK-wheel.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The defining trait of this mouse is that it pushes its budget into the way it feels in the hand.&lt;/p&gt;
&lt;p&gt;Moving over from a bundled mouse or a thousand-yen plain one, the difference is obvious the moment you pick it up. The rubber on the right flank, the convex thumb rest, the drop on the right-click side — none of them look dramatic on their own, but together they change how your hand feels at the end of a long day.&lt;/p&gt;
&lt;h3 id=&quot;side-buttons-make-back-a-one-finger-action&quot;&gt;Side buttons make “back” a one-finger action&lt;/h3&gt;
&lt;p&gt;Side buttons connect directly to workflow.&lt;/p&gt;
&lt;p&gt;The main use is browser back/forward. Web browsing, file managers, IDEs — all of them rely on it constantly, so having the buttons or not having them is a real gap. That alone is enough reason to leave a bundled mouse behind.&lt;/p&gt;
&lt;h3 id=&quot;s--m--l-sizing&quot;&gt;S / M / L sizing&lt;/h3&gt;
&lt;p&gt;Rare in this price band: three sizes to pick from.&lt;/p&gt;
&lt;p&gt;L suits adult-male-sized hands, S works for children and smaller hands, M sits in between. A mouse that does not fit your hand will tire you out no matter how much it cost, so size choices at this price are quietly useful.&lt;/p&gt;
&lt;h3 id=&quot;about-87-g-without-the-battery&quot;&gt;About 87 g without the battery&lt;/h3&gt;
&lt;p&gt;The rated weight is about 87 g without the battery.&lt;/p&gt;
&lt;p&gt;A mouse over 100 g changes how tired your arm gets across a full day, so for office work, light is right. Even with a AA inserted it lands on the lighter side by feel.&lt;/p&gt;
&lt;h2 id=&quot;what-didnt--the-bluetooth-only-trade-off&quot;&gt;What didn’t — the Bluetooth-only trade-off&lt;/h2&gt;
&lt;p&gt;Short answer: connection is Bluetooth-only, so the wireless link is less stable than a USB-receiver model. The lag right after waking from sleep is the most common case.&lt;/p&gt;
&lt;h3 id=&quot;pickup-delay-when-resuming-from-sleep&quot;&gt;Pickup delay when resuming from sleep&lt;/h3&gt;
&lt;p&gt;The biggest complaint.&lt;/p&gt;
&lt;p&gt;For the first few seconds after the PC wakes, the mouse sometimes does not respond. That is a Bluetooth-general behavior rather than a specific defect of this mouse, but coming from a USB-receiver model you will notice it.&lt;/p&gt;
&lt;p&gt;If you sleep and resume often (a laptop-and-dock setup, for example), it is safer to also consider models that ship with a USB receiver, such as the Logicool Unifying-compatible ones.&lt;/p&gt;
&lt;h3 id=&quot;modest-button-remapping-software&quot;&gt;Modest button-remapping software&lt;/h3&gt;
&lt;p&gt;It cannot do the fine-grained gestures the Logicool Options family allows. If you want to map the side buttons to anything beyond simple back/forward, you will end up leaning on a third-party Windows utility.&lt;/p&gt;
&lt;p&gt;That said, the basics (DPI, button presses) work reliably, so for office use without elaborate remapping, there is no real inconvenience.&lt;/p&gt;
&lt;h2 id=&quot;comparison--where-it-sits-against-the-same-and-higher-tiers&quot;&gt;Comparison — where it sits against the same and higher tiers&lt;/h2&gt;
&lt;p&gt;Short answer: at the budget end, it stands out on grip. Compared to higher-tier mice like the Logicool MX line, the side wheel and customization are where the gap shows up.&lt;/p&gt;



























































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;M-XGL10BBBK&lt;/th&gt;&lt;th&gt;Logicool mid-range (e.g. M650)&lt;/th&gt;&lt;th&gt;Sub-1,500-yen budget mice&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Price&lt;/td&gt;&lt;td&gt;Around 2,000 yen&lt;/td&gt;&lt;td&gt;Around 4,000–6,000 yen&lt;/td&gt;&lt;td&gt;Around 1,000 yen&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Connection&lt;/td&gt;&lt;td&gt;Bluetooth only&lt;/td&gt;&lt;td&gt;Bluetooth + USB receiver&lt;/td&gt;&lt;td&gt;Bluetooth or wired&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sizes&lt;/td&gt;&lt;td&gt;S / M / L&lt;/td&gt;&lt;td&gt;M / L (model-dependent)&lt;/td&gt;&lt;td&gt;Usually none&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Grip&lt;/td&gt;&lt;td&gt;Ergonomic shape, rubber grip&lt;/td&gt;&lt;td&gt;Ergonomic-leaning, smoother&lt;/td&gt;&lt;td&gt;Mostly flat&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Side buttons&lt;/td&gt;&lt;td&gt;2 buttons&lt;/td&gt;&lt;td&gt;2 buttons + custom&lt;/td&gt;&lt;td&gt;None to 2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Side wheel&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes on some models&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Battery&lt;/td&gt;&lt;td&gt;1 × AA (about 402 days rated)&lt;/td&gt;&lt;td&gt;1 × AA or rechargeable&lt;/td&gt;&lt;td&gt;AA or USB-powered&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Remapping software&lt;/td&gt;&lt;td&gt;Yes (modest)&lt;/td&gt;&lt;td&gt;Logi Options+ (full-featured)&lt;/td&gt;&lt;td&gt;Mostly none&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Put briefly: pick the M-XGL10BBBK for the “one step up from a cheap mouse” use case, and the Logicool MX line when you want another step up that includes Excel horizontal scrolling. For the comparison with higher-tier MX Master mice, see the &lt;a href=&quot;https://aulvem.com/blog/2021-03-09-logicool-mx-master-2s/&quot;&gt;Logitech MX MASTER 2S review&lt;/a&gt;.&lt;/p&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Elecom EX-G Bluetooth M-XGL10BBBK&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-12-elecom-m-xgl10bbbk/2021-04-12-ELECOM-M-XGL10BBBK.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Elecom EX-G Bluetooth M-XGL10BBBK&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0161YPB6G?q=Elecom+EX-G+Bluetooth+M-XGL10BBBK&amp;amp;l=en&quot; aria-label=&quot;View Elecom EX-G Bluetooth M-XGL10BBBK on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Does it work with phones and tablets, not just PCs?&lt;/strong&gt;
A. It connects over Bluetooth, so any OS with Bluetooth-mouse support will work — Windows, macOS, iPadOS 13.4 and later, parts of Android. Without a USB receiver, compatibility depends on the host OS’s Bluetooth support.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How far can the bundled software remap buttons?&lt;/strong&gt;
A. Elecom provides “Elecom Mouse Assistant,” which remaps the side buttons and similar (Windows only — check the latest supported OS list). It is not as fine-grained as the Logicool Options family — things like “different actions per gesture direction” are not on offer. For simple back/forward/copy/paste-level remapping, it is enough.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Is it less tiring for smaller hands?&lt;/strong&gt;
A. Pick the S size and it is less tiring. The L size, for smaller hands, actually makes the fingers stretch and tires the hand faster, so size choice matters. If you can, holding one in a store is the surest way to avoid regret.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Can it be used for gaming?&lt;/strong&gt;
A. Response speed and sensor performance are tuned for office work, so it is not a good fit for FPS or anything that needs precise input. For browser games or low-intensity MMOs, it is fine.&lt;/p&gt;
&lt;h2 id=&quot;verdict--a-fitting-upgrade-for-your-first-real-mouse&quot;&gt;Verdict — a fitting upgrade for your first “real” mouse&lt;/h2&gt;
&lt;p&gt;On the price-to-grip ratio, this is one of the standouts in the budget band.&lt;/p&gt;
&lt;p&gt;Especially for “I want to move on from a bundled mouse or a flat thousand-yen one” and “I want to try a mouse that fits my hand size without spending much,” this is a safe first pick.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;ELECOM M-XGL10BBBK, summary shot&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-12-elecom-m-xgl10bbbk/2021-04-12-ELECOM-M-XGL10BBBK-point.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The two things to keep in mind are the Bluetooth-only stability and the modest software. If you live in Excel horizontal scrolling or lean on custom gestures, you’ll be happier in the long run with the Logicool MX line.&lt;/p&gt;</content:encoded><category>reviews</category><category>mouse</category><category>elecom</category><category>pc-peripherals</category></item><item><title>How to Choose an iPad for Illustration: Paper Size and Pressure</title><link>https://aulvem.com/blog/2021-04-11-illustration-ipad/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-11-illustration-ipad/</guid><description>Among current iPads, to draw A5 at actual size with Apple Pencil Pro (the pressure-sensing pen), you need an 11-inch-class screen or larger; at that size it&apos;s borderline. On 13-inch-class models, both the screen&apos;s long and short sides exceed A5&apos;s by at least 48.5 mm, counting the room on both edges together. No current iPad shows a whole A4 page (210 × 297 mm) at actual size. Worked out from Apple&apos;s diagonal and resolution, even the largest 13-inch screen is only about 264.1 × 198.1 mm.</description><pubDate>Sun, 11 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Among current iPads, to draw A5 at actual size with Apple Pencil Pro (the pressure-sensing pen), you need an 11-inch-class screen or larger; at that size it’s borderline. On 13-inch-class models, both the screen’s long and short sides exceed A5’s by at least 48.5 mm, counting the room on both edges together.&lt;/p&gt;
&lt;p&gt;If A6 is enough and portability comes first, the 8.3 in model, though that screen is below CLIP STUDIO PAINT’s recommended 10.5 inches.&lt;/p&gt;
&lt;p&gt;No current iPad shows a whole A4 page (210 × 297 mm) at actual size. Worked out from Apple’s diagonal and resolution, even the largest 13-inch screen is only about 264.1 × 198.1 mm.&lt;/p&gt;
&lt;h2 id=&quot;screen-size-vs-paper-size-at-actual-size&quot;&gt;Screen size vs. paper size at actual size&lt;/h2&gt;
&lt;p&gt;A5 (148 × 210 mm) is shown whole at actual size on every model except the iPad mini. On the 11-inch iPad Air and iPad Pro and the base iPad (A16 chip), though, the short side has about 12 mm or less to spare, so it’s borderline.&lt;/p&gt;
&lt;p&gt;Assumptions: the whole screen is compared with the paper’s long and short sides, before app toolbars are subtracted. Fits means shown whole at actual size. Turning the iPad to portrait gives the same result.&lt;/p&gt;






















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Model&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Screen size&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;A6&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;A5&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;A4&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch iPad Pro&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 264.1 × 198.1 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Fits at actual size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Fits at actual size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits scaled to 88%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch iPad Air&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 262.1 × 196.5 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Fits at actual size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Fits at actual size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits scaled to 88%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;11-inch iPad Pro&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 232.1 × 160.0 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Fits at actual size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Fits at actual size (borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits scaled to 76%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;11-inch iPad Air&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 226.5 × 157.4 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Fits at actual size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Fits at actual size (borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits scaled to 74%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Base iPad (A16 chip)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 226.5 × 157.4 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Fits at actual size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Fits at actual size (borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits scaled to 74%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;iPad mini&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;about 176.2 × 115.7 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Fits at actual size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits scaled to 78%&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits scaled to 55%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;“Borderline” means the spare room is under 10% of the paper’s side.&lt;/p&gt;
&lt;p&gt;Apple doesn’t publish the screens’ width and height, so they’re calculated from the diagonal and resolution. Using Apple’s official ppi instead changes the result by less than 0.7 mm and doesn’t change whether a page fits at actual size.&lt;/p&gt;
&lt;p&gt;A4 has to be scaled down to fit whole. The largest scale is 88% on the 13-inch iPad Air and iPad Pro, and 55% on the iPad mini. At the largest scale in 1% steps, the tighter side of every model has at most 2.8 mm to spare, so it’s borderline.&lt;/p&gt;
&lt;p&gt;The iPad mini holds a whole page at actual size only up to A6 (105 × 148 mm). A5 fits when scaled to 78%, with only 0.2 mm to spare, so it’s borderline.&lt;/p&gt;
&lt;section id=&quot;ipad-paper-size-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;ipad-paper-size-calc-title&quot;&gt; &lt;h3 id=&quot;ipad-paper-size-calc-title&quot;&gt;Which iPad fits the paper size you draw at&lt;/h3&gt; &lt;p&gt;Pick the paper size you draw at, whether you need pressure or hover, and your app to see the smallest current iPad that holds a whole page at actual size. If none does, it shows the scale that fits, plus one iPad you can buy that fits.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;ipad_mini_128gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro) 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Tix2-t7iL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro) 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK46C5SG?q=iPad+mini+%28A17+Pro%29+128GB+Wi-Fi&amp;amp;us=B0DK3W6TV6&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro) 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;iPad mini (A17 Pro) 128GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro) 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Tix2-t7iL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro) 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK46C5SG?q=iPad+mini+%28A17+Pro%29+128GB+Wi-Fi&amp;amp;us=B0DK3W6TV6&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro) 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_mini_256gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro) 256GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61yOm9qrcVL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro) 256GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK44HSQW?q=iPad+mini+%28A17+Pro%29+256GB+Wi-Fi&amp;amp;us=B0DK3XZ1CH&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro) 256GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;iPad mini (A17 Pro) 256GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro) 256GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61yOm9qrcVL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro) 256GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK44HSQW?q=iPad+mini+%28A17+Pro%29+256GB+Wi-Fi&amp;amp;us=B0DK3XZ1CH&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro) 256GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_mini_512gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro) 512GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71ZWTs-KXBL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro) 512GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK43JC5Y?q=iPad+mini+%28A17+Pro%29+512GB+Wi-Fi&amp;amp;us=B0DK3XNKJ2&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro) 512GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;iPad mini (A17 Pro) 512GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro) 512GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71ZWTs-KXBL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro) 512GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK43JC5Y?q=iPad+mini+%28A17+Pro%29+512GB+Wi-Fi&amp;amp;us=B0DK3XNKJ2&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro) 512GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_ipad_128gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16) 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16) 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8HV6RT?q=iPad+%28A16%29+128GB+Wi-Fi&amp;amp;us=B0DZ77D5HL&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16) 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;iPad (A16) 128GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16) 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16) 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8HV6RT?q=iPad+%28A16%29+128GB+Wi-Fi&amp;amp;us=B0DZ77D5HL&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16) 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_ipad_256gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16) 256GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61TKpa5A6EL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16) 256GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8BQ2PB?q=iPad+%28A16%29+256GB+Wi-Fi&amp;amp;us=B0DZ77TPPD&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16) 256GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;iPad (A16) 256GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16) 256GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61TKpa5A6EL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16) 256GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8BQ2PB?q=iPad+%28A16%29+256GB+Wi-Fi&amp;amp;us=B0DZ77TPPD&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16) 256GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_ipad_512gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16) 512GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16) 512GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8FXFPG?q=iPad+%28A16%29+512GB+Wi-Fi&amp;amp;us=B0DZ75HDQ4&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16) 512GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;iPad (A16) 512GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16) 512GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16) 512GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8FXFPG?q=iPad+%28A16%29+512GB+Wi-Fi&amp;amp;us=B0DZ75HDQ4&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16) 512GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air11_128gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4) 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71oepHm9ALL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4) 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWJCR4K?q=11-inch+iPad+Air+%28M4%29+128GB+Wi-Fi&amp;amp;us=B0GQVPX1PJ&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4) 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Air (M4) 128GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4) 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71oepHm9ALL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4) 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWJCR4K?q=11-inch+iPad+Air+%28M4%29+128GB+Wi-Fi&amp;amp;us=B0GQVPX1PJ&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4) 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air11_256gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4) 256GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71hEv3IJm4L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4) 256GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWWWH1T?q=11-inch+iPad+Air+%28M4%29+256GB+Wi-Fi&amp;amp;us=B0GQV9ZGKL&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4) 256GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Air (M4) 256GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4) 256GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71hEv3IJm4L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4) 256GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWWWH1T?q=11-inch+iPad+Air+%28M4%29+256GB+Wi-Fi&amp;amp;us=B0GQV9ZGKL&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4) 256GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air11_512gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4) 512GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71Ux4BkTYKL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4) 512GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQX1MR9M?q=11-inch+iPad+Air+%28M4%29+512GB+Wi-Fi&amp;amp;us=B0GQVG81NP&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4) 512GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Air (M4) 512GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4) 512GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71Ux4BkTYKL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4) 512GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQX1MR9M?q=11-inch+iPad+Air+%28M4%29+512GB+Wi-Fi&amp;amp;us=B0GQVG81NP&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4) 512GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air11_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4) 1TB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71Uk80XwJhL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4) 1TB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWKGNFD?q=11-inch+iPad+Air+%28M4%29+1TB+Wi-Fi&amp;amp;us=B0GQVBDHBD&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4) 1TB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Air (M4) 1TB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4) 1TB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71Uk80XwJhL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4) 1TB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWKGNFD?q=11-inch+iPad+Air+%28M4%29+1TB+Wi-Fi&amp;amp;us=B0GQVBDHBD&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4) 1TB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air13_128gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4) 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4) 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVDGCD2?q=13-inch+iPad+Air+%28M4%29+128GB+Wi-Fi&amp;amp;us=B0GQVDGCD2&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4) 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Air (M4) 128GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4) 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4) 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVDGCD2?q=13-inch+iPad+Air+%28M4%29+128GB+Wi-Fi&amp;amp;us=B0GQVDGCD2&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4) 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air13_256gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4) 256GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4) 256GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVBYBDK?q=13-inch+iPad+Air+%28M4%29+256GB+Wi-Fi&amp;amp;us=B0GQVBYBDK&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4) 256GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Air (M4) 256GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4) 256GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4) 256GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVBYBDK?q=13-inch+iPad+Air+%28M4%29+256GB+Wi-Fi&amp;amp;us=B0GQVBYBDK&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4) 256GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air13_512gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4) 512GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4) 512GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVKG9TN?q=13-inch+iPad+Air+%28M4%29+512GB+Wi-Fi&amp;amp;us=B0GQVKG9TN&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4) 512GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Air (M4) 512GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4) 512GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4) 512GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVKG9TN?q=13-inch+iPad+Air+%28M4%29+512GB+Wi-Fi&amp;amp;us=B0GQVKG9TN&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4) 512GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air13_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4) 1TB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4) 1TB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVHZ64B?q=13-inch+iPad+Air+%28M4%29+1TB+Wi-Fi&amp;amp;us=B0GQVHZ64B&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4) 1TB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Air (M4) 1TB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4) 1TB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4) 1TB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVHZ64B?q=13-inch+iPad+Air+%28M4%29+1TB+Wi-Fi&amp;amp;us=B0GQVHZ64B&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4) 1TB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro11_256gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5) 256GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61OExjvn1+L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5) 256GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1K669?q=11-inch+iPad+Pro+%28M5%29+256GB+Wi-Fi&amp;amp;us=B0FWD1K669&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5) 256GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Pro (M5) 256GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5) 256GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61OExjvn1+L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5) 256GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1K669?q=11-inch+iPad+Pro+%28M5%29+256GB+Wi-Fi&amp;amp;us=B0FWD1K669&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5) 256GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro11_512gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5) 512GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5) 512GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1LZBB?q=11-inch+iPad+Pro+%28M5%29+512GB+Wi-Fi&amp;amp;us=B0FWD1LZBB&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5) 512GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Pro (M5) 512GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5) 512GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5) 512GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1LZBB?q=11-inch+iPad+Pro+%28M5%29+512GB+Wi-Fi&amp;amp;us=B0FWD1LZBB&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5) 512GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro11_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5) 1TB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5) 1TB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1LX4C?q=11-inch+iPad+Pro+%28M5%29+1TB+Wi-Fi&amp;amp;us=B0FWD1LX4C&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5) 1TB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Pro (M5) 1TB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5) 1TB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5) 1TB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1LX4C?q=11-inch+iPad+Pro+%28M5%29+1TB+Wi-Fi&amp;amp;us=B0FWD1LX4C&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5) 1TB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro11_2tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5) 2TB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5) 2TB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD7Q88T?q=11-inch+iPad+Pro+%28M5%29+2TB+Wi-Fi&amp;amp;us=B0FWD7Q88T&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5) 2TB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Pro (M5) 2TB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5) 2TB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5) 2TB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD7Q88T?q=11-inch+iPad+Pro+%28M5%29+2TB+Wi-Fi&amp;amp;us=B0FWD7Q88T&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5) 2TB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro13_256gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5) 256GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5) 256GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1MT5D?q=13-inch+iPad+Pro+%28M5%29+256GB+Wi-Fi&amp;amp;us=B0FWD1MT5D&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5) 256GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Pro (M5) 256GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5) 256GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5) 256GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1MT5D?q=13-inch+iPad+Pro+%28M5%29+256GB+Wi-Fi&amp;amp;us=B0FWD1MT5D&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5) 256GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro13_512gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5) 512GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5) 512GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD464T4?q=13-inch+iPad+Pro+%28M5%29+512GB+Wi-Fi&amp;amp;us=B0FWD464T4&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5) 512GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Pro (M5) 512GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5) 512GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5) 512GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD464T4?q=13-inch+iPad+Pro+%28M5%29+512GB+Wi-Fi&amp;amp;us=B0FWD464T4&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5) 512GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro13_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5) 1TB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5) 1TB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD6SPL8?q=13-inch+iPad+Pro+%28M5%29+1TB+Wi-Fi&amp;amp;us=B0FWD6SPL8&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5) 1TB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Pro (M5) 1TB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5) 1TB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5) 1TB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD6SPL8?q=13-inch+iPad+Pro+%28M5%29+1TB+Wi-Fi&amp;amp;us=B0FWD6SPL8&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5) 1TB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro13_2tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5) 2TB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5) 2TB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWCXMK75?q=13-inch+iPad+Pro+%28M5%29+2TB+Wi-Fi&amp;amp;us=B0FWCXMK75&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5) 2TB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Pro (M5) 2TB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5) 2TB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5) 2TB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWCXMK75?q=13-inch+iPad+Pro+%28M5%29+2TB+Wi-Fi&amp;amp;us=B0FWCXMK75&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5) 2TB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;order&quot;:[&quot;mini&quot;,&quot;ipad&quot;,&quot;air11&quot;,&quot;pro11&quot;,&quot;air13&quot;,&quot;pro13&quot;],&quot;tightRatio&quot;:0.1,&quot;models&quot;:{&quot;mini&quot;:{&quot;ja&quot;:&quot;iPad mini（A17 Pro）&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro)&quot;,&quot;w&quot;:176.2221703237213,&quot;h&quot;:115.71870672625651,&quot;diag&quot;:8.3,&quot;pencilPro&quot;:true,&quot;hover&quot;:true,&quot;promotion&quot;:false,&quot;mem&quot;:null,&quot;csp&quot;:&quot;std&quot;,&quot;weight&quot;:293},&quot;ipad&quot;:{&quot;ja&quot;:&quot;iPad（A16）&quot;,&quot;en&quot;:&quot;iPad (A16)&quot;,&quot;w&quot;:226.52000023809876,&quot;h&quot;:157.41220355528898,&quot;diag&quot;:10.86,&quot;pencilPro&quot;:false,&quot;hover&quot;:false,&quot;promotion&quot;:false,&quot;mem&quot;:null,&quot;csp&quot;:&quot;std&quot;,&quot;weight&quot;:477},&quot;air11&quot;:{&quot;ja&quot;:&quot;11インチiPad Air（M4）&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4)&quot;,&quot;w&quot;:226.52000023809876,&quot;h&quot;:157.41220355528898,&quot;diag&quot;:10.86,&quot;pencilPro&quot;:true,&quot;hover&quot;:true,&quot;promotion&quot;:false,&quot;mem&quot;:{&quot;min&quot;:12,&quot;max&quot;:12},&quot;csp&quot;:&quot;none&quot;,&quot;weight&quot;:464},&quot;pro11&quot;:{&quot;ja&quot;:&quot;11インチiPad Pro（M5）&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5)&quot;,&quot;w&quot;:232.1398906932149,&quot;h&quot;:160.00385854391837,&quot;diag&quot;:11.1,&quot;pencilPro&quot;:true,&quot;hover&quot;:true,&quot;promotion&quot;:true,&quot;mem&quot;:{&quot;min&quot;:12,&quot;max&quot;:16},&quot;csp&quot;:&quot;hires&quot;,&quot;weight&quot;:444},&quot;air13&quot;:{&quot;ja&quot;:&quot;13インチiPad Air（M4）&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4)&quot;,&quot;w&quot;:262.1740555965502,&quot;h&quot;:196.53457754821918,&quot;diag&quot;:12.9,&quot;pencilPro&quot;:true,&quot;hover&quot;:true,&quot;promotion&quot;:false,&quot;mem&quot;:{&quot;min&quot;:12,&quot;max&quot;:12},&quot;csp&quot;:&quot;none&quot;,&quot;weight&quot;:616},&quot;pro13&quot;:{&quot;ja&quot;:&quot;13インチiPad Pro（M5）&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5)&quot;,&quot;w&quot;:264.16,&quot;h&quot;:198.11999999999998,&quot;diag&quot;:13,&quot;pencilPro&quot;:true,&quot;hover&quot;:true,&quot;promotion&quot;:true,&quot;mem&quot;:{&quot;min&quot;:12,&quot;max&quot;:16},&quot;csp&quot;:&quot;hires&quot;,&quot;weight&quot;:579}},&quot;papers&quot;:{&quot;a6&quot;:{&quot;long&quot;:148,&quot;short&quot;:105,&quot;name&quot;:&quot;A6&quot;},&quot;a5&quot;:{&quot;long&quot;:210,&quot;short&quot;:148,&quot;name&quot;:&quot;A5&quot;},&quot;a4&quot;:{&quot;long&quot;:297,&quot;short&quot;:210,&quot;name&quot;:&quot;A4&quot;},&quot;a3&quot;:{&quot;long&quot;:420,&quot;short&quot;:297,&quot;name&quot;:&quot;A3&quot;}},&quot;csp&quot;:{&quot;req&quot;:3,&quot;rec&quot;:4,&quot;hires&quot;:6,&quot;display&quot;:10.5,&quot;storage&quot;:6},&quot;procreate&quot;:{&quot;ver&quot;:&quot;5.4.14&quot;,&quot;ios&quot;:16.3},&quot;meterMax&quot;:450,&quot;products&quot;:{&quot;ipad_mini_128gb&quot;:{&quot;fam&quot;:&quot;mini&quot;,&quot;sto&quot;:&quot;128GB&quot;},&quot;ipad_mini_256gb&quot;:{&quot;fam&quot;:&quot;mini&quot;,&quot;sto&quot;:&quot;256GB&quot;},&quot;ipad_mini_512gb&quot;:{&quot;fam&quot;:&quot;mini&quot;,&quot;sto&quot;:&quot;512GB&quot;},&quot;ipad_ipad_128gb&quot;:{&quot;fam&quot;:&quot;ipad&quot;,&quot;sto&quot;:&quot;128GB&quot;},&quot;ipad_ipad_256gb&quot;:{&quot;fam&quot;:&quot;ipad&quot;,&quot;sto&quot;:&quot;256GB&quot;},&quot;ipad_ipad_512gb&quot;:{&quot;fam&quot;:&quot;ipad&quot;,&quot;sto&quot;:&quot;512GB&quot;},&quot;ipad_air11_128gb&quot;:{&quot;fam&quot;:&quot;air11&quot;,&quot;sto&quot;:&quot;128GB&quot;},&quot;ipad_air11_256gb&quot;:{&quot;fam&quot;:&quot;air11&quot;,&quot;sto&quot;:&quot;256GB&quot;},&quot;ipad_air11_512gb&quot;:{&quot;fam&quot;:&quot;air11&quot;,&quot;sto&quot;:&quot;512GB&quot;},&quot;ipad_air11_1tb&quot;:{&quot;fam&quot;:&quot;air11&quot;,&quot;sto&quot;:&quot;1TB&quot;},&quot;ipad_air13_128gb&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;sto&quot;:&quot;128GB&quot;},&quot;ipad_air13_256gb&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;sto&quot;:&quot;256GB&quot;},&quot;ipad_air13_512gb&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;sto&quot;:&quot;512GB&quot;},&quot;ipad_air13_1tb&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;sto&quot;:&quot;1TB&quot;},&quot;ipad_pro11_256gb&quot;:{&quot;fam&quot;:&quot;pro11&quot;,&quot;sto&quot;:&quot;256GB&quot;},&quot;ipad_pro11_512gb&quot;:{&quot;fam&quot;:&quot;pro11&quot;,&quot;sto&quot;:&quot;512GB&quot;},&quot;ipad_pro11_1tb&quot;:{&quot;fam&quot;:&quot;pro11&quot;,&quot;sto&quot;:&quot;1TB&quot;},&quot;ipad_pro11_2tb&quot;:{&quot;fam&quot;:&quot;pro11&quot;,&quot;sto&quot;:&quot;2TB&quot;},&quot;ipad_pro13_256gb&quot;:{&quot;fam&quot;:&quot;pro13&quot;,&quot;sto&quot;:&quot;256GB&quot;},&quot;ipad_pro13_512gb&quot;:{&quot;fam&quot;:&quot;pro13&quot;,&quot;sto&quot;:&quot;512GB&quot;},&quot;ipad_pro13_1tb&quot;:{&quot;fam&quot;:&quot;pro13&quot;,&quot;sto&quot;:&quot;1TB&quot;},&quot;ipad_pro13_2tb&quot;:{&quot;fam&quot;:&quot;pro13&quot;,&quot;sto&quot;:&quot;2TB&quot;}},&quot;slotIds&quot;:{&quot;pressure_a5&quot;:[&quot;ipad_air11_128gb&quot;,&quot;ipad_air11_256gb&quot;,&quot;ipad_air11_512gb&quot;,&quot;ipad_air11_1tb&quot;],&quot;pressure_small&quot;:[&quot;ipad_mini_128gb&quot;,&quot;ipad_mini_256gb&quot;,&quot;ipad_mini_512gb&quot;],&quot;no_pressure_a5&quot;:[&quot;ipad_ipad_128gb&quot;,&quot;ipad_ipad_256gb&quot;,&quot;ipad_ipad_512gb&quot;,&quot;ipad_air11_128gb&quot;,&quot;ipad_air11_256gb&quot;,&quot;ipad_air11_512gb&quot;,&quot;ipad_air11_1tb&quot;,&quot;ipad_air13_128gb&quot;,&quot;ipad_air13_256gb&quot;,&quot;ipad_air13_512gb&quot;,&quot;ipad_air13_1tb&quot;,&quot;ipad_pro11_256gb&quot;,&quot;ipad_pro11_512gb&quot;,&quot;ipad_pro11_1tb&quot;,&quot;ipad_pro11_2tb&quot;,&quot;ipad_pro13_256gb&quot;,&quot;ipad_pro13_512gb&quot;,&quot;ipad_pro13_1tb&quot;,&quot;ipad_pro13_2tb&quot;],&quot;large13&quot;:[&quot;ipad_air13_128gb&quot;,&quot;ipad_air13_256gb&quot;,&quot;ipad_air13_512gb&quot;,&quot;ipad_air13_1tb&quot;,&quot;ipad_pro13_256gb&quot;,&quot;ipad_pro13_512gb&quot;,&quot;ipad_pro13_1tb&quot;,&quot;ipad_pro13_2tb&quot;],&quot;promotion&quot;:[&quot;ipad_pro11_256gb&quot;,&quot;ipad_pro11_512gb&quot;,&quot;ipad_pro11_1tb&quot;,&quot;ipad_pro11_2tb&quot;,&quot;ipad_pro13_256gb&quot;,&quot;ipad_pro13_512gb&quot;,&quot;ipad_pro13_1tb&quot;,&quot;ipad_pro13_2tb&quot;]},&quot;buy&quot;:{&quot;ipad_mini_128gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad mini（A17 Pro） 128GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro) 128GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DK46C5SG&quot;,&quot;us&quot;:&quot;B0DK3W6TV6&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DK46C5SG&quot;,&quot;asinUS&quot;:&quot;B0DK3W6TV6&quot;,&quot;title&quot;:&quot;iPad mini（A17 Pro） 128GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;iPad mini（A17 Pro） 128GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tFtJQGAeL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995526509&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DK46C5SG&quot;,&quot;asinUS&quot;:&quot;B0DK3W6TV6&quot;,&quot;title&quot;:&quot;iPad mini (A17 Pro) 128GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;iPad mini (A17 Pro) 128GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Tix2-t7iL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:2,&quot;rank_us&quot;:2},&quot;iPad mini (A17 Pro) 128GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad mini（A17 Pro） 128GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro) 128GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DK46C5SG&quot;,&quot;us&quot;:&quot;B0DK3W6TV6&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DK46C5SG&quot;,&quot;asinUS&quot;:&quot;B0DK3W6TV6&quot;,&quot;title&quot;:&quot;iPad mini（A17 Pro） 128GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;iPad mini（A17 Pro） 128GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tFtJQGAeL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995526509&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DK46C5SG&quot;,&quot;asinUS&quot;:&quot;B0DK3W6TV6&quot;,&quot;title&quot;:&quot;iPad mini (A17 Pro) 128GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;iPad mini (A17 Pro) 128GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Tix2-t7iL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:2,&quot;rank_us&quot;:2},&quot;ipad_mini_256gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad mini（A17 Pro） 256GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro) 256GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DK44HSQW&quot;,&quot;us&quot;:&quot;B0DK3XZ1CH&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DK44HSQW&quot;,&quot;asinUS&quot;:&quot;B0DK3XZ1CH&quot;,&quot;title&quot;:&quot;iPad mini（A17 Pro） 256GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;iPad mini（A17 Pro） 256GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tFtJQGAeL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995526547&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DK44HSQW&quot;,&quot;asinUS&quot;:&quot;B0DK3XZ1CH&quot;,&quot;title&quot;:&quot;iPad mini (A17 Pro) 256GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;iPad mini (A17 Pro) 256GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61yOm9qrcVL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:3,&quot;rank_us&quot;:4},&quot;iPad mini (A17 Pro) 256GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad mini（A17 Pro） 256GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro) 256GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DK44HSQW&quot;,&quot;us&quot;:&quot;B0DK3XZ1CH&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DK44HSQW&quot;,&quot;asinUS&quot;:&quot;B0DK3XZ1CH&quot;,&quot;title&quot;:&quot;iPad mini（A17 Pro） 256GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;iPad mini（A17 Pro） 256GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tFtJQGAeL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995526547&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DK44HSQW&quot;,&quot;asinUS&quot;:&quot;B0DK3XZ1CH&quot;,&quot;title&quot;:&quot;iPad mini (A17 Pro) 256GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;iPad mini (A17 Pro) 256GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61yOm9qrcVL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:3,&quot;rank_us&quot;:4},&quot;ipad_mini_512gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad mini（A17 Pro） 512GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro) 512GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DK43JC5Y&quot;,&quot;us&quot;:&quot;B0DK3XNKJ2&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DK43JC5Y&quot;,&quot;asinUS&quot;:&quot;B0DK3XNKJ2&quot;,&quot;title&quot;:&quot;iPad mini（A17 Pro） 512GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;iPad mini（A17 Pro） 512GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tFtJQGAeL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995530551&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DK43JC5Y&quot;,&quot;asinUS&quot;:&quot;B0DK3XNKJ2&quot;,&quot;title&quot;:&quot;iPad mini (A17 Pro) 512GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;iPad mini (A17 Pro) 512GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ZWTs-KXBL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:7,&quot;rank_us&quot;:8},&quot;iPad mini (A17 Pro) 512GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad mini（A17 Pro） 512GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro) 512GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DK43JC5Y&quot;,&quot;us&quot;:&quot;B0DK3XNKJ2&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DK43JC5Y&quot;,&quot;asinUS&quot;:&quot;B0DK3XNKJ2&quot;,&quot;title&quot;:&quot;iPad mini（A17 Pro） 512GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;iPad mini（A17 Pro） 512GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tFtJQGAeL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995530551&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DK43JC5Y&quot;,&quot;asinUS&quot;:&quot;B0DK3XNKJ2&quot;,&quot;title&quot;:&quot;iPad mini (A17 Pro) 512GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;iPad mini (A17 Pro) 512GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ZWTs-KXBL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:7,&quot;rank_us&quot;:8},&quot;ipad_ipad_128gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad（A16） 128GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;iPad (A16) 128GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DZ8HV6RT&quot;,&quot;us&quot;:&quot;B0DZ77D5HL&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DZ8HV6RT&quot;,&quot;asinUS&quot;:&quot;B0DZ77D5HL&quot;,&quot;title&quot;:&quot;iPad（A16） 128GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;iPad（A16） 128GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61opXmF-vsL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995560091&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DZ8HV6RT&quot;,&quot;asinUS&quot;:&quot;B0DZ77D5HL&quot;,&quot;title&quot;:&quot;iPad (A16) 128GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;iPad (A16) 128GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:0,&quot;rank_us&quot;:0},&quot;iPad (A16) 128GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad（A16） 128GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;iPad (A16) 128GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DZ8HV6RT&quot;,&quot;us&quot;:&quot;B0DZ77D5HL&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DZ8HV6RT&quot;,&quot;asinUS&quot;:&quot;B0DZ77D5HL&quot;,&quot;title&quot;:&quot;iPad（A16） 128GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;iPad（A16） 128GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61opXmF-vsL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995560091&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DZ8HV6RT&quot;,&quot;asinUS&quot;:&quot;B0DZ77D5HL&quot;,&quot;title&quot;:&quot;iPad (A16) 128GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;iPad (A16) 128GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:0,&quot;rank_us&quot;:0},&quot;ipad_ipad_256gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad（A16） 256GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;iPad (A16) 256GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DZ8BQ2PB&quot;,&quot;us&quot;:&quot;B0DZ77TPPD&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DZ8BQ2PB&quot;,&quot;asinUS&quot;:&quot;B0DZ77TPPD&quot;,&quot;title&quot;:&quot;iPad（A16） 256GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;iPad（A16） 256GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/616z23YvqML._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995560121&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DZ8BQ2PB&quot;,&quot;asinUS&quot;:&quot;B0DZ77TPPD&quot;,&quot;title&quot;:&quot;iPad (A16) 256GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;iPad (A16) 256GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61TKpa5A6EL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:1},&quot;iPad (A16) 256GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad（A16） 256GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;iPad (A16) 256GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DZ8BQ2PB&quot;,&quot;us&quot;:&quot;B0DZ77TPPD&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DZ8BQ2PB&quot;,&quot;asinUS&quot;:&quot;B0DZ77TPPD&quot;,&quot;title&quot;:&quot;iPad（A16） 256GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;iPad（A16） 256GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/616z23YvqML._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995560121&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DZ8BQ2PB&quot;,&quot;asinUS&quot;:&quot;B0DZ77TPPD&quot;,&quot;title&quot;:&quot;iPad (A16) 256GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;iPad (A16) 256GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61TKpa5A6EL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:1},&quot;ipad_ipad_512gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad（A16） 512GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;iPad (A16) 512GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DZ8FXFPG&quot;,&quot;us&quot;:&quot;B0DZ75HDQ4&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DZ8FXFPG&quot;,&quot;asinUS&quot;:&quot;B0DZ75HDQ4&quot;,&quot;title&quot;:&quot;iPad（A16） 512GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;iPad（A16） 512GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/616z23YvqML._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995560169&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DZ8FXFPG&quot;,&quot;asinUS&quot;:&quot;B0DZ75HDQ4&quot;,&quot;title&quot;:&quot;iPad (A16) 512GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;iPad (A16) 512GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:4,&quot;rank_us&quot;:5},&quot;iPad (A16) 512GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad（A16） 512GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;iPad (A16) 512GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0DZ8FXFPG&quot;,&quot;us&quot;:&quot;B0DZ75HDQ4&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DZ8FXFPG&quot;,&quot;asinUS&quot;:&quot;B0DZ75HDQ4&quot;,&quot;title&quot;:&quot;iPad（A16） 512GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;iPad（A16） 512GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/616z23YvqML._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995560169&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DZ8FXFPG&quot;,&quot;asinUS&quot;:&quot;B0DZ75HDQ4&quot;,&quot;title&quot;:&quot;iPad (A16) 512GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;iPad (A16) 512GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:4,&quot;rank_us&quot;:5},&quot;ipad_air11_128gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4） 128GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4) 128GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0GQWJCR4K&quot;,&quot;us&quot;:&quot;B0GQVPX1PJ&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQWJCR4K&quot;,&quot;asinUS&quot;:&quot;B0GQVPX1PJ&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4） 128GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4） 128GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71cEd-F5hgL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995661996&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQWJCR4K&quot;,&quot;asinUS&quot;:&quot;B0GQVPX1PJ&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4) 128GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4) 128GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71oepHm9ALL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:5,&quot;rank_us&quot;:3},&quot;11-inch iPad Air (M4) 128GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4） 128GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4) 128GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0GQWJCR4K&quot;,&quot;us&quot;:&quot;B0GQVPX1PJ&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQWJCR4K&quot;,&quot;asinUS&quot;:&quot;B0GQVPX1PJ&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4） 128GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4） 128GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71cEd-F5hgL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995661996&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQWJCR4K&quot;,&quot;asinUS&quot;:&quot;B0GQVPX1PJ&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4) 128GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4) 128GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71oepHm9ALL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:5,&quot;rank_us&quot;:3},&quot;ipad_air11_256gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4） 256GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4) 256GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0GQWWWH1T&quot;,&quot;us&quot;:&quot;B0GQV9ZGKL&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQWWWH1T&quot;,&quot;asinUS&quot;:&quot;B0GQV9ZGKL&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4） 256GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4） 256GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71cEd-F5hgL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995662030&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQWWWH1T&quot;,&quot;asinUS&quot;:&quot;B0GQV9ZGKL&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4) 256GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4) 256GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71hEv3IJm4L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:6,&quot;rank_us&quot;:6},&quot;11-inch iPad Air (M4) 256GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4） 256GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4) 256GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0GQWWWH1T&quot;,&quot;us&quot;:&quot;B0GQV9ZGKL&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQWWWH1T&quot;,&quot;asinUS&quot;:&quot;B0GQV9ZGKL&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4） 256GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4） 256GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71cEd-F5hgL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995662030&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQWWWH1T&quot;,&quot;asinUS&quot;:&quot;B0GQV9ZGKL&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4) 256GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4) 256GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71hEv3IJm4L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:6,&quot;rank_us&quot;:6},&quot;ipad_air11_512gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4） 512GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4) 512GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0GQX1MR9M&quot;,&quot;us&quot;:&quot;B0GQVG81NP&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQX1MR9M&quot;,&quot;asinUS&quot;:&quot;B0GQVG81NP&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4） 512GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4） 512GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71b4TVQkO3L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995662092&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQX1MR9M&quot;,&quot;asinUS&quot;:&quot;B0GQVG81NP&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4) 512GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4) 512GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71Ux4BkTYKL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:8,&quot;rank_us&quot;:9},&quot;11-inch iPad Air (M4) 512GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4） 512GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4) 512GB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0GQX1MR9M&quot;,&quot;us&quot;:&quot;B0GQVG81NP&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQX1MR9M&quot;,&quot;asinUS&quot;:&quot;B0GQVG81NP&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4） 512GB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4） 512GB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71b4TVQkO3L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995662092&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQX1MR9M&quot;,&quot;asinUS&quot;:&quot;B0GQVG81NP&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4) 512GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4) 512GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71Ux4BkTYKL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:8,&quot;rank_us&quot;:9},&quot;ipad_air11_1tb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4） 1TB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4) 1TB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0GQWKGNFD&quot;,&quot;us&quot;:&quot;B0GQVBDHBD&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQWKGNFD&quot;,&quot;asinUS&quot;:&quot;B0GQVBDHBD&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4） 1TB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4） 1TB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/713iOnE9UGL._AC_SL320_.jpg&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQWKGNFD&quot;,&quot;asinUS&quot;:&quot;B0GQVBDHBD&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4) 1TB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4) 1TB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71Uk80XwJhL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:9,&quot;rank_us&quot;:14},&quot;11-inch iPad Air (M4) 1TB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4） 1TB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4) 1TB Wi-Fi&quot;,&quot;jp&quot;:&quot;B0GQWKGNFD&quot;,&quot;us&quot;:&quot;B0GQVBDHBD&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQWKGNFD&quot;,&quot;asinUS&quot;:&quot;B0GQVBDHBD&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4） 1TB Wi-Fiモデル&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4） 1TB Wi-Fiモデル&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/713iOnE9UGL._AC_SL320_.jpg&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQWKGNFD&quot;,&quot;asinUS&quot;:&quot;B0GQVBDHBD&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4) 1TB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4) 1TB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71Uk80XwJhL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:9,&quot;rank_us&quot;:14},&quot;ipad_air13_128gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4） 128GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4) 128GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVDGCD2&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVDGCD2&quot;,&quot;asinUS&quot;:&quot;B0GQVDGCD2&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4) 128GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4) 128GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:7},&quot;13-inch iPad Air (M4) 128GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4） 128GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4) 128GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVDGCD2&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVDGCD2&quot;,&quot;asinUS&quot;:&quot;B0GQVDGCD2&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4) 128GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4) 128GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:7},&quot;ipad_air13_256gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4） 256GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4) 256GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVBYBDK&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVBYBDK&quot;,&quot;asinUS&quot;:&quot;B0GQVBYBDK&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4) 256GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4) 256GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:10},&quot;13-inch iPad Air (M4) 256GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4） 256GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4) 256GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVBYBDK&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVBYBDK&quot;,&quot;asinUS&quot;:&quot;B0GQVBYBDK&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4) 256GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4) 256GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:10},&quot;ipad_air13_512gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4） 512GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4) 512GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVKG9TN&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVKG9TN&quot;,&quot;asinUS&quot;:&quot;B0GQVKG9TN&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4) 512GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4) 512GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:12},&quot;13-inch iPad Air (M4) 512GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4） 512GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4) 512GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVKG9TN&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVKG9TN&quot;,&quot;asinUS&quot;:&quot;B0GQVKG9TN&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4) 512GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4) 512GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:12},&quot;ipad_air13_1tb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4） 1TB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4) 1TB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVHZ64B&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVHZ64B&quot;,&quot;asinUS&quot;:&quot;B0GQVHZ64B&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4) 1TB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4) 1TB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:16},&quot;13-inch iPad Air (M4) 1TB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4） 1TB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4) 1TB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVHZ64B&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVHZ64B&quot;,&quot;asinUS&quot;:&quot;B0GQVHZ64B&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4) 1TB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4) 1TB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:16},&quot;ipad_pro11_256gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5） 256GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5) 256GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1K669&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1K669&quot;,&quot;asinUS&quot;:&quot;B0FWD1K669&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5) 256GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5) 256GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61OExjvn1+L._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:11},&quot;11-inch iPad Pro (M5) 256GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5） 256GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5) 256GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1K669&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1K669&quot;,&quot;asinUS&quot;:&quot;B0FWD1K669&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5) 256GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5) 256GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61OExjvn1+L._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:11},&quot;ipad_pro11_512gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5） 512GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5) 512GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1LZBB&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1LZBB&quot;,&quot;asinUS&quot;:&quot;B0FWD1LZBB&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5) 512GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5) 512GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:13},&quot;11-inch iPad Pro (M5) 512GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5） 512GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5) 512GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1LZBB&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1LZBB&quot;,&quot;asinUS&quot;:&quot;B0FWD1LZBB&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5) 512GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5) 512GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:13},&quot;ipad_pro11_1tb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5） 1TB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5) 1TB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1LX4C&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1LX4C&quot;,&quot;asinUS&quot;:&quot;B0FWD1LX4C&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5) 1TB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5) 1TB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:18},&quot;11-inch iPad Pro (M5) 1TB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5） 1TB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5) 1TB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1LX4C&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1LX4C&quot;,&quot;asinUS&quot;:&quot;B0FWD1LX4C&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5) 1TB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5) 1TB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:18},&quot;ipad_pro11_2tb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5） 2TB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5) 2TB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD7Q88T&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD7Q88T&quot;,&quot;asinUS&quot;:&quot;B0FWD7Q88T&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5) 2TB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5) 2TB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:20},&quot;11-inch iPad Pro (M5) 2TB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5） 2TB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5) 2TB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD7Q88T&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD7Q88T&quot;,&quot;asinUS&quot;:&quot;B0FWD7Q88T&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5) 2TB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5) 2TB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:20},&quot;ipad_pro13_256gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5） 256GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5) 256GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1MT5D&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1MT5D&quot;,&quot;asinUS&quot;:&quot;B0FWD1MT5D&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5) 256GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5) 256GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:15},&quot;13-inch iPad Pro (M5) 256GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5） 256GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5) 256GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1MT5D&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1MT5D&quot;,&quot;asinUS&quot;:&quot;B0FWD1MT5D&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5) 256GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5) 256GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:15},&quot;ipad_pro13_512gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5） 512GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5) 512GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD464T4&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD464T4&quot;,&quot;asinUS&quot;:&quot;B0FWD464T4&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5) 512GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5) 512GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:17},&quot;13-inch iPad Pro (M5) 512GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5） 512GB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5) 512GB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD464T4&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD464T4&quot;,&quot;asinUS&quot;:&quot;B0FWD464T4&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5) 512GB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5) 512GB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:17},&quot;ipad_pro13_1tb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5） 1TB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5) 1TB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD6SPL8&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD6SPL8&quot;,&quot;asinUS&quot;:&quot;B0FWD6SPL8&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5) 1TB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5) 1TB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:19},&quot;13-inch iPad Pro (M5) 1TB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5） 1TB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5) 1TB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD6SPL8&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD6SPL8&quot;,&quot;asinUS&quot;:&quot;B0FWD6SPL8&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5) 1TB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5) 1TB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:19},&quot;ipad_pro13_2tb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5） 2TB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5) 2TB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWCXMK75&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWCXMK75&quot;,&quot;asinUS&quot;:&quot;B0FWCXMK75&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5) 2TB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5) 2TB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:21},&quot;13-inch iPad Pro (M5) 2TB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5） 2TB Wi-Fiモデル&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5) 2TB Wi-Fi&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWCXMK75&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWCXMK75&quot;,&quot;asinUS&quot;:&quot;B0FWCXMK75&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5) 2TB Wi-Fi&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5) 2TB Wi-Fi&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:21}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;tablet&quot;:&quot;ipad_air11_128gb&quot;},&quot;en&quot;:{&quot;tablet&quot;:&quot;ipad_air11_128gb&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;ipad-paper-size-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 値（対角・解像度・Apple Pencil・ホバー・アプリの条件）は calc.mjs が data.json の facts から M に入れて渡す。
//
// 1. 画面の寸法: Apple は縦横の寸法を公表していないので、公式の対角（長方形として測った値）と解像度から出す
//    幅 = 対角 × 25.4 × 横画素 ÷ √(横画素² + 縦画素²)、高さ = 対角 × 25.4 × 縦画素 ÷ √(横画素² + 縦画素²)
// 2. 紙と画面: 液タブ記事（2021-03-18-choose-lcd-tablet）と同じ。紙の長辺と画面の長辺、紙の短辺と画面の短辺を比べる
//    ok = 長辺も短辺も入る（等倍で丸ごと）、cond = 長辺だけ入る、ng = 長辺も入らない
// 3. 丸ごと入れる倍率 = min(画面の長辺 ÷ 紙の長辺, 画面の短辺 ÷ 紙の短辺)。表示は 1% 単位で切り捨て（下げれば必ず入る側）
// 4. 余裕 = 画面 − 紙（長辺・短辺のうち、紙の辺に対する割合が小さいほう）。割合が tightRatio 未満なら「ぎりぎり」

function screenMm(diagIn, pxW, pxH) {
  const d = Math.sqrt(pxW * pxW + pxH * pxH);
  return { w: (diagIn * 25.4 * pxW) / d, h: (diagIn * 25.4 * pxH) / d };
}
function ppiMm(px, ppi) {
  return (px / ppi) * 25.4;
}
function sides(m) {
  return { long: Math.max(m.w, m.h), short: Math.min(m.w, m.h) };
}
function fit(m, paper) {
  const s = sides(m);
  if (s.long &lt; paper.long) return &quot;ng&quot;;
  if (s.short &lt; paper.short) return &quot;cond&quot;;
  return &quot;ok&quot;;
}
function wholeScale(m, paper) {
  const s = sides(m);
  return Math.min(s.long / paper.long, s.short / paper.short);
}
// 1% 単位で切り捨てた倍率（%）。1 以上なら 100 で止める（拡大はしない）
function scalePct(m, paper) {
  return Math.min(100, Math.floor(wholeScale(m, paper) * 100 + 1e-9));
}
// 紙を pct% にしたときの余裕。辺ごとに mm と、紙の辺（縮めた後）に対する割合を出し、割合の小さいほうを返す
function marginAt(m, paper, pct, tightRatio) {
  const s = sides(m), k = pct / 100;
  const a = { mm: s.long - paper.long * k, of: paper.long * k, side: &quot;long&quot; };
  const b = { mm: s.short - paper.short * k, of: paper.short * k, side: &quot;short&quot; };
  const r = a.mm / a.of &lt;= b.mm / b.of ? a : b;
  return { ...r, ratio: r.mm / r.of, tight: r.mm &gt;= 0 &amp;&amp; r.mm / r.of &lt; tightRatio };
}

// ペン・ホバーの条件を満たすか。pen: &quot;pressure&quot;（Apple が筆圧ありと書く Apple Pencil Pro に対応）/ &quot;any&quot;
function penOk(m, pen, hover) {
  return (pen !== &quot;pressure&quot; || m.pencilPro) &amp;&amp; (hover !== &quot;need&quot; || m.hover);
}

// 条件に合う機種を画面の小さい順に並べ、紙が等倍で丸ごと入る最小の機種を探す。
//   入る機種が無ければ、丸ごと入れる倍率がいちばん大きい機種（同じ倍率なら全部）を出す
function recommend(M, paper, pen, hover) {
  const ids = M.order.filter((id) =&gt; penOk(M.models[id], pen, hover));
  const okIds = ids.filter((id) =&gt; fit(M.models[id], paper) === &quot;ok&quot;);
  if (okIds.length) {
    const first = okIds[0];
    const mg = marginAt(M.models[first], paper, 100, M.tightRatio);
    return { status: mg.tight ? &quot;cond&quot; : &quot;ok&quot;, actual: true, first, okIds, ids, margin: mg };
  }
  if (!ids.length) return { status: &quot;ng&quot;, actual: false, first: null, okIds: [], ids, best: [] };
  const sc = Object.fromEntries(ids.map((id) =&gt; [id, scalePct(M.models[id], paper)]));
  const top = Math.max(...ids.map((id) =&gt; sc[id]));
  const best = ids.filter((id) =&gt; sc[id] === top);
  const mg = marginAt(M.models[best[0]], paper, top, M.tightRatio);
  return { status: &quot;cond&quot;, actual: false, first: best[0], okIds: [], ids, best, scale: top, scales: sc, margin: mg };
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（ふだん描く紙の大きさ・ペンの筆圧・ホバー・使うアプリ）。機種は選ばせず、条件に合う最小の機種と、買える商品を1つ出す。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。
// 注意: テンプレート文字列に埋め込まれるので、正規表現のバックスラッシュは使わない。

const T_ = {
  ja: {
    paper: &quot;描く紙&quot;, pen: &quot;筆圧&quot;, hover: &quot;ホバー&quot;, app: &quot;アプリ&quot;, sNeed: &quot;要る&quot;, sAnyPen: &quot;なしで可&quot;, sAny: &quot;問わない&quot;, sNone: &quot;未定&quot;, sCsp: &quot;クリスタ&quot;,
    pressure: &quot;筆圧が要る&quot;, anyPen: &quot;筆圧なしでもよい&quot;, need: &quot;ホバーが要る&quot;, anyHover: &quot;ホバーはどちらでも&quot;,
    procreate: &quot;Procreate&quot;, csp: &quot;CLIP STUDIO PAINT&quot;, none: &quot;アプリは決めていない&quot;,
    dims: (p, s, l) =&gt; `${p}: ${s}×${l}mm`,
    fitOk: (n, p) =&gt; `${n}なら、${p}を等倍で丸ごと描けます`,
    roomOk: (x) =&gt; `余裕は${x}mm以上あります`,
    roomTight: (x, r) =&gt; `余裕は${x}mm（紙の辺の${r}%）しかなく、ぎりぎりです`,
    also: (list) =&gt; `ほかに等倍で入る機種: ${list}`,
    noFit: (p) =&gt; `${p}を等倍で丸ごと描ける現行のiPadはありません`,
    scaled: (list, x, m) =&gt; `${list}なら${x}%に縮めると丸ごと入ります。余裕は${m}mmしかなく、ぎりぎりです`,
    pressureNote: &quot;筆圧（圧力）を感知するとAppleが書いているのはApple Pencil Proだけです。iPad（A16）ではApple Pencil Proは使えません&quot;,
    usbcNote: &quot;Apple Pencil（USB-C）は筆圧を感知しません（Appleの機能比較表）&quot;,
    hoverNote: &quot;ホバーは、iPad（A16）がAppleの対応一覧に載っていません&quot;,
    proc: (ver, ios) =&gt; `Procreate ${ver}はiPadOS ${ios}以降で動きます。現行のiPadはどれもiPadOS 27に対応します`,
    cspMem: (n, m, h) =&gt; `${n}のメモリは${m}（Appleの記載）で、CLIP STUDIO PAINTの高解像度向けの推奨${h}GB以上を満たします`,
    cspNoMem: (n) =&gt; `${n}はメモリの記載が無く、CLIP STUDIO PAINTの推奨を満たすかは確かめられません`,
    cspAir: (n) =&gt; `${n}はCLIP STUDIO PAINTの対応端末のページに載っていません。動かないと書かれているわけではなく、一覧に無いということです`,
    cspDisp: (n, x) =&gt; `${n}の画面はCLIP STUDIO PAINTの推奨（${x}インチ以上）より小さいです`,
    cspPen: &quot;CLIP STUDIO PAINTの筆圧対応ペンの一覧に、Apple Pencil（USB-C）はありません&quot;,
    cspOs: &quot;CLIP STUDIO PAINTの対応OSの記載はiPadOS 18とiPadOS 26で、iPadOS 27は書かれていません&quot;,
    memL: (a, b) =&gt; (a === b ? `${a}GB` : `${a}GBまたは${b}GB`),
    vOk: (n) =&gt; `○ ${n}から等倍で描けます`, vTight: (n) =&gt; `△ ${n}で等倍（ぎりぎり）`, vScaled: (x) =&gt; `△ 等倍では入りません（${x}%に縮小）`, vNg: &quot;✕ 条件に合う機種がありません&quot;,
    longL: (x) =&gt; `画面の長辺 約${x}mm`, needL: (p, x) =&gt; `${p}の長辺 ${x}mm`,
    note: &quot;結果は計算の目安です。Appleは縦横の寸法を公表していないので、画面の寸法は公式の対角と解像度から計算しています。四隅は丸く、描画アプリの操作ボタンの分も引いていないので、実際に描ける範囲はこれより小さくなります。描き心地や速さは実機で試しておらず、判定していません。&quot;,
  },
  en: {
    paper: &quot;Paper&quot;, pen: &quot;Pressure&quot;, hover: &quot;Hover&quot;, app: &quot;App&quot;, sNeed: &quot;Needed&quot;, sAnyPen: &quot;Optional&quot;, sAny: &quot;Either&quot;, sNone: &quot;None&quot;, sCsp: &quot;CLIP STUDIO&quot;,
    pressure: &quot;Pressure needed&quot;, anyPen: &quot;No pressure needed&quot;, need: &quot;Hover needed&quot;, anyHover: &quot;Hover optional&quot;,
    procreate: &quot;Procreate&quot;, csp: &quot;CLIP STUDIO PAINT&quot;, none: &quot;No app chosen&quot;,
    dims: (p, s, l) =&gt; `${p}: ${s} × ${l} mm`,
    fitOk: (n, p) =&gt; `The ${n} holds a whole ${p} page at actual size`,
    roomOk: (x) =&gt; `At least ${x} mm to spare`,
    roomTight: (x, r) =&gt; `Only ${x} mm to spare (${r}% of the paper side), so it&apos;s borderline`,
    also: (list) =&gt; `Other models that fit at actual size: ${list}`,
    noFit: (p) =&gt; `No current iPad holds a whole ${p} page at actual size`,
    scaled: (list, x, m) =&gt; `On the ${list}, it fits whole when scaled to ${x}%, with only ${m} mm to spare, so it&apos;s borderline`,
    pressureNote: &quot;Apple lists pressure sensing only for Apple Pencil Pro, which doesn&apos;t work with the iPad (A16)&quot;,
    usbcNote: &quot;Apple Pencil (USB-C) has no pressure sensing (Apple&apos;s feature comparison)&quot;,
    hoverNote: &quot;The iPad (A16) isn&apos;t on Apple&apos;s list of models with hover&quot;,
    proc: (ver, ios) =&gt; `Procreate ${ver} needs iPadOS ${ios} or later. Every current iPad runs iPadOS 27`,
    cspMem: (n, m, h) =&gt; `The ${n} has ${m} of memory (per Apple), meeting CLIP STUDIO PAINT&apos;s high-resolution recommendation of ${h} GB or more`,
    cspNoMem: (n) =&gt; `Apple doesn&apos;t list memory for the ${n}, so CLIP STUDIO PAINT&apos;s recommendation can&apos;t be confirmed`,
    cspAir: (n) =&gt; `The ${n} isn&apos;t on CLIP STUDIO PAINT&apos;s supported-device page. The page doesn&apos;t say it won&apos;t run; it just isn&apos;t listed`,
    cspDisp: (n, x) =&gt; `The ${n}&apos;s screen is smaller than CLIP STUDIO PAINT&apos;s recommended ${x} inches`,
    cspPen: &quot;CLIP STUDIO PAINT&apos;s list of pressure-sensitive pens doesn&apos;t include Apple Pencil (USB-C)&quot;,
    cspOs: &quot;CLIP STUDIO PAINT lists iPadOS 18 and iPadOS 26; iPadOS 27 isn&apos;t mentioned&quot;,
    memL: (a, b) =&gt; (a === b ? `${a} GB` : `${a} GB or ${b} GB`),
    vOk: (n) =&gt; `✓ Actual size from the ${n}`, vTight: (n) =&gt; `△ Actual size on the ${n} (borderline)`, vScaled: (x) =&gt; `△ Not at actual size (scale to ${x}%)`, vNg: &quot;✕ No model fits&quot;,
    longL: (x) =&gt; `Screen long side about ${x} mm`, needL: (p, x) =&gt; `${p} long side ${x} mm`,
    note: &quot;This is a calculated estimate. Apple doesn&apos;t publish screen width and height, so they&apos;re calculated from the official diagonal and resolution. The corners are rounded and a drawing app&apos;s controls aren&apos;t subtracted, so the usable area is smaller. Drawing feel and speed weren&apos;t tested on real hardware and aren&apos;t judged.&quot;,
  },
};

const VSHORT_ = { mini: &quot;iPad mini&quot;, ipad: &quot;iPad&quot;, air11: &quot;iPad Air 11&quot;, pro11: &quot;iPad Pro 11&quot;, air13: &quot;iPad Air 13&quot;, pro13: &quot;iPad Pro 13&quot; };
const f1_ = (x) =&gt; (Math.floor(x * 10 + 1e-9) / 10).toFixed(1);
const join_ = (xs, lang) =&gt; xs.join(lang === &quot;ja&quot; ? &quot;、&quot; : &quot;, &quot;);

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;paper&quot;, type: &quot;select&quot;, label: t.paper, value: &quot;a5&quot;, options: [&quot;a6&quot;, &quot;a5&quot;, &quot;a4&quot;, &quot;a3&quot;].map((x) =&gt; ({ value: x, label: M.papers[x].name })) },
    { name: &quot;pen&quot;, type: &quot;select&quot;, label: t.pen, value: &quot;pressure&quot;, options: [{ value: &quot;pressure&quot;, label: t.pressure, short: t.sNeed }, { value: &quot;any&quot;, label: t.anyPen, short: t.sAnyPen }] },
    { name: &quot;hover&quot;, type: &quot;select&quot;, label: t.hover, value: &quot;any&quot;, options: [{ value: &quot;need&quot;, label: t.need, short: t.sNeed }, { value: &quot;any&quot;, label: t.anyHover, short: t.sAny }] },
    { name: &quot;app&quot;, type: &quot;select&quot;, label: t.app, value: &quot;none&quot;, options: [&quot;procreate&quot;, &quot;csp&quot;, &quot;none&quot;].map((x) =&gt; ({ value: x, label: t[x], short: x === &quot;csp&quot; ? t.sCsp : x === &quot;none&quot; ? t.sNone : t[x] })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const P = M.papers[v.paper];
  if (!P || ![&quot;pressure&quot;, &quot;any&quot;].includes(v.pen) || ![&quot;need&quot;, &quot;any&quot;].includes(v.hover) || ![&quot;procreate&quot;, &quot;csp&quot;, &quot;none&quot;].includes(v.app)) return { status: &quot;error&quot;, lines: [] };
  const r = recommend(M, P, v.pen, v.hover);
  const lines = [t.dims(P.name, P.short, P.long)];
  if (r.status === &quot;ng&quot;) return { status: &quot;ng&quot;, verdict: t.vNg, lines, picks: [] };
  const nm = (id) =&gt; M.models[id][lang];
  const targets = r.actual ? [r.first] : r.best;
  let status, verdict;
  if (r.actual) {
    lines.push(t.fitOk(nm(r.first), P.name));
    lines.push(r.margin.tight ? t.roomTight(f1_(r.margin.mm), Math.floor(r.margin.ratio * 100)) : t.roomOk(f1_(r.margin.mm)));
    const others = r.okIds.slice(1).map(nm);
    if (others.length) lines.push(t.also(join_(others, lang)));
    status = r.margin.tight ? &quot;cond&quot; : &quot;ok&quot;;
    // 判定の機種名は短い名前（日本語。「11インチiPad Air（M4）」で判定が2行になっていた。正式な名前は行・カード・図にある。2026-10-15 1画面に収める）
    const vn = lang === &quot;ja&quot; ? VSHORT_[r.first] || nm(r.first) : nm(r.first);
    verdict = r.margin.tight ? t.vTight(vn) : t.vOk(vn);
  } else {
    lines.push(t.noFit(P.name));
    const mg = Math.min(...r.best.map((id) =&gt; marginAt(M.models[id], P, r.scale, M.tightRatio).mm));
    lines.push(t.scaled(join_(r.best.map(nm), lang), r.scale, f1_(mg)));
    status = &quot;cond&quot;;
    verdict = t.vScaled(r.scale);
  }
  lines.push(v.pen === &quot;pressure&quot; ? t.pressureNote : t.usbcNote);
  if (v.hover === &quot;need&quot;) lines.push(t.hoverNote);
  if (v.app === &quot;procreate&quot;) lines.push(t.proc(M.procreate.ver, M.procreate.ios));
  if (v.app === &quot;csp&quot;) {
    for (const id of targets) {
      const m = M.models[id];
      if (m.csp === &quot;none&quot;) lines.push(t.cspAir(nm(id)));
      lines.push(m.mem ? t.cspMem(nm(id), t.memL(m.mem.min, m.mem.max), M.csp.hires) : t.cspNoMem(nm(id)));
      if (m.diag &lt; M.csp.display) lines.push(t.cspDisp(nm(id), M.csp.display));
    }
    if (v.pen === &quot;any&quot;) lines.push(t.cspPen);
    lines.push(t.cspOs);
  }
  // 候補: 結果に出した機種の商品。lib がその国で基準を満たす中から安い順の1位を出す
  const picks = Object.keys(M.products).filter((pid) =&gt; targets.includes(M.products[pid].fam));
  const lo = Math.min(...targets.map((id) =&gt; sides(M.models[id]).long));
  const meter = { min: 0, max: M.meterMax, value: lo, ok: [P.long, M.meterMax], unit: &quot;mm&quot;, valueLabel: t.longL(f1_(lo)), okLabel: t.needL(P.name, P.long) };
  // 型 F の図: 紙（P）と各 iPad の画面（公式の対角と解像度から計算した mm。sides の長辺×短辺）。
  // 等倍で入る機種は ok（余裕が tightRatio 未満なら tight）、入らない機種は over。筆圧・ホバーの条件を外れる機種は薄く
  const SHORT_ = { mini: &quot;mini&quot;, ipad: &quot;iPad&quot;, air11: &quot;Air 11&quot;, pro11: &quot;Pro 11&quot;, air13: &quot;Air 13&quot;, pro13: &quot;Pro 13&quot; };
  const diagram = {
    paper: { w: P.long, h: P.short, name: P.name, label: t.dims(P.name, P.short, P.long) },
    main: r.first || M.order[0],
    models: M.order.map((id) =&gt; {
      const m = M.models[id], sd = sides(m), f = fit(m, P), ok = f === &quot;ok&quot;, pen = penOk(m, v.pen, v.hover);
      const tight = ok &amp;&amp; marginAt(m, P, 100, M.tightRatio).tight;
      return { id, label: nm(id), short: SHORT_[id] || nm(id), w: Math.round(sd.long * 10) / 10, h: Math.round(sd.short * 10) / 10, fit: ok ? (tight ? &quot;tight&quot; : &quot;ok&quot;) : &quot;over&quot;,
        hit: ok &amp;&amp; pen, dim: !pen, capText: `${nm(id)} ${f1_(sd.long)}×${f1_(sd.short)}mm`, pick: Object.keys(M.products).filter((pid) =&gt; M.products[pid].fam === id) };
    }),
  };
  return { status, verdict, lines, picks, meter, diagram, specsPhone: false }; // スマホではカードの仕様の札を出さない（画面の寸法は図にある。2026-10-15）
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（紙 × 筆圧、ホバー・アプリの代表例）
function presets() {
  const out = [];
  for (const paper of [&quot;a6&quot;, &quot;a5&quot;, &quot;a4&quot;, &quot;a3&quot;]) for (const pen of [&quot;pressure&quot;, &quot;any&quot;]) out.push({ paper, pen, hover: &quot;any&quot;, app: &quot;none&quot; });
  out.push({ paper: &quot;a5&quot;, pen: &quot;pressure&quot;, hover: &quot;need&quot;, app: &quot;csp&quot; });
  out.push({ paper: &quot;a5&quot;, pen: &quot;any&quot;, hover: &quot;any&quot;, app: &quot;csp&quot; });
  out.push({ paper: &quot;a6&quot;, pen: &quot;pressure&quot;, hover: &quot;any&quot;, app: &quot;csp&quot; });
  out.push({ paper: &quot;a4&quot;, pen: &quot;pressure&quot;, hover: &quot;any&quot;, app: &quot;csp&quot; });
  out.push({ paper: &quot;a5&quot;, pen: &quot;any&quot;, hover: &quot;need&quot;, app: &quot;procreate&quot; });
  return out;
}

// 計算ツールのカードに出す仕様（その商品の仕様のうち、この計算で使った値。絞り込みの条件は出さない）
function pickSpecs(id, v, M, lang) {
  const p = M.products[id];
  const m = p &amp;&amp; M.models[p.fam];
  if (!m) return [];
  const ja = lang === &quot;ja&quot;;
  return [
    ja ? `画面 約${f1_(m.w)}×${f1_(m.h)}mm（対角と解像度から計算）` : `Screen about ${f1_(m.w)} × ${f1_(m.h)} mm (from diagonal and resolution)`,
    ja ? `重さ ${m.weight}g（Wi-Fi モデル）` : `${m.weight} g (Wi-Fi model)`,
    ja ? `ストレージ ${p.sto}` : `${p.sto} storage`,
  ];
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;diagram&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;11-inch-or-13-inch-room-vs-weight&quot;&gt;11-inch or 13-inch: room vs. weight&lt;/h2&gt;
&lt;p&gt;For A5, pick the 13-inch if you want more room, or the 11-inch if weight matters more. Per Apple’s spec pages, the 13-inch models are heavier than the 11-inch ones, by 152 g for the iPad Air and 135 g for the iPad Pro (Wi-Fi models).&lt;/p&gt;
&lt;h2 id=&quot;apple-pencil-pressure-and-hover&quot;&gt;Apple Pencil pressure and hover&lt;/h2&gt;
&lt;p&gt;In Apple’s compatibility page and comparison table, Apple Pencil Pro works with the iPad Pro, iPad Air and iPad mini. It doesn’t work with the base iPad (A16 chip).&lt;/p&gt;
&lt;p&gt;Only Apple Pencil Pro is listed with pressure sensing; Apple Pencil (USB-C) doesn’t have it, but it does sense tilt.&lt;/p&gt;
&lt;p&gt;The base iPad (A16 chip) works with the USB-C Apple Pencil. It can also use the 1st-generation Apple Pencil with an adapter. Neither is listed with pressure, so the base iPad has no pressure-sensing pen here.&lt;/p&gt;
&lt;p&gt;Hover, which shows where the pen tip is before it touches the screen, works on the iPad Pro, iPad Air and iPad mini. The base iPad (A16 chip) isn’t on the list.&lt;/p&gt;
&lt;h2 id=&quot;what-the-drawing-apps-need&quot;&gt;What the drawing apps need&lt;/h2&gt;
&lt;p&gt;Per Procreate’s Help Center, the current version, 5.4.14, needs iPadOS 16.3 or later and has no list of models. Every current iPad runs iPadOS 27, so all of them qualify.&lt;/p&gt;
&lt;p&gt;Per CLIP STUDIO PAINT’s requirements and device pages, the list names Apple Pencil Pro and the 1st and 2nd generations for pressure, not the USB-C one. Current iPads can use Pro, and the base iPad (A16 chip) can use the 1st generation with an adapter. No current iPad takes the 2nd generation.&lt;/p&gt;
&lt;p&gt;The current model on the list for high-resolution illustration and manga is the iPad Pro. The base iPad (A16 chip) and iPad mini are on the list for standard-size illustration.&lt;/p&gt;
&lt;p&gt;The iPad Air (M4) is not on the supported-device page. The page doesn’t say it won’t run; it just isn’t listed.&lt;/p&gt;
&lt;p&gt;The supported OS versions are iPadOS 18 and iPadOS 26; iPadOS 27 isn’t mentioned.&lt;/p&gt;
&lt;h2 id=&quot;current-models-compared-screen-weight-memory-battery-color&quot;&gt;Current models compared (screen, weight, memory, battery, color)&lt;/h2&gt;




































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Model&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Screen diagonal&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Weight&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Memory&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Battery (Apple’s tests)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;ProMotion&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Color and lamination&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch iPad Pro&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;579 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;12 GB for 256GB and 512GB models, 16 GB for 1TB and 2TB models (unified memory)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;up to 10 hours&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes (10-120 Hz)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;P3, fully laminated&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch iPad Air&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;12.9 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;616 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;12 GB (unified memory)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;up to 10 hours&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not listed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;P3, fully laminated&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;11-inch iPad Pro&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;11.1 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;444 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;12 GB for 256GB and 512GB models, 16 GB for 1TB and 2TB models (unified memory)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;up to 10 hours&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes (10-120 Hz)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;P3, fully laminated&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;11-inch iPad Air&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;10.86 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;464 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;12 GB (unified memory)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;up to 10 hours&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not listed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;P3, fully laminated&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Base iPad (A16 chip)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;10.86 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;477 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not listed by Apple&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;up to 10 hours&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not listed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;P3 and full lamination not listed (comparison page says sRGB)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;iPad mini&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8.3 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;293 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not listed by Apple&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;up to 10 hours&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not listed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;P3, fully laminated&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Weights are Wi-Fi models. Battery isn’t drawing time.&lt;/p&gt;
&lt;p&gt;Per Apple’s spec pages, memory is listed at 12 GB or 16 GB for the iPad Pro and 12 GB for the iPad Air. Both meet CLIP STUDIO PAINT’s high-resolution recommendation of 6 GB or more. The base iPad (A16 chip) and iPad mini list none, so that can’t be confirmed.&lt;/p&gt;
&lt;p&gt;ProMotion is a display that adjusts its refresh rate to what’s on screen. Its range, 10Hz to 120Hz, is listed only for the iPad Pro. The iPad Air, the base iPad (A16 chip) and iPad mini specs give neither ProMotion nor a refresh-rate figure.&lt;/p&gt;
&lt;p&gt;Wide color (P3) is a range wider than sRGB, and full lamination means no air gap between glass and display. Both are listed for the iPad Pro, Air and mini. The base iPad (A16 chip) lists neither.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-condition&quot;&gt;Picks by condition&lt;/h2&gt;
&lt;p&gt;One pick per condition, from Amazon.com, if a listing meets the criteria. If several qualify, the pick is the cheapest of those checked.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sold new by Amazon.com&lt;/li&gt;
&lt;li&gt;Configuration matches Apple’s spec&lt;/li&gt;
&lt;li&gt;At least 100 ratings and 4 stars or more&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Check prices on the retailer’s page.&lt;/p&gt;
&lt;p&gt;In the checks here, on Amazon.com, every pick but the ProMotion one is 128 GB, the cheapest qualifying tier, not a judgment that it’s enough. The ProMotion pick is 256 GB. CLIP STUDIO PAINT needs 6 GB of free space; no official storage guide for a given use was found.&lt;/p&gt;
&lt;h3 id=&quot;pressure-with-apple-pencil-pro-smallest-screen-that-holds-a5-at-actual-size&quot;&gt;Pressure with Apple Pencil Pro, smallest screen that holds A5 at actual size&lt;/h3&gt;
&lt;p&gt;The A5 margin is under 10% of the paper’s side, so it’s borderline.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4) 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71oepHm9ALL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4) 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWJCR4K?q=11-inch+iPad+Air+%28M4%29+128GB+Wi-Fi&amp;amp;us=B0GQVPX1PJ&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4) 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Color variants are listed; price may vary by color. The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h3 id=&quot;pressure-with-apple-pencil-pro-smallest-and-lightest-screen-a6-at-actual-size&quot;&gt;Pressure with Apple Pencil Pro, smallest and lightest screen, A6 at actual size&lt;/h3&gt;
&lt;p&gt;In this calculation, A6 fits at actual size and A5 only scaled to 78%, borderline.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro) 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Tix2-t7iL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro) 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK46C5SG?q=iPad+mini+%28A17+Pro%29+128GB+Wi-Fi&amp;amp;us=B0DK3W6TV6&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro) 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h3 id=&quot;no-pressure-sensing-needed-a5-at-actual-size&quot;&gt;No pressure sensing needed, A5 at actual size&lt;/h3&gt;
&lt;p&gt;A5 fits at actual size with about 12 mm or less to spare on the short side, so it’s borderline.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16) 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16) 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8HV6RT?q=iPad+%28A16%29+128GB+Wi-Fi&amp;amp;us=B0DZ77D5HL&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16) 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h3 id=&quot;13-inch-screen-with-room-around-a5-a4-scaled-to-88&quot;&gt;13-inch screen with room around A5, A4 scaled to 88%&lt;/h3&gt;
&lt;p&gt;In this calculation, A4 fits only scaled to 88%, borderline.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4) 128GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4) 128GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVDGCD2?q=13-inch+iPad+Air+%28M4%29+128GB+Wi-Fi&amp;amp;us=B0GQVDGCD2&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4) 128GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h3 id=&quot;promotion-ipad-pro-only&quot;&gt;ProMotion, iPad Pro only&lt;/h3&gt;
&lt;p&gt;How ProMotion feels to draw on isn’t judged.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5) 256GB Wi-Fi&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61OExjvn1+L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5) 256GB Wi-Fi&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1K669?q=11-inch+iPad+Pro+%28M5%29+256GB+Wi-Fi&amp;amp;us=B0FWD1K669&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5) 256GB Wi-Fi on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;which-ipad-is-best-for-drawing-and-illustration&quot;&gt;Which iPad is best for drawing and illustration?&lt;/h3&gt;
&lt;p&gt;Among current iPads, to draw A5 at actual size with Apple Pencil Pro (the pressure-sensing pen), you need an 11-inch-class screen or larger; at that size it’s borderline. If A6 is enough and portability comes first, the 8.3 in model, though that screen is below CLIP STUDIO PAINT’s recommended 10.5 inches.&lt;/p&gt;
&lt;p&gt;Models that fit are in the picks section.&lt;/p&gt;
&lt;h3 id=&quot;can-you-draw-a4-at-actual-size-on-an-ipad&quot;&gt;Can you draw A4 at actual size on an iPad?&lt;/h3&gt;
&lt;p&gt;No current iPad shows a whole A4 page (210 × 297 mm) at actual size. Worked out from Apple’s diagonal and resolution, even the largest 13-inch screen is only about 264.1 × 198.1 mm.&lt;/p&gt;
&lt;h3 id=&quot;can-you-draw-with-the-apple-pencil-usb-c&quot;&gt;Can you draw with the Apple Pencil (USB-C)?&lt;/h3&gt;
&lt;p&gt;Yes. In Apple’s compatibility page and comparison table, only Apple Pencil Pro is listed with pressure sensing; Apple Pencil (USB-C) doesn’t have it, but it does sense tilt.&lt;/p&gt;
&lt;h3 id=&quot;is-the-base-ipad-a16-chip-good-enough-for-illustration&quot;&gt;Is the base iPad (A16 chip) good enough for illustration?&lt;/h3&gt;
&lt;p&gt;Yes, it can draw. In Apple’s compatibility page and comparison table, the A16-chip model works with the USB-C Apple Pencil.&lt;/p&gt;
&lt;p&gt;It can also use the 1st-generation Apple Pencil with an adapter. Neither is listed with pressure, so that model has no pressure-sensing pen here.&lt;/p&gt;
&lt;h3 id=&quot;which-ipads-run-procreate&quot;&gt;Which iPads run Procreate?&lt;/h3&gt;
&lt;p&gt;Per Procreate’s Help Center, the current version, 5.4.14, needs iPadOS 16.3 or later and has no list of models. Every current iPad runs iPadOS 27, so all of them qualify.&lt;/p&gt;
&lt;h3 id=&quot;which-ipads-run-clip-studio-paint&quot;&gt;Which iPads run CLIP STUDIO PAINT?&lt;/h3&gt;
&lt;p&gt;Per CLIP STUDIO PAINT’s requirements and device pages, the current models on the list for high-resolution illustration and manga have the M5 chip. The A16 and A17 Pro models are on the list for standard-size illustration.&lt;/p&gt;
&lt;p&gt;The current M4 models are not on the supported-device page. The page doesn’t say they won’t run; they just aren’t listed.&lt;/p&gt;
&lt;p&gt;The supported OS versions are iPadOS 18 and iPadOS 26; iPadOS 27 isn’t mentioned. The recommended display size is 10.5 inches or larger, and the 8.3 in model is smaller than that.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: In the checks here, only screen size, the type of Apple Pencil and the apps’ official requirements are used. Drawing feel and speed weren’t tested on real hardware and aren’t judged. Sources as of October 2026: Apple’s &lt;a href=&quot;https://www.apple.com/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Compare iPad&lt;/a&gt;, &lt;a href=&quot;https://www.apple.com/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;iPad Pro specs&lt;/a&gt; and &lt;a href=&quot;https://support.apple.com/en-us/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Apple Pencil compatibility&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Sources: &lt;a href=&quot;https://www.clipstudio.net/en/dl/system/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;CLIP STUDIO PAINT system requirements&lt;/a&gt;, &lt;a href=&quot;https://support.clip-studio.com/en-us/faq/articles/20200153&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;supported-device FAQ&lt;/a&gt;, &lt;a href=&quot;https://help.procreate.com/articles/dbgjal-procreate-faq&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Procreate FAQ&lt;/a&gt; and &lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;the ISO 216 table&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Current lineup: the six models in ‘Current iPad models’ on Apple’s compare page: 13- and 11-inch iPad Pro (M5), 13- and 11-inch iPad Air (M4), iPad (A16) and iPad mini (A17 Pro). Older models are not covered.&lt;/li&gt;
&lt;li&gt;Specs: Apple’s spec page for each model (Japan and US) and the compare page. Memory is quoted only where Apple states it (iPad Pro and iPad Air); otherwise ‘not stated’ and no figure is guessed.&lt;/li&gt;
&lt;li&gt;Battery life is Apple’s test figure on pre-production units, not drawing time.&lt;/li&gt;
&lt;li&gt;Apple Pencil support: Apple’s ‘Apple Pencil compatibility’ page (published 2026-03-31) and the Apple Pencil page. The page states pressure sensing is on Apple Pencil Pro but not Apple Pencil (USB-C).&lt;/li&gt;
&lt;li&gt;App requirements: Procreate 5.4.14 (current per its Help Center) needs iPadOS 16.3 or later; CLIP STUDIO PAINT for iPad per its official requirements (iPadOS 18 / 26, 3GB required, 4GB recommended, 6GB for high-resolution work) and its supported-device FAQ.&lt;/li&gt;
&lt;li&gt;Products: new Wi-Fi models with standard glass on Amazon.co.jp and Amazon.com. A candidate needs 100+ ratings, 4.0+ stars, Amazon as seller, a configuration matching Apple’s spec, and (Japan) no strong sakura warning.&lt;/li&gt;
&lt;li&gt;Drawing area = screen size. Apple does not publish the screen’s width and height, so they are calculated from the official diagonal (measured as a rectangle) and the pixel resolution: width = diagonal x 25.4 x horizontal px / sqrt(horizontal px^2 + vertical px^2), height = diagonal x 25.4 x vertical px / sqrt(horizontal px^2 + vertical px^2). Cross-checked against the official ppi (264, 326) as px / ppi x 25.4: the difference is under 1 mm, whether a page fits at actual size is the same either way, and the scale from the diagonal is equal to or 1% below the ppi-based one (the safe side). Apple notes the corners are rounded and the actual viewable area is smaller. Space taken by a drawing app’s on-screen controls is not subtracted.&lt;/li&gt;
&lt;li&gt;Paper is ISO 216 A-series (A6 to A3), with the same sizes and fit rule as the pen-display guide (paper long side vs screen long side, short vs short; portrait gives the same result). For paper that doesn’t fit at actual size, the scale that fits the whole page = min(screen long / paper long, screen short / paper short), rounded down to 1%. Room to spare (screen minus paper) under 10% of the paper side is called borderline.&lt;/li&gt;
&lt;li&gt;ProMotion (10Hz to 120Hz) is listed only for iPad Pro, as on Apple’s spec pages. Drawing feel and speed weren’t tested on real hardware and aren’t judged. Prices are not given.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;


































































































































































































































































































































































































































































































































































































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): screen diagonal (measured as a rectangle)&lt;/td&gt;&lt;td&gt;13 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): resolution (long side)&lt;/td&gt;&lt;td&gt;2752 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): resolution (short side)&lt;/td&gt;&lt;td&gt;2064 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): pixel density&lt;/td&gt;&lt;td&gt;264 ppi&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): weight (Wi-Fi model)&lt;/td&gt;&lt;td&gt;579 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): weight (Wi-Fi + Cellular model)&lt;/td&gt;&lt;td&gt;582 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): body height&lt;/td&gt;&lt;td&gt;281.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): body width&lt;/td&gt;&lt;td&gt;215.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): body thickness&lt;/td&gt;&lt;td&gt;5.1 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): chip&lt;/td&gt;&lt;td&gt;M5 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): storage options&lt;/td&gt;&lt;td&gt;256GB, 512GB, 1TB, 2TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): memory&lt;/td&gt;&lt;td&gt;12GB on 256GB/512GB models, 16GB on 1TB/2TB models (unified memory)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): port&lt;/td&gt;&lt;td&gt;Thunderbolt / USB 4 port (USB-C connector). USB 4 (up to 40Gb/s)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): battery capacity&lt;/td&gt;&lt;td&gt;38.99 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): battery life (Apple test figure, web browsing and video over Wi-Fi)&lt;/td&gt;&lt;td&gt;up to 10 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): refresh rate&lt;/td&gt;&lt;td&gt;ProMotion technology with an adaptive refresh rate of 10Hz to 120Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): display type, lamination and color gamut&lt;/td&gt;&lt;td&gt;Ultra Retina XDR (tandem OLED). Fully laminated. Wide color (P3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): Nano-texture glass&lt;/td&gt;&lt;td&gt;Nano-texture display glass is an option on 1TB and 2TB models&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): supported Apple Pencil&lt;/td&gt;&lt;td&gt;Apple Pencil Pro, Apple Pencil (USB-C)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): Apple Pencil hover&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): screen diagonal (measured as a rectangle)&lt;/td&gt;&lt;td&gt;11.1 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): resolution (long side)&lt;/td&gt;&lt;td&gt;2420 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): resolution (short side)&lt;/td&gt;&lt;td&gt;1668 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): pixel density&lt;/td&gt;&lt;td&gt;264 ppi&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): weight (Wi-Fi model)&lt;/td&gt;&lt;td&gt;444 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): weight (Wi-Fi + Cellular model)&lt;/td&gt;&lt;td&gt;446 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): body height&lt;/td&gt;&lt;td&gt;249.7 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): body width&lt;/td&gt;&lt;td&gt;177.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): body thickness&lt;/td&gt;&lt;td&gt;5.3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): chip&lt;/td&gt;&lt;td&gt;M5 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): storage options&lt;/td&gt;&lt;td&gt;256GB, 512GB, 1TB, 2TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): memory&lt;/td&gt;&lt;td&gt;12GB on 256GB/512GB models, 16GB on 1TB/2TB models (unified memory)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): port&lt;/td&gt;&lt;td&gt;Thunderbolt / USB 4 port (USB-C connector). USB 4 (up to 40Gb/s)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): battery capacity&lt;/td&gt;&lt;td&gt;31.29 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): battery life (Apple test figure, web browsing and video over Wi-Fi)&lt;/td&gt;&lt;td&gt;up to 10 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): refresh rate&lt;/td&gt;&lt;td&gt;ProMotion technology with an adaptive refresh rate of 10Hz to 120Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): display type, lamination and color gamut&lt;/td&gt;&lt;td&gt;Ultra Retina XDR (tandem OLED). Fully laminated. Wide color (P3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): Nano-texture glass&lt;/td&gt;&lt;td&gt;Nano-texture display glass is an option on 1TB and 2TB models&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): supported Apple Pencil&lt;/td&gt;&lt;td&gt;Apple Pencil Pro, Apple Pencil (USB-C)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): Apple Pencil hover&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): screen diagonal (measured as a rectangle)&lt;/td&gt;&lt;td&gt;12.9 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): resolution (long side)&lt;/td&gt;&lt;td&gt;2732 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): resolution (short side)&lt;/td&gt;&lt;td&gt;2048 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): pixel density&lt;/td&gt;&lt;td&gt;264 ppi&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): weight (Wi-Fi model)&lt;/td&gt;&lt;td&gt;616 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): weight (Wi-Fi + Cellular model)&lt;/td&gt;&lt;td&gt;617 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): body height&lt;/td&gt;&lt;td&gt;280.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): body width&lt;/td&gt;&lt;td&gt;214.9 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): body thickness&lt;/td&gt;&lt;td&gt;6.1 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): chip&lt;/td&gt;&lt;td&gt;M4 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): storage options&lt;/td&gt;&lt;td&gt;128GB, 256GB, 512GB, 1TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): memory&lt;/td&gt;&lt;td&gt;12GB (unified memory)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): port&lt;/td&gt;&lt;td&gt;USB-C port. USB 3 (up to 10Gb/s)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): battery capacity&lt;/td&gt;&lt;td&gt;36.59 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): battery life (Apple test figure, web browsing and video over Wi-Fi)&lt;/td&gt;&lt;td&gt;up to 10 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): refresh rate (not stated by Apple)&lt;/td&gt;&lt;td&gt;No ProMotion or refresh-rate figure stated by Apple&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): display type, lamination and color gamut&lt;/td&gt;&lt;td&gt;Liquid Retina (IPS). Fully laminated. Wide color (P3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): supported Apple Pencil&lt;/td&gt;&lt;td&gt;Apple Pencil Pro, Apple Pencil (USB-C)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): Apple Pencil hover&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): screen diagonal (measured as a rectangle)&lt;/td&gt;&lt;td&gt;10.86 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): resolution (long side)&lt;/td&gt;&lt;td&gt;2360 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): resolution (short side)&lt;/td&gt;&lt;td&gt;1640 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): pixel density&lt;/td&gt;&lt;td&gt;264 ppi&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): weight (Wi-Fi model)&lt;/td&gt;&lt;td&gt;464 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): weight (Wi-Fi + Cellular model)&lt;/td&gt;&lt;td&gt;465 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): body height&lt;/td&gt;&lt;td&gt;247.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): body width&lt;/td&gt;&lt;td&gt;178.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): body thickness&lt;/td&gt;&lt;td&gt;6.1 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): chip&lt;/td&gt;&lt;td&gt;M4 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): storage options&lt;/td&gt;&lt;td&gt;128GB, 256GB, 512GB, 1TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): memory&lt;/td&gt;&lt;td&gt;12GB (unified memory)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): port&lt;/td&gt;&lt;td&gt;USB-C port. USB 3 (up to 10Gb/s)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): battery capacity&lt;/td&gt;&lt;td&gt;28.93 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): battery life (Apple test figure, web browsing and video over Wi-Fi)&lt;/td&gt;&lt;td&gt;up to 10 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): refresh rate (not stated by Apple)&lt;/td&gt;&lt;td&gt;No ProMotion or refresh-rate figure stated by Apple&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): display type, lamination and color gamut&lt;/td&gt;&lt;td&gt;Liquid Retina (IPS). Fully laminated. Wide color (P3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): supported Apple Pencil&lt;/td&gt;&lt;td&gt;Apple Pencil Pro, Apple Pencil (USB-C)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): Apple Pencil hover&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): screen diagonal (measured as a rectangle)&lt;/td&gt;&lt;td&gt;10.86 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): resolution (long side)&lt;/td&gt;&lt;td&gt;2360 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): resolution (short side)&lt;/td&gt;&lt;td&gt;1640 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): pixel density&lt;/td&gt;&lt;td&gt;264 ppi&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): weight (Wi-Fi model)&lt;/td&gt;&lt;td&gt;477 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): weight (Wi-Fi + Cellular model)&lt;/td&gt;&lt;td&gt;481 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): body height&lt;/td&gt;&lt;td&gt;248.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): body width&lt;/td&gt;&lt;td&gt;179.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): body thickness&lt;/td&gt;&lt;td&gt;7 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): chip&lt;/td&gt;&lt;td&gt;A16 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): storage options&lt;/td&gt;&lt;td&gt;128GB, 256GB, 512GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): memory (not stated by Apple)&lt;/td&gt;&lt;td&gt;not stated by Apple&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): port&lt;/td&gt;&lt;td&gt;USB-C port. USB 2.0 (up to 480Mb/s)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): battery capacity&lt;/td&gt;&lt;td&gt;28.93 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): battery life (Apple test figure, web browsing and video over Wi-Fi)&lt;/td&gt;&lt;td&gt;up to 10 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): refresh rate (not stated by Apple)&lt;/td&gt;&lt;td&gt;No ProMotion or refresh-rate figure stated by Apple&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): display type, lamination and color gamut&lt;/td&gt;&lt;td&gt;Liquid Retina (IPS). No full lamination stated. sRGB color (no P3 stated)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): supported Apple Pencil&lt;/td&gt;&lt;td&gt;Apple Pencil (USB-C), Apple Pencil (1st generation) (needs the USB-C to Apple Pencil Adapter)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): Apple Pencil hover&lt;/td&gt;&lt;td&gt;Not listed as supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): screen diagonal (measured as a rectangle)&lt;/td&gt;&lt;td&gt;8.3 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): resolution (long side)&lt;/td&gt;&lt;td&gt;2266 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): resolution (short side)&lt;/td&gt;&lt;td&gt;1488 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): pixel density&lt;/td&gt;&lt;td&gt;326 ppi&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): weight (Wi-Fi model)&lt;/td&gt;&lt;td&gt;293 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): weight (Wi-Fi + Cellular model)&lt;/td&gt;&lt;td&gt;297 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): body height&lt;/td&gt;&lt;td&gt;195.4 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): body width&lt;/td&gt;&lt;td&gt;134.8 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): body thickness&lt;/td&gt;&lt;td&gt;6.3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): chip&lt;/td&gt;&lt;td&gt;A17 Pro text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): storage options&lt;/td&gt;&lt;td&gt;128GB, 256GB, 512GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): memory (not stated by Apple)&lt;/td&gt;&lt;td&gt;not stated by Apple&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): port&lt;/td&gt;&lt;td&gt;USB-C port. USB 3 (up to 10Gb/s)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): battery capacity&lt;/td&gt;&lt;td&gt;19.3 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): battery life (Apple test figure, web browsing and video over Wi-Fi)&lt;/td&gt;&lt;td&gt;up to 10 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): refresh rate (not stated by Apple)&lt;/td&gt;&lt;td&gt;No ProMotion or refresh-rate figure stated by Apple&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): display type, lamination and color gamut&lt;/td&gt;&lt;td&gt;Liquid Retina (IPS). Fully laminated. Wide color (P3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): supported Apple Pencil&lt;/td&gt;&lt;td&gt;Apple Pencil Pro, Apple Pencil (USB-C)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): Apple Pencil hover&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Apple Pencil Pro: pressure sensing&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Apple Pencil (USB-C): pressure sensing&lt;/td&gt;&lt;td&gt;Not supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Apple Pencil Pro: tilt sensing&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Apple Pencil (USB-C): tilt sensing&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Features only Apple Pencil Pro has&lt;/td&gt;&lt;td&gt;Squeeze, barrel roll, haptic feedback, double tap and Find My (not on Apple Pencil (USB-C))&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad models with Apple Pencil hover&lt;/td&gt;&lt;td&gt;Supported on iPad Pro (M4, M5), iPad Air (M2, M3, M4) and iPad mini (A17 Pro), among others; iPad (A16) is not listed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPadOS needed for Apple Pencil (USB-C)&lt;/td&gt;&lt;td&gt;iPadOS 17.1.1 or later&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16) and Apple Pencil (1st generation)&lt;/td&gt;&lt;td&gt;iPad (A16) also works with Apple Pencil (1st generation) when paired and charged through the USB-C to Apple Pencil Adapter&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Apple Pencil (2nd generation) support&lt;/td&gt;&lt;td&gt;None of the six current iPads supports Apple Pencil (2nd generation)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad models Apple currently sells&lt;/td&gt;&lt;td&gt;13-inch iPad Pro (M5), 11-inch iPad Pro (M5), 13-inch iPad Air (M4), 11-inch iPad Air (M4), iPad (A16), iPad mini (A17 Pro)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Latest iPadOS version on Apple’s iPadOS page&lt;/td&gt;&lt;td&gt;iPadOS 27 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipados/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Procreate for iPad: current version&lt;/td&gt;&lt;td&gt;5.4.14 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://help.procreate.com/articles/dbgjal-procreate-faq&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;help.procreate.com&lt;/a&gt; Procreate FAQ: The current version of Procreate for iPad is 5.4.14&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPadOS required by Procreate 5.4.14 (or later)&lt;/td&gt;&lt;td&gt;16.3 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://help.procreate.com/articles/dbgjal-procreate-faq&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;help.procreate.com&lt;/a&gt; Procreate FAQ: Procreate 5.4.14 requires an iPad running iPadOS 16.3 or newer&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Procreate: current iPads that qualify&lt;/td&gt;&lt;td&gt;Procreate lists no model names, only iPadOS 16.3 or later. All six current iPads run iPadOS 27, so all meet it&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://help.procreate.com/articles/dbgjal-procreate-faq&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;help.procreate.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Procreate: maximum canvas by device&lt;/td&gt;&lt;td&gt;134 megapixels (11,585px x 11,585px) on iPad Pro (M4, M5) and iPad Air (M2, M3); 67 megapixels (8,192px x 8,192px) on iPad mini (6th and 7th generation). iPad (A16) and iPad Air (M4) are not listed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://help.procreate.com/articles/dabqrn-maximum-canvas-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;help.procreate.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT for iPad: App Store version&lt;/td&gt;&lt;td&gt;5.1.4 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://apps.apple.com/jp/app/clip-studio-paint/id1262985592&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apps.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT for iPad: OS in the official requirements&lt;/td&gt;&lt;td&gt;iPadOS 18 / iPadOS 26 (iPadOS 27 is not mentioned)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.clipstudio.net/ja/dl/system/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;clipstudio.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT for iPad: memory requirement&lt;/td&gt;&lt;td&gt;3GB or more required, 4GB or more recommended; 6GB or more recommended for high-resolution illustration and manga&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.clipstudio.net/ja/dl/system/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;clipstudio.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT for iPad: recommended display size (or larger)&lt;/td&gt;&lt;td&gt;10.5 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.clipstudio.net/ja/dl/system/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;clipstudio.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT for iPad: free storage required (or more)&lt;/td&gt;&lt;td&gt;6 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.clipstudio.net/ja/dl/system/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;clipstudio.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT for iPad: pressure-sensitive pens in the official requirements&lt;/td&gt;&lt;td&gt;Apple Pencil (1st generation), Apple Pencil (2nd generation), Apple Pencil Pro (Apple Pencil (USB-C) is not listed)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.clipstudio.net/ja/dl/system/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;clipstudio.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT supported devices: high-resolution list&lt;/td&gt;&lt;td&gt;High-resolution illustration and manga list: 13- and 11-inch iPad Pro (M5), (M4), 13- and 11-inch iPad Air (M3, M2) and others. iPad Air (M4) is not on the page&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.clip-studio.com/ja-jp/faq/articles/20200153&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.clip-studio.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT supported devices: standard-size list&lt;/td&gt;&lt;td&gt;Standard-size illustration and web manga list: iPad (A16), iPad mini (A17 Pro) and others&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.clip-studio.com/ja-jp/faq/articles/20200153&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.clip-studio.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad Air (M4) and CLIP STUDIO PAINT&lt;/td&gt;&lt;td&gt;iPad Air (M4) is not on CLIP STUDIO PAINT’s supported-device page (FAQ updated 2025-12-02)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.clip-studio.com/ja-jp/faq/articles/20200153&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.clip-studio.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A3 paper short side&lt;/td&gt;&lt;td&gt;297 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A3 paper long side&lt;/td&gt;&lt;td&gt;420 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A4 paper short side&lt;/td&gt;&lt;td&gt;210 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A4 paper long side&lt;/td&gt;&lt;td&gt;297 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5 paper short side&lt;/td&gt;&lt;td&gt;148 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5 paper long side&lt;/td&gt;&lt;td&gt;210 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A6 paper short side&lt;/td&gt;&lt;td&gt;105 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A6 paper long side&lt;/td&gt;&lt;td&gt;148 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Which iPad fits the paper size you draw at: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result and a matching product for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;










































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;A6, Pressure needed, Hover optional, No app chosen&lt;/td&gt;&lt;td&gt;✓ Actual size from the iPad mini (A17 Pro). A6: 105 × 148 mm. The iPad mini (A17 Pro) holds a whole A6 page at actual size. At least 10.7 mm to spare. Other models that fit at actual size: 11-inch iPad Air (M4), 11-inch iPad Pro (M5), 13-inch iPad Air (M4), 13-inch iPad Pro (M5). Apple lists pressure sensing only for Apple Pencil Pro, which doesn’t work with the iPad (A16)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-11-illustration-ipad/?ipad-paper-size-calc-paper=a6&amp;amp;ipad-paper-size-calc-pen=pressure&amp;amp;ipad-paper-size-calc-hover=any&amp;amp;ipad-paper-size-calc-app=none#ipad-paper-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A6, No pressure needed, Hover optional, No app chosen&lt;/td&gt;&lt;td&gt;✓ Actual size from the iPad mini (A17 Pro). A6: 105 × 148 mm. The iPad mini (A17 Pro) holds a whole A6 page at actual size. At least 10.7 mm to spare. Other models that fit at actual size: iPad (A16), 11-inch iPad Air (M4), 11-inch iPad Pro (M5), 13-inch iPad Air (M4), 13-inch iPad Pro (M5). Apple Pencil (USB-C) has no pressure sensing (Apple’s feature comparison)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-11-illustration-ipad/?ipad-paper-size-calc-paper=a6&amp;amp;ipad-paper-size-calc-pen=any&amp;amp;ipad-paper-size-calc-hover=any&amp;amp;ipad-paper-size-calc-app=none#ipad-paper-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5, Pressure needed, Hover optional, No app chosen&lt;/td&gt;&lt;td&gt;△ Actual size on the 11-inch iPad Air (M4) (borderline). A5: 148 × 210 mm. The 11-inch iPad Air (M4) holds a whole A5 page at actual size. Only 9.4 mm to spare (6% of the paper side), so it’s borderline. Other models that fit at actual size: 11-inch iPad Pro (M5), 13-inch iPad Air (M4), 13-inch iPad Pro (M5). Apple lists pressure sensing only for Apple Pencil Pro, which doesn’t work with the iPad (A16)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-11-illustration-ipad/?ipad-paper-size-calc-paper=a5&amp;amp;ipad-paper-size-calc-pen=pressure&amp;amp;ipad-paper-size-calc-hover=any&amp;amp;ipad-paper-size-calc-app=none#ipad-paper-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5, No pressure needed, Hover optional, No app chosen&lt;/td&gt;&lt;td&gt;△ Actual size on the iPad (A16) (borderline). A5: 148 × 210 mm. The iPad (A16) holds a whole A5 page at actual size. Only 9.4 mm to spare (6% of the paper side), so it’s borderline. Other models that fit at actual size: 11-inch iPad Air (M4), 11-inch iPad Pro (M5), 13-inch iPad Air (M4), 13-inch iPad Pro (M5). Apple Pencil (USB-C) has no pressure sensing (Apple’s feature comparison)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-11-illustration-ipad/?ipad-paper-size-calc-paper=a5&amp;amp;ipad-paper-size-calc-pen=any&amp;amp;ipad-paper-size-calc-hover=any&amp;amp;ipad-paper-size-calc-app=none#ipad-paper-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A4, Pressure needed, Hover optional, No app chosen&lt;/td&gt;&lt;td&gt;△ Not at actual size (scale to 88%). A4: 210 × 297 mm. No current iPad holds a whole A4 page at actual size. On the 13-inch iPad Air (M4), 13-inch iPad Pro (M5), it fits whole when scaled to 88%, with only 0.8 mm to spare, so it’s borderline. Apple lists pressure sensing only for Apple Pencil Pro, which doesn’t work with the iPad (A16)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-11-illustration-ipad/?ipad-paper-size-calc-paper=a4&amp;amp;ipad-paper-size-calc-pen=pressure&amp;amp;ipad-paper-size-calc-hover=any&amp;amp;ipad-paper-size-calc-app=none#ipad-paper-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A4, No pressure needed, Hover optional, No app chosen&lt;/td&gt;&lt;td&gt;△ Not at actual size (scale to 88%). A4: 210 × 297 mm. No current iPad holds a whole A4 page at actual size. On the 13-inch iPad Air (M4), 13-inch iPad Pro (M5), it fits whole when scaled to 88%, with only 0.8 mm to spare, so it’s borderline. Apple Pencil (USB-C) has no pressure sensing (Apple’s feature comparison)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-11-illustration-ipad/?ipad-paper-size-calc-paper=a4&amp;amp;ipad-paper-size-calc-pen=any&amp;amp;ipad-paper-size-calc-hover=any&amp;amp;ipad-paper-size-calc-app=none#ipad-paper-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A3, Pressure needed, Hover optional, No app chosen&lt;/td&gt;&lt;td&gt;△ Not at actual size (scale to 62%). A3: 297 × 420 mm. No current iPad holds a whole A3 page at actual size. On the 13-inch iPad Air (M4), 13-inch iPad Pro (M5), it fits whole when scaled to 62%, with only 1.7 mm to spare, so it’s borderline. Apple lists pressure sensing only for Apple Pencil Pro, which doesn’t work with the iPad (A16)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-11-illustration-ipad/?ipad-paper-size-calc-paper=a3&amp;amp;ipad-paper-size-calc-pen=pressure&amp;amp;ipad-paper-size-calc-hover=any&amp;amp;ipad-paper-size-calc-app=none#ipad-paper-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A3, No pressure needed, Hover optional, No app chosen&lt;/td&gt;&lt;td&gt;△ Not at actual size (scale to 62%). A3: 297 × 420 mm. No current iPad holds a whole A3 page at actual size. On the 13-inch iPad Air (M4), 13-inch iPad Pro (M5), it fits whole when scaled to 62%, with only 1.7 mm to spare, so it’s borderline. Apple Pencil (USB-C) has no pressure sensing (Apple’s feature comparison)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-11-illustration-ipad/?ipad-paper-size-calc-paper=a3&amp;amp;ipad-paper-size-calc-pen=any&amp;amp;ipad-paper-size-calc-hover=any&amp;amp;ipad-paper-size-calc-app=none#ipad-paper-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5, Pressure needed, Hover needed, CLIP STUDIO PAINT&lt;/td&gt;&lt;td&gt;△ Actual size on the 11-inch iPad Air (M4) (borderline). A5: 148 × 210 mm. The 11-inch iPad Air (M4) holds a whole A5 page at actual size. Only 9.4 mm to spare (6% of the paper side), so it’s borderline. Other models that fit at actual size: 11-inch iPad Pro (M5), 13-inch iPad Air (M4), 13-inch iPad Pro (M5). Apple lists pressure sensing only for Apple Pencil Pro, which doesn’t work with the iPad (A16). The iPad (A16) isn’t on Apple’s list of models with hover. The 11-inch iPad Air (M4) isn’t on CLIP STUDIO PAINT’s supported-device page. The page doesn’t say it won’t run; it just isn’t listed. The 11-inch iPad Air (M4) has 12 GB of memory (per Apple), meeting CLIP STUDIO PAINT’s high-resolution recommendation of 6 GB or more. CLIP STUDIO PAINT lists iPadOS 18 and iPadOS 26; iPadOS 27 isn’t mentioned&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-11-illustration-ipad/?ipad-paper-size-calc-paper=a5&amp;amp;ipad-paper-size-calc-pen=pressure&amp;amp;ipad-paper-size-calc-hover=need&amp;amp;ipad-paper-size-calc-app=csp#ipad-paper-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5, No pressure needed, Hover optional, CLIP STUDIO PAINT&lt;/td&gt;&lt;td&gt;△ Actual size on the iPad (A16) (borderline). A5: 148 × 210 mm. The iPad (A16) holds a whole A5 page at actual size. Only 9.4 mm to spare (6% of the paper side), so it’s borderline. Other models that fit at actual size: 11-inch iPad Air (M4), 11-inch iPad Pro (M5), 13-inch iPad Air (M4), 13-inch iPad Pro (M5). Apple Pencil (USB-C) has no pressure sensing (Apple’s feature comparison). Apple doesn’t list memory for the iPad (A16), so CLIP STUDIO PAINT’s recommendation can’t be confirmed. CLIP STUDIO PAINT’s list of pressure-sensitive pens doesn’t include Apple Pencil (USB-C). CLIP STUDIO PAINT lists iPadOS 18 and iPadOS 26; iPadOS 27 isn’t mentioned&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-11-illustration-ipad/?ipad-paper-size-calc-paper=a5&amp;amp;ipad-paper-size-calc-pen=any&amp;amp;ipad-paper-size-calc-hover=any&amp;amp;ipad-paper-size-calc-app=csp#ipad-paper-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A6, Pressure needed, Hover optional, CLIP STUDIO PAINT&lt;/td&gt;&lt;td&gt;✓ Actual size from the iPad mini (A17 Pro). A6: 105 × 148 mm. The iPad mini (A17 Pro) holds a whole A6 page at actual size. At least 10.7 mm to spare. Other models that fit at actual size: 11-inch iPad Air (M4), 11-inch iPad Pro (M5), 13-inch iPad Air (M4), 13-inch iPad Pro (M5). Apple lists pressure sensing only for Apple Pencil Pro, which doesn’t work with the iPad (A16). Apple doesn’t list memory for the iPad mini (A17 Pro), so CLIP STUDIO PAINT’s recommendation can’t be confirmed. The iPad mini (A17 Pro)‘s screen is smaller than CLIP STUDIO PAINT’s recommended 10.5 inches. CLIP STUDIO PAINT lists iPadOS 18 and iPadOS 26; iPadOS 27 isn’t mentioned&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-11-illustration-ipad/?ipad-paper-size-calc-paper=a6&amp;amp;ipad-paper-size-calc-pen=pressure&amp;amp;ipad-paper-size-calc-hover=any&amp;amp;ipad-paper-size-calc-app=csp#ipad-paper-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A4, Pressure needed, Hover optional, CLIP STUDIO PAINT&lt;/td&gt;&lt;td&gt;△ Not at actual size (scale to 88%). A4: 210 × 297 mm. No current iPad holds a whole A4 page at actual size. On the 13-inch iPad Air (M4), 13-inch iPad Pro (M5), it fits whole when scaled to 88%, with only 0.8 mm to spare, so it’s borderline. Apple lists pressure sensing only for Apple Pencil Pro, which doesn’t work with the iPad (A16). The 13-inch iPad Air (M4) isn’t on CLIP STUDIO PAINT’s supported-device page. The page doesn’t say it won’t run; it just isn’t listed. The 13-inch iPad Air (M4) has 12 GB of memory (per Apple), meeting CLIP STUDIO PAINT’s high-resolution recommendation of 6 GB or more. The 13-inch iPad Pro (M5) has 12 GB or 16 GB of memory (per Apple), meeting CLIP STUDIO PAINT’s high-resolution recommendation of 6 GB or more. CLIP STUDIO PAINT lists iPadOS 18 and iPadOS 26; iPadOS 27 isn’t mentioned&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-11-illustration-ipad/?ipad-paper-size-calc-paper=a4&amp;amp;ipad-paper-size-calc-pen=pressure&amp;amp;ipad-paper-size-calc-hover=any&amp;amp;ipad-paper-size-calc-app=csp#ipad-paper-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5, No pressure needed, Hover needed, Procreate&lt;/td&gt;&lt;td&gt;△ Actual size on the 11-inch iPad Air (M4) (borderline). A5: 148 × 210 mm. The 11-inch iPad Air (M4) holds a whole A5 page at actual size. Only 9.4 mm to spare (6% of the paper side), so it’s borderline. Other models that fit at actual size: 11-inch iPad Pro (M5), 13-inch iPad Air (M4), 13-inch iPad Pro (M5). Apple Pencil (USB-C) has no pressure sensing (Apple’s feature comparison). The iPad (A16) isn’t on Apple’s list of models with hover. Procreate 5.4.14 needs iPadOS 16.3 or later. Every current iPad runs iPadOS 27&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-11-illustration-ipad/?ipad-paper-size-calc-paper=a5&amp;amp;ipad-paper-size-calc-pen=any&amp;amp;ipad-paper-size-calc-hover=need&amp;amp;ipad-paper-size-calc-app=procreate#ipad-paper-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>ipad</category></item><item><title>How to Choose a Numeric Keypad for Windows: Connection and Keys</title><link>https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/</guid><description>If you also want = and BS keys for Excel, go wired. If Tab and 00 are enough, any connection type works. The specs come from ELECOM, Sanwa Supply and BUFFALO, and the picks are for US readers on Amazon.com.</description><pubDate>Sat, 10 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Per the makers’ specs, if you also want = and BS keys for Excel, go wired. If Tab and 00 are enough, any connection type works. This guide compares keypads by the makers’ specs from ELECOM, Sanwa Supply and BUFFALO, and ends with picks for US readers on Amazon.com.&lt;/p&gt;
&lt;p&gt;The spec guidance applies to any keypad. According to ELECOM’s product pages, the 2.4 GHz models plug a USB-A receiver into the PC, and the Bluetooth models use the PC’s own Bluetooth.&lt;/p&gt;
&lt;p&gt;In this guide, typing feel, noise and speed weren’t tested on real hardware and aren’t judged; only the makers’ specs are compared.&lt;/p&gt;
&lt;h2 id=&quot;wired-24-ghz-or-bluetooth-choosing-a-connection&quot;&gt;Wired, 2.4 GHz or Bluetooth: choosing a connection&lt;/h2&gt;
&lt;p&gt;Per the makers’ specs, choose wired to avoid batteries, 2.4 GHz for a USB receiver that needs no PC Bluetooth, or Bluetooth for no receiver if the PC has it. Both wireless types are cable-free and run on batteries, and the wired models list no battery.&lt;/p&gt;
&lt;p&gt;According to ELECOM’s product pages, the Bluetooth models need a PC with Bluetooth support, and a PC without it can use a separately sold Bluetooth adapter.&lt;/p&gt;
&lt;p&gt;ELECOM’s wired and 2.4 GHz models all use a USB-A connector. Sanwa Supply and BUFFALO connectors weren’t checked.&lt;/p&gt;
&lt;h2 id=&quot;keypads-by-condition-what-the-table-shows&quot;&gt;Keypads by condition: what the table shows&lt;/h2&gt;
&lt;p&gt;Three terms first:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BS is Backspace, which deletes the last character.&lt;/li&gt;
&lt;li&gt;Pantograph and scissor keys are the low, flat laptop-style switches that make a keypad slim. The Japanese models in the table are pantograph; the US pick is scissor and its maker calls it slim.&lt;/li&gt;
&lt;li&gt;“NumLock handling stated” means the maker says how the keypad’s NumLock works with the PC, which matters if numbers don’t type.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To choose, pick the connection first, then the keys you need, then slim or not if you carry it, then whether NumLock handling should be stated. The table shows whether the makers’ specs list each feature.&lt;/p&gt;
&lt;p&gt;The picks at the end come from Amazon.com listings checked in October 2026. The criteria were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New, and sold by Amazon.com or the maker’s official store&lt;/li&gt;
&lt;li&gt;Model number matches the maker’s specs&lt;/li&gt;
&lt;li&gt;At least 100 ratings and a 4-star average&lt;/li&gt;
&lt;li&gt;For the Japanese picks only: no warning from Sakura Checker, a fake-review checker&lt;/li&gt;
&lt;li&gt;Windows listed in the maker’s supported OS (7 or higher for the wired US slot; Windows 11 for the Japanese slots). Tab and 00 keys are not required for the US slot
| Connection | Tab and 00 | Slim (pantograph or scissor keys) | BS and = | NumLock handling stated | Connector |
| :— | :— | :— | :— | :— | :— |
| Wired USB | Listed | Listed | Listed | Listed | USB-A |
| 2.4 GHz | Listed | Listed | Not listed | Listed | USB-A |
| Bluetooth | Listed | Listed | Not listed | Listed | None (uses the PC’s Bluetooth) |&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The connector column describes the ELECOM models.&lt;/p&gt;
&lt;p&gt;In this guide, each column is judged on its own, so no single model necessarily meets every condition in a row.&lt;/p&gt;
&lt;p&gt;Per the makers’ specs, for example, no slim wired model lists both BS and =. Use the finder below to check combinations.&lt;/p&gt;
&lt;p&gt;In the calculator, pick a connection, the keys you want, whether it should be slim, and whether NumLock handling must be stated. It lists models whose official specs match your choices. The US picks are in the last section.&lt;/p&gt;
&lt;section id=&quot;numeric-keypad-finder&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;numeric-keypad-finder-title&quot;&gt; &lt;h3 id=&quot;numeric-keypad-finder-title&quot;&gt;Find a numeric keypad by connection and keys&lt;/h3&gt; &lt;p&gt;Pick a connection (wired USB, 2.4 GHz or Bluetooth), the keys you want (Tab, 00, BS, =), whether it should be slim, and whether NumLock handling must be stated. It lists the models whose official specs match and suggests one keypad you can buy.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;perixx_peripad_202c&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Perixx PERIPAD-202C&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/619tjEsM-IL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Perixx PERIPAD-202C&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B09R81L8MT?q=Perixx+PERIPAD-202C&amp;amp;us=B09R81L8MT&amp;amp;l=en&quot; aria-label=&quot;View Perixx PERIPAD-202C on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;models&quot;:{&quot;tcm011&quot;:{&quot;model&quot;:&quot;TK-TCM011BK&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;エレコム&quot;,&quot;en&quot;:&quot;ELECOM&quot;},&quot;conn&quot;:&quot;usb&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;membrane&quot;,&quot;w&quot;:90,&quot;d&quot;:140,&quot;h&quot;:23.5,&quot;g&quot;:110,&quot;size&quot;:null,&quot;bat&quot;:null,&quot;batt&quot;:null,&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11/10/8/8.1/RT/RT8.1/7(SP1)/Vista(SP2)/XP(SP3)&quot;,&quot;en&quot;:&quot;Windows 11/10/8/8.1/RT/RT8.1/7(SP1)/Vista(SP2)/XP(SP3)&quot;},&quot;win11&quot;:true,&quot;mac&quot;:false,&quot;numlock&quot;:{&quot;ja&quot;:&quot;「NumLock」問題をハードウェアで解決しており、対策ソフトのインストールは不要&quot;,&quot;en&quot;:&quot;Solves the NumLock problem in hardware; no software needed&quot;},&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00&quot;,&quot;en&quot;:&quot;Tab and 00&quot;},&quot;plug&quot;:&quot;USB-A&quot;,&quot;host&quot;:null},&quot;tcm012&quot;:{&quot;model&quot;:&quot;TK-TCM012BK&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;エレコム&quot;,&quot;en&quot;:&quot;ELECOM&quot;},&quot;conn&quot;:&quot;usb&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;membrane&quot;,&quot;w&quot;:90,&quot;d&quot;:140,&quot;h&quot;:23.5,&quot;g&quot;:114,&quot;size&quot;:null,&quot;bat&quot;:null,&quot;batt&quot;:null,&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11/10/8/8.1/RT/RT8.1/7(SP1)/Vista(SP2)/XP(SP3)&quot;,&quot;en&quot;:&quot;Windows 11/10/8/8.1/RT/RT8.1/7(SP1)/Vista(SP2)/XP(SP3)&quot;},&quot;win11&quot;:true,&quot;mac&quot;:false,&quot;numlock&quot;:{&quot;ja&quot;:&quot;「NumLock」問題をハードウェアで解決しており、対策ソフトのインストールは不要&quot;,&quot;en&quot;:&quot;Solves the NumLock problem in hardware; no software needed&quot;},&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00（USB2.0ハブ2ポート付き）&quot;,&quot;en&quot;:&quot;Tab and 00 (2-port USB 2.0 hub)&quot;},&quot;plug&quot;:&quot;USB-A&quot;,&quot;host&quot;:null},&quot;tcm013&quot;:{&quot;model&quot;:&quot;TK-TCM013BK&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;エレコム&quot;,&quot;en&quot;:&quot;ELECOM&quot;},&quot;conn&quot;:&quot;usb&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;membrane&quot;,&quot;w&quot;:78,&quot;d&quot;:127.5,&quot;h&quot;:24,&quot;g&quot;:97,&quot;size&quot;:null,&quot;bat&quot;:null,&quot;batt&quot;:null,&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11/10/8.1/RT8.1/7(SP1)/Vista(SP2)&quot;,&quot;en&quot;:&quot;Windows 11/10/8.1/RT8.1/7(SP1)/Vista(SP2)&quot;},&quot;win11&quot;:true,&quot;mac&quot;:false,&quot;numlock&quot;:null,&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00&quot;,&quot;en&quot;:&quot;Tab and 00&quot;},&quot;plug&quot;:&quot;USB-A&quot;,&quot;host&quot;:null},&quot;tcm014&quot;:{&quot;model&quot;:&quot;TK-TCM014BK&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;エレコム&quot;,&quot;en&quot;:&quot;ELECOM&quot;},&quot;conn&quot;:&quot;usb&quot;,&quot;keys&quot;:[],&quot;sw&quot;:&quot;membrane&quot;,&quot;w&quot;:78,&quot;d&quot;:127.5,&quot;h&quot;:24,&quot;g&quot;:97,&quot;size&quot;:null,&quot;bat&quot;:null,&quot;batt&quot;:null,&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11/10/8.1/RT8.1/7(SP1)/Vista(SP2)&quot;,&quot;en&quot;:&quot;Windows 11/10/8.1/RT8.1/7(SP1)/Vista(SP2)&quot;},&quot;win11&quot;:true,&quot;mac&quot;:false,&quot;numlock&quot;:null,&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;記載なし（USB2.0ハブ2ポート付き）&quot;,&quot;en&quot;:&quot;Not stated (2-port USB 2.0 hub)&quot;},&quot;plug&quot;:&quot;USB-A&quot;,&quot;host&quot;:null},&quot;tcm015&quot;:{&quot;model&quot;:&quot;TK-TCM015BK&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;エレコム&quot;,&quot;en&quot;:&quot;ELECOM&quot;},&quot;conn&quot;:&quot;usb&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;,&quot;bs&quot;,&quot;=&quot;],&quot;sw&quot;:&quot;membrane&quot;,&quot;w&quot;:90,&quot;d&quot;:170,&quot;h&quot;:24.5,&quot;g&quot;:143,&quot;size&quot;:null,&quot;bat&quot;:null,&quot;batt&quot;:null,&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11/10/8.1/RT8.1/7(SP1)/Vista(SP2)（Windowsのみ）&quot;,&quot;en&quot;:&quot;Windows 11/10/8.1/RT8.1/7(SP1)/Vista(SP2) (Windows only)&quot;},&quot;win11&quot;:true,&quot;mac&quot;:false,&quot;numlock&quot;:null,&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Esc・Tab・=・(・)・00・BS、Excel／電卓ソフト／ブラウザの起動キー3つ（USB2.0ハブ2ポート付き）&quot;,&quot;en&quot;:&quot;Esc, Tab, =, (, ), 00 and BS keys, plus three hotkeys that launch Excel, a calculator app and a browser (2-port USB 2.0 hub)&quot;},&quot;plug&quot;:&quot;USB-A&quot;,&quot;host&quot;:null},&quot;tcm021&quot;:{&quot;model&quot;:&quot;TK-TCM021SKBK&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;エレコム&quot;,&quot;en&quot;:&quot;ELECOM&quot;},&quot;conn&quot;:&quot;usb&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;membrane&quot;,&quot;w&quot;:89.3,&quot;d&quot;:135.3,&quot;h&quot;:26.6,&quot;g&quot;:90,&quot;size&quot;:null,&quot;bat&quot;:null,&quot;batt&quot;:null,&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11/10/8.1、macOS Big Sur 11、ChromeOS&quot;,&quot;en&quot;:&quot;Windows 11/10/8.1, macOS Big Sur 11, ChromeOS&quot;},&quot;win11&quot;:true,&quot;mac&quot;:true,&quot;numlock&quot;:null,&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00&quot;,&quot;en&quot;:&quot;Tab and 00&quot;},&quot;plug&quot;:&quot;USB-A&quot;,&quot;host&quot;:null},&quot;tcp018&quot;:{&quot;model&quot;:&quot;TK-TCP018BK&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;エレコム&quot;,&quot;en&quot;:&quot;ELECOM&quot;},&quot;conn&quot;:&quot;usb&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;pantograph&quot;,&quot;w&quot;:89.6,&quot;d&quot;:127.5,&quot;h&quot;:21.5,&quot;g&quot;:110,&quot;size&quot;:null,&quot;bat&quot;:null,&quot;batt&quot;:null,&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11/10/8.1/7/XP、macOS High Sierra 10.13&quot;,&quot;en&quot;:&quot;Windows 11/10/8.1/7/XP, macOS High Sierra 10.13&quot;},&quot;win11&quot;:true,&quot;mac&quot;:true,&quot;numlock&quot;:null,&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00&quot;,&quot;en&quot;:&quot;Tab and 00&quot;},&quot;plug&quot;:&quot;USB-A&quot;,&quot;host&quot;:null},&quot;tdm017&quot;:{&quot;model&quot;:&quot;TK-TDM017BK&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;エレコム&quot;,&quot;en&quot;:&quot;ELECOM&quot;},&quot;conn&quot;:&quot;rx&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;membrane&quot;,&quot;w&quot;:90,&quot;d&quot;:140,&quot;h&quot;:26.5,&quot;g&quot;:107,&quot;size&quot;:null,&quot;bat&quot;:{&quot;value&quot;:1.3,&quot;unit&quot;:&quot;年&quot;,&quot;kind&quot;:&quot;period&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;ja&quot;:&quot;1.3年（想定電池使用期間・アルカリ乾電池使用時・メーカーのテスト値）&quot;,&quot;en&quot;:&quot;1.3 years (estimated battery life, with alkaline batteries, maker&apos;s own test)&quot;},&quot;batt&quot;:{&quot;ja&quot;:&quot;単3形電池1本&quot;,&quot;en&quot;:&quot;one AA battery&quot;},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11/10/8.1/7(SP1)/XP(SP3)（USBポートを装備したPC/AT互換機）&quot;,&quot;en&quot;:&quot;Windows 11/10/8.1/7(SP1)/XP(SP3) (PC/AT compatible with a USB port)&quot;},&quot;win11&quot;:true,&quot;mac&quot;:false,&quot;numlock&quot;:null,&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00&quot;,&quot;en&quot;:&quot;Tab and 00&quot;},&quot;plug&quot;:&quot;USB-A&quot;,&quot;host&quot;:null},&quot;tdm022&quot;:{&quot;model&quot;:&quot;TK-TDM022SKBK&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;エレコム&quot;,&quot;en&quot;:&quot;ELECOM&quot;},&quot;conn&quot;:&quot;rx&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;membrane&quot;,&quot;w&quot;:89.3,&quot;d&quot;:135.3,&quot;h&quot;:26.6,&quot;g&quot;:80,&quot;size&quot;:null,&quot;bat&quot;:{&quot;value&quot;:1.5,&quot;unit&quot;:&quot;年&quot;,&quot;kind&quot;:&quot;period&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;ja&quot;:&quot;1.5年（想定電池使用期間・アルカリ乾電池使用時・1日8時間のパソコン操作を想定）&quot;,&quot;en&quot;:&quot;1.5 years (estimated battery life, with alkaline batteries, assuming 8 hours of PC use a day)&quot;},&quot;batt&quot;:{&quot;ja&quot;:&quot;単4形電池1本&quot;,&quot;en&quot;:&quot;one AAA battery&quot;},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11/10/8.1、macOS Big Sur 11、ChromeOS&quot;,&quot;en&quot;:&quot;Windows 11/10/8.1, macOS Big Sur 11, ChromeOS&quot;},&quot;win11&quot;:true,&quot;mac&quot;:true,&quot;numlock&quot;:null,&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00&quot;,&quot;en&quot;:&quot;Tab and 00&quot;},&quot;plug&quot;:&quot;USB-A&quot;,&quot;host&quot;:null},&quot;tdp019&quot;:{&quot;model&quot;:&quot;TK-TDP019BK&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;エレコム&quot;,&quot;en&quot;:&quot;ELECOM&quot;},&quot;conn&quot;:&quot;rx&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;pantograph&quot;,&quot;w&quot;:89.6,&quot;d&quot;:127.5,&quot;h&quot;:21.5,&quot;g&quot;:100,&quot;size&quot;:null,&quot;bat&quot;:{&quot;value&quot;:1,&quot;unit&quot;:&quot;年&quot;,&quot;kind&quot;:&quot;period&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;ja&quot;:&quot;1年（想定電池使用期間・アルカリ乾電池使用時・メーカーのテスト値）&quot;,&quot;en&quot;:&quot;1 year (estimated battery life, with alkaline batteries, maker&apos;s own test)&quot;},&quot;batt&quot;:{&quot;ja&quot;:&quot;単4形電池1本&quot;,&quot;en&quot;:&quot;one AAA battery&quot;},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11/10/8.1/7/XP、macOS High Sierra 10.13&quot;,&quot;en&quot;:&quot;Windows 11/10/8.1/7/XP, macOS High Sierra 10.13&quot;},&quot;win11&quot;:true,&quot;mac&quot;:true,&quot;numlock&quot;:null,&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00&quot;,&quot;en&quot;:&quot;Tab and 00&quot;},&quot;plug&quot;:&quot;USB-A&quot;,&quot;host&quot;:null},&quot;tbm023&quot;:{&quot;model&quot;:&quot;TK-TBM023SKBK&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;エレコム&quot;,&quot;en&quot;:&quot;ELECOM&quot;},&quot;conn&quot;:&quot;bt&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;membrane&quot;,&quot;w&quot;:89.3,&quot;d&quot;:135.3,&quot;h&quot;:26.6,&quot;g&quot;:80,&quot;size&quot;:null,&quot;bat&quot;:{&quot;value&quot;:10,&quot;unit&quot;:&quot;か月&quot;,&quot;kind&quot;:&quot;period&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;ja&quot;:&quot;10か月（想定電池使用期間・アルカリ乾電池使用時・1日8時間のパソコン操作を想定）&quot;,&quot;en&quot;:&quot;10 months (estimated battery life, with alkaline batteries, assuming 8 hours of PC use a day)&quot;},&quot;batt&quot;:{&quot;ja&quot;:&quot;単4形電池1本&quot;,&quot;en&quot;:&quot;one AAA battery&quot;},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11/10/8.1、macOS Big Sur 11、ChromeOS&quot;,&quot;en&quot;:&quot;Windows 11/10/8.1, macOS Big Sur 11, ChromeOS&quot;},&quot;win11&quot;:true,&quot;mac&quot;:true,&quot;numlock&quot;:null,&quot;pair&quot;:{&quot;ja&quot;:&quot;1台のみ（ペアリングして使う）&quot;,&quot;en&quot;:&quot;One device at a time (paired)&quot;},&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00&quot;,&quot;en&quot;:&quot;Tab and 00&quot;},&quot;plug&quot;:null,&quot;host&quot;:&quot;Bluetooth(R)HOGPプロファイルに対応したWindows、macOS、Chrome OS搭載機。HOGPに対応していないパソコンでも、規格に適合したBluetoothアダプターを用意することで使用可能&quot;},&quot;tbp020&quot;:{&quot;model&quot;:&quot;TK-TBP020BK&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;エレコム&quot;,&quot;en&quot;:&quot;ELECOM&quot;},&quot;conn&quot;:&quot;bt&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;pantograph&quot;,&quot;w&quot;:89.6,&quot;d&quot;:127.5,&quot;h&quot;:21.5,&quot;g&quot;:100,&quot;size&quot;:null,&quot;bat&quot;:{&quot;value&quot;:1,&quot;unit&quot;:&quot;年&quot;,&quot;kind&quot;:&quot;period&quot;,&quot;maker&quot;:&quot;elecom&quot;,&quot;ja&quot;:&quot;1年（想定電池使用期間・アルカリ乾電池使用時・メーカーのテスト値）&quot;,&quot;en&quot;:&quot;1 year (estimated battery life, with alkaline batteries, maker&apos;s own test)&quot;},&quot;batt&quot;:{&quot;ja&quot;:&quot;単4形電池1本&quot;,&quot;en&quot;:&quot;one AAA battery&quot;},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11/10/8.1/7/XP、macOS High Sierra 10.13&quot;,&quot;en&quot;:&quot;Windows 11/10/8.1/7/XP, macOS High Sierra 10.13&quot;},&quot;win11&quot;:true,&quot;mac&quot;:true,&quot;numlock&quot;:null,&quot;pair&quot;:{&quot;ja&quot;:&quot;1台のみ（ペアリングして使う）&quot;,&quot;en&quot;:&quot;One device at a time (paired)&quot;},&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00&quot;,&quot;en&quot;:&quot;Tab and 00&quot;},&quot;plug&quot;:null,&quot;host&quot;:&quot;Bluetooth(R)HIDプロファイルに対応したWindows、macOS搭載機。HIDプロファイルに対応していないパソコンでも、規格に適合したBluetoothアダプタを用意することで使用可能&quot;},&quot;ntbt21&quot;:{&quot;model&quot;:&quot;NT-BT21BK&quot;,&quot;maker&quot;:&quot;sanwa&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;サンワサプライ&quot;,&quot;en&quot;:&quot;Sanwa Supply&quot;},&quot;conn&quot;:&quot;bt&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;pantograph&quot;,&quot;w&quot;:86,&quot;d&quot;:130,&quot;h&quot;:17,&quot;g&quot;:70,&quot;size&quot;:null,&quot;bat&quot;:{&quot;value&quot;:150,&quot;unit&quot;:&quot;時間&quot;,&quot;kind&quot;:&quot;continuous&quot;,&quot;maker&quot;:&quot;sanwa&quot;,&quot;ja&quot;:&quot;150時間（連続動作時間）&quot;,&quot;en&quot;:&quot;150 hours (continuous operating time)&quot;},&quot;batt&quot;:{&quot;ja&quot;:&quot;単4形乾電池1本&quot;,&quot;en&quot;:&quot;one AAA battery&quot;},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11・10・8.1・8&quot;,&quot;en&quot;:&quot;Windows 11, 10, 8.1, 8&quot;},&quot;win11&quot;:true,&quot;mac&quot;:false,&quot;numlock&quot;:{&quot;ja&quot;:&quot;NumLock非連動（メーカー記載）&quot;,&quot;en&quot;:&quot;NumLock-independent (maker statement)&quot;},&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00&quot;,&quot;en&quot;:&quot;Tab and 00&quot;},&quot;plug&quot;:null,&quot;host&quot;:null},&quot;ntbt23&quot;:{&quot;model&quot;:&quot;NT-BT23BK&quot;,&quot;maker&quot;:&quot;sanwa&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;サンワサプライ&quot;,&quot;en&quot;:&quot;Sanwa Supply&quot;},&quot;conn&quot;:&quot;bt&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;pantograph&quot;,&quot;w&quot;:86,&quot;d&quot;:130,&quot;h&quot;:17,&quot;g&quot;:70,&quot;size&quot;:null,&quot;bat&quot;:{&quot;value&quot;:150,&quot;unit&quot;:&quot;時間&quot;,&quot;kind&quot;:&quot;continuous&quot;,&quot;maker&quot;:&quot;sanwa&quot;,&quot;ja&quot;:&quot;150時間（連続動作時間）&quot;,&quot;en&quot;:&quot;150 hours (continuous operating time)&quot;},&quot;batt&quot;:{&quot;ja&quot;:&quot;単4形乾電池1本&quot;,&quot;en&quot;:&quot;one AAA battery&quot;},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11・10・8.1・8&quot;,&quot;en&quot;:&quot;Windows 11, 10, 8.1, 8&quot;},&quot;win11&quot;:true,&quot;mac&quot;:false,&quot;numlock&quot;:{&quot;ja&quot;:&quot;NumLock非連動（メーカー記載）&quot;,&quot;en&quot;:&quot;NumLock-independent (maker statement)&quot;},&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00&quot;,&quot;en&quot;:&quot;Tab and 00&quot;},&quot;plug&quot;:null,&quot;host&quot;:null},&quot;ntwl21&quot;:{&quot;model&quot;:&quot;NT-WL21BK&quot;,&quot;maker&quot;:&quot;sanwa&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;サンワサプライ&quot;,&quot;en&quot;:&quot;Sanwa Supply&quot;},&quot;conn&quot;:&quot;rx&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;pantograph&quot;,&quot;w&quot;:86,&quot;d&quot;:130,&quot;h&quot;:17,&quot;g&quot;:70,&quot;size&quot;:null,&quot;bat&quot;:{&quot;value&quot;:70,&quot;unit&quot;:&quot;時間&quot;,&quot;kind&quot;:&quot;continuous&quot;,&quot;maker&quot;:&quot;sanwa&quot;,&quot;ja&quot;:&quot;70時間（連続動作時間・アルカリ電池使用時）&quot;,&quot;en&quot;:&quot;70 hours (continuous operating time, with alkaline batteries)&quot;},&quot;batt&quot;:{&quot;ja&quot;:&quot;単4形乾電池1本&quot;,&quot;en&quot;:&quot;one AAA battery&quot;},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11・10・8.1・8&quot;,&quot;en&quot;:&quot;Windows 11, 10, 8.1, 8&quot;},&quot;win11&quot;:true,&quot;mac&quot;:false,&quot;numlock&quot;:{&quot;ja&quot;:&quot;NumLock非連動（メーカー記載）&quot;,&quot;en&quot;:&quot;NumLock-independent (maker statement)&quot;},&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00&quot;,&quot;en&quot;:&quot;Tab and 00&quot;},&quot;plug&quot;:null,&quot;host&quot;:null},&quot;ntwl23&quot;:{&quot;model&quot;:&quot;NT-WL23BK&quot;,&quot;maker&quot;:&quot;sanwa&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;サンワサプライ&quot;,&quot;en&quot;:&quot;Sanwa Supply&quot;},&quot;conn&quot;:&quot;rx&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;pantograph&quot;,&quot;w&quot;:86,&quot;d&quot;:130,&quot;h&quot;:17,&quot;g&quot;:70,&quot;size&quot;:null,&quot;bat&quot;:{&quot;value&quot;:70,&quot;unit&quot;:&quot;時間&quot;,&quot;kind&quot;:&quot;continuous&quot;,&quot;maker&quot;:&quot;sanwa&quot;,&quot;ja&quot;:&quot;70時間（連続動作時間・アルカリ電池使用時）&quot;,&quot;en&quot;:&quot;70 hours (continuous operating time, with alkaline batteries)&quot;},&quot;batt&quot;:{&quot;ja&quot;:&quot;単4形乾電池1本&quot;,&quot;en&quot;:&quot;one AAA battery&quot;},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11・10・8.1・8&quot;,&quot;en&quot;:&quot;Windows 11, 10, 8.1, 8&quot;},&quot;win11&quot;:true,&quot;mac&quot;:false,&quot;numlock&quot;:{&quot;ja&quot;:&quot;NumLock非連動（メーカー記載）&quot;,&quot;en&quot;:&quot;NumLock-independent (maker statement)&quot;},&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00&quot;,&quot;en&quot;:&quot;Tab and 00&quot;},&quot;plug&quot;:null,&quot;host&quot;:null},&quot;ntbt27&quot;:{&quot;model&quot;:&quot;NT-BT27BK&quot;,&quot;maker&quot;:&quot;sanwa&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;サンワサプライ&quot;,&quot;en&quot;:&quot;Sanwa Supply&quot;},&quot;conn&quot;:&quot;bt&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;=&quot;],&quot;sw&quot;:&quot;pantograph&quot;,&quot;w&quot;:147.7,&quot;d&quot;:117.8,&quot;h&quot;:18,&quot;g&quot;:95,&quot;size&quot;:null,&quot;bat&quot;:{&quot;value&quot;:240,&quot;unit&quot;:&quot;時間&quot;,&quot;kind&quot;:&quot;continuous&quot;,&quot;maker&quot;:&quot;sanwa&quot;,&quot;ja&quot;:&quot;240時間（連続動作時間）&quot;,&quot;en&quot;:&quot;240 hours (continuous operating time)&quot;},&quot;batt&quot;:{&quot;ja&quot;:&quot;単4形乾電池1本&quot;,&quot;en&quot;:&quot;one AAA battery&quot;},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11・10（日本語版Windowsのみ）&quot;,&quot;en&quot;:&quot;Windows 11, 10 (Japanese-language Windows only)&quot;},&quot;win11&quot;:true,&quot;mac&quot;:false,&quot;numlock&quot;:{&quot;ja&quot;:&quot;NumLock非連動（メーカー記載）&quot;,&quot;en&quot;:&quot;NumLock-independent (maker statement)&quot;},&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Esc・F2・F4・Tab・=・(・)・カンマ・コピー・貼り付け・検索（00キー・BSキーの記載なし）&quot;,&quot;en&quot;:&quot;Esc, F2, F4, Tab, =, (, ), comma, copy, paste and find (no 00 or BS key listed)&quot;},&quot;plug&quot;:null,&quot;host&quot;:null},&quot;ntwl27&quot;:{&quot;model&quot;:&quot;NT-WL27BK&quot;,&quot;maker&quot;:&quot;sanwa&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;サンワサプライ&quot;,&quot;en&quot;:&quot;Sanwa Supply&quot;},&quot;conn&quot;:&quot;rx&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;=&quot;],&quot;sw&quot;:&quot;pantograph&quot;,&quot;w&quot;:147.7,&quot;d&quot;:117.8,&quot;h&quot;:18,&quot;g&quot;:110,&quot;size&quot;:null,&quot;bat&quot;:{&quot;value&quot;:800,&quot;unit&quot;:&quot;時間&quot;,&quot;kind&quot;:&quot;continuous&quot;,&quot;maker&quot;:&quot;sanwa&quot;,&quot;ja&quot;:&quot;800時間（連続動作時間）&quot;,&quot;en&quot;:&quot;800 hours (continuous operating time)&quot;},&quot;batt&quot;:{&quot;ja&quot;:&quot;単4形乾電池1本&quot;,&quot;en&quot;:&quot;one AAA battery&quot;},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11・10（日本語版Windowsのみ）&quot;,&quot;en&quot;:&quot;Windows 11, 10 (Japanese-language Windows only)&quot;},&quot;win11&quot;:true,&quot;mac&quot;:false,&quot;numlock&quot;:{&quot;ja&quot;:&quot;NumLock非連動（メーカー記載）&quot;,&quot;en&quot;:&quot;NumLock-independent (maker statement)&quot;},&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Esc・F2・F4・Tab・=・(・)・カンマ・コピー・貼り付け・検索（00キー・BSキーの記載なし）&quot;,&quot;en&quot;:&quot;Esc, F2, F4, Tab, =, (, ), comma, copy, paste and find (no 00 or BS key listed)&quot;},&quot;plug&quot;:null,&quot;host&quot;:null},&quot;nt27u&quot;:{&quot;model&quot;:&quot;NT-27UBK&quot;,&quot;maker&quot;:&quot;sanwa&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;サンワサプライ&quot;,&quot;en&quot;:&quot;Sanwa Supply&quot;},&quot;conn&quot;:&quot;usb&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;=&quot;],&quot;sw&quot;:&quot;pantograph&quot;,&quot;w&quot;:147.7,&quot;d&quot;:117.8,&quot;h&quot;:18,&quot;g&quot;:110,&quot;size&quot;:null,&quot;bat&quot;:null,&quot;batt&quot;:null,&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 11・10（日本語版Windowsのみ）&quot;,&quot;en&quot;:&quot;Windows 11, 10 (Japanese-language Windows only)&quot;},&quot;win11&quot;:true,&quot;mac&quot;:false,&quot;numlock&quot;:{&quot;ja&quot;:&quot;NumLock非連動（メーカー記載。NumLockの表示がわかるLED付き）&quot;,&quot;en&quot;:&quot;NumLock-independent (maker statement; has a NumLock LED)&quot;},&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Esc・F2・F4・Tab・=・(・)・カンマ・コピー・貼り付け・検索（00キー・BSキーの記載なし）&quot;,&quot;en&quot;:&quot;Esc, F2, F4, Tab, =, (, ), comma, copy, paste and find (no 00 or BS key listed)&quot;},&quot;plug&quot;:null,&quot;host&quot;:null},&quot;bstk130&quot;:{&quot;model&quot;:&quot;BSTK130BK&quot;,&quot;maker&quot;:&quot;buffalo&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;バッファロー&quot;,&quot;en&quot;:&quot;BUFFALO&quot;},&quot;conn&quot;:&quot;usb&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;membrane&quot;,&quot;w&quot;:90,&quot;d&quot;:130,&quot;h&quot;:20,&quot;g&quot;:115,&quot;size&quot;:null,&quot;bat&quot;:null,&quot;batt&quot;:null,&quot;os&quot;:{&quot;ja&quot;:&quot;Windowsパソコン（USBインターフェースを標準搭載したもの）。対応OSの詳細は対応情報ページ&quot;,&quot;en&quot;:&quot;Windows PCs with a standard USB interface; see the compatibility page for OS details&quot;},&quot;win11&quot;:false,&quot;mac&quot;:false,&quot;numlock&quot;:{&quot;ja&quot;:&quot;本体側のNumLockとUSBテンキー側のNumLockを同期させないよう設計されております（メーカー記載）&quot;,&quot;en&quot;:&quot;Designed so the keypad&apos;s NumLock does not sync with the PC&apos;s NumLock (maker statement)&quot;},&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00・Clear（USBハブ機能付きの表示あり）&quot;,&quot;en&quot;:&quot;Tab, 00 and Clear (listed with a USB hub function)&quot;},&quot;plug&quot;:null,&quot;host&quot;:null},&quot;bstk135&quot;:{&quot;model&quot;:&quot;BSTK135BK&quot;,&quot;maker&quot;:&quot;buffalo&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;バッファロー&quot;,&quot;en&quot;:&quot;BUFFALO&quot;},&quot;conn&quot;:&quot;usb&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;membrane&quot;,&quot;w&quot;:90,&quot;d&quot;:130,&quot;h&quot;:20,&quot;g&quot;:115,&quot;size&quot;:null,&quot;bat&quot;:null,&quot;batt&quot;:null,&quot;os&quot;:{&quot;ja&quot;:&quot;Windowsパソコン（USBインターフェースを標準搭載したもの）。対応OSの詳細は対応情報ページ&quot;,&quot;en&quot;:&quot;Windows PCs with a standard USB interface; see the compatibility page for OS details&quot;},&quot;win11&quot;:false,&quot;mac&quot;:false,&quot;numlock&quot;:{&quot;ja&quot;:&quot;本体側のNumLockとUSBテンキー側のNumLockを同期させないよう設計されております（メーカー記載）&quot;,&quot;en&quot;:&quot;Designed so the keypad&apos;s NumLock does not sync with the PC&apos;s NumLock (maker statement)&quot;},&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00・Clear（USBハブ機能付きの表示あり）&quot;,&quot;en&quot;:&quot;Tab, 00 and Clear (listed with a USB hub function)&quot;},&quot;plug&quot;:null,&quot;host&quot;:null},&quot;bstk120&quot;:{&quot;model&quot;:&quot;BSTK120BKZ&quot;,&quot;maker&quot;:&quot;buffalo&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;バッファロー&quot;,&quot;en&quot;:&quot;BUFFALO&quot;},&quot;conn&quot;:&quot;usb&quot;,&quot;keys&quot;:[&quot;tab&quot;,&quot;00&quot;],&quot;sw&quot;:&quot;membrane&quot;,&quot;w&quot;:90,&quot;d&quot;:145,&quot;h&quot;:24,&quot;g&quot;:110,&quot;size&quot;:null,&quot;bat&quot;:null,&quot;batt&quot;:null,&quot;os&quot;:{&quot;ja&quot;:&quot;Windowsパソコン（USBインターフェースを標準搭載したもの）。対応OSの詳細は対応情報ページ&quot;,&quot;en&quot;:&quot;Windows PCs with a standard USB interface; see the compatibility page for OS details&quot;},&quot;win11&quot;:false,&quot;mac&quot;:false,&quot;numlock&quot;:{&quot;ja&quot;:&quot;本体側のNumLockとUSBテンキー側のNumLockを同期させないよう設計されております（メーカー記載）&quot;,&quot;en&quot;:&quot;Designed so the keypad&apos;s NumLock does not sync with the PC&apos;s NumLock (maker statement)&quot;},&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00・Clear（USBハブ機能付きの表示あり）&quot;,&quot;en&quot;:&quot;Tab, 00 and Clear (listed with a USB hub function)&quot;},&quot;plug&quot;:null,&quot;host&quot;:null},&quot;sat&quot;:{&quot;model&quot;:&quot;ST-XLABKM&quot;,&quot;maker&quot;:&quot;satechi&quot;,&quot;makerL&quot;:{&quot;ja&quot;:&quot;Satechi&quot;,&quot;en&quot;:&quot;Satechi&quot;},&quot;conn&quot;:&quot;bt&quot;,&quot;keys&quot;:[],&quot;sw&quot;:null,&quot;w&quot;:null,&quot;d&quot;:null,&quot;h&quot;:null,&quot;g&quot;:null,&quot;size&quot;:{&quot;ja&quot;:&quot;5.8 x 4.5 x 0.4 inches、4.4 oz&quot;,&quot;en&quot;:&quot;5.8 x 4.5 x 0.4 inches, 4.4 oz&quot;},&quot;bat&quot;:null,&quot;batt&quot;:null,&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 10の端末が対応一覧にある（Windows 7・8は非対応、Windows 10はコントロールパネルから追加）。Windows 11の記載なし。MacのショートカットキーがあるMac向け製品&quot;,&quot;en&quot;:&quot;Lists Windows 10 devices (not Windows 7 or 8; pair via Control Panel on Windows 10). Windows 11 not stated. Built mainly for Mac, with macOS shortcut keys&quot;},&quot;win11&quot;:false,&quot;mac&quot;:true,&quot;numlock&quot;:null,&quot;pair&quot;:null,&quot;extra&quot;:{&quot;ja&quot;:&quot;Tab・00キーの記載なし（Mac向けのショートカットキー付き）&quot;,&quot;en&quot;:&quot;No Tab or 00 key listed (has Mac shortcut keys)&quot;}}},&quot;order&quot;:[&quot;tcm011&quot;,&quot;tcm012&quot;,&quot;tcm013&quot;,&quot;tcm014&quot;,&quot;tcm015&quot;,&quot;tcm021&quot;,&quot;tcp018&quot;,&quot;tdm017&quot;,&quot;tdm022&quot;,&quot;tdp019&quot;,&quot;tbm023&quot;,&quot;tbp020&quot;,&quot;ntbt21&quot;,&quot;ntbt23&quot;,&quot;ntwl21&quot;,&quot;ntwl23&quot;,&quot;ntbt27&quot;,&quot;ntwl27&quot;,&quot;nt27u&quot;,&quot;bstk130&quot;,&quot;bstk135&quot;,&quot;bstk120&quot;,&quot;sat&quot;],&quot;conns&quot;:[&quot;any&quot;,&quot;usb&quot;,&quot;rx&quot;,&quot;bt&quot;],&quot;keys&quot;:[&quot;any&quot;,&quot;tab00&quot;,&quot;eq&quot;,&quot;full&quot;],&quot;forms&quot;:[&quot;any&quot;,&quot;thin&quot;],&quot;numlocks&quot;:[&quot;any&quot;,&quot;stated&quot;],&quot;products&quot;:{&quot;elecom_tcm011bk&quot;:{&quot;model&quot;:&quot;tcm011&quot;},&quot;elecom_tcm012bk&quot;:{&quot;model&quot;:&quot;tcm012&quot;},&quot;elecom_tcm013bk&quot;:{&quot;model&quot;:&quot;tcm013&quot;},&quot;elecom_tcm014bk&quot;:{&quot;model&quot;:&quot;tcm014&quot;},&quot;elecom_tcm015bk&quot;:{&quot;model&quot;:&quot;tcm015&quot;},&quot;elecom_tcm021skbk&quot;:{&quot;model&quot;:&quot;tcm021&quot;},&quot;elecom_tcp018bk&quot;:{&quot;model&quot;:&quot;tcp018&quot;},&quot;elecom_tdm017bk&quot;:{&quot;model&quot;:&quot;tdm017&quot;},&quot;elecom_tdm022skbk&quot;:{&quot;model&quot;:&quot;tdm022&quot;},&quot;elecom_tdp019bk&quot;:{&quot;model&quot;:&quot;tdp019&quot;},&quot;elecom_tbm023skbk&quot;:{&quot;model&quot;:&quot;tbm023&quot;},&quot;elecom_tbp020bk&quot;:{&quot;model&quot;:&quot;tbp020&quot;},&quot;sanwa_nt_bt21bk&quot;:{&quot;model&quot;:&quot;ntbt21&quot;},&quot;sanwa_nt_bt23bk&quot;:{&quot;model&quot;:&quot;ntbt23&quot;},&quot;sanwa_nt_wl21bk&quot;:{&quot;model&quot;:&quot;ntwl21&quot;},&quot;sanwa_nt_wl23bk&quot;:{&quot;model&quot;:&quot;ntwl23&quot;},&quot;sanwa_nt_bt27bk&quot;:{&quot;model&quot;:&quot;ntbt27&quot;},&quot;sanwa_nt_wl27bk&quot;:{&quot;model&quot;:&quot;ntwl27&quot;},&quot;sanwa_nt_27ubk&quot;:{&quot;model&quot;:&quot;nt27u&quot;},&quot;buffalo_bstk130bk&quot;:{&quot;model&quot;:&quot;bstk130&quot;},&quot;buffalo_bstk135bk&quot;:{&quot;model&quot;:&quot;bstk135&quot;},&quot;buffalo_bstk120bkz&quot;:{&quot;model&quot;:&quot;bstk120&quot;},&quot;satechi_extended_keypad&quot;:{&quot;model&quot;:&quot;sat&quot;}},&quot;pickOnlySlots&quot;:true,&quot;buy&quot;:{&quot;elecom_tcm011bk&quot;:{&quot;type&quot;:&quot;keypad&quot;,&quot;ja&quot;:&quot;エレコム TK-TCM011BK&quot;,&quot;en&quot;:&quot;ELECOM TK-TCM011BK&quot;,&quot;jp&quot;:&quot;B00HL8Z6KS&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B00HL8Z6KS&quot;,&quot;title&quot;:&quot;エレコム TK-TCM011BK&quot;,&quot;searchQuery&quot;:&quot;エレコム TK-TCM011BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/91Rn0R4S15L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4953103550643&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;elecom_tcp018bk&quot;:{&quot;type&quot;:&quot;keypad&quot;,&quot;ja&quot;:&quot;エレコム TK-TCP018BK&quot;,&quot;en&quot;:&quot;ELECOM TK-TCP018BK&quot;,&quot;jp&quot;:&quot;B07FP75FD7&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B07FP75FD7&quot;,&quot;title&quot;:&quot;エレコム TK-TCP018BK&quot;,&quot;searchQuery&quot;:&quot;エレコム TK-TCP018BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81TErgfxgLL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4953103356061&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1},&quot;elecom_tcm015bk&quot;:{&quot;type&quot;:&quot;keypad&quot;,&quot;ja&quot;:&quot;エレコム TK-TCM015BK&quot;,&quot;en&quot;:&quot;ELECOM TK-TCM015BK&quot;,&quot;jp&quot;:&quot;B00VFSCX56&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B00VFSCX56&quot;,&quot;title&quot;:&quot;エレコム TK-TCM015BK&quot;,&quot;searchQuery&quot;:&quot;エレコム TK-TCM015BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tb1Zd8XqL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4953103458208&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:3},&quot;elecom_tdp019bk&quot;:{&quot;type&quot;:&quot;keypad&quot;,&quot;ja&quot;:&quot;エレコム TK-TDP019BK&quot;,&quot;en&quot;:&quot;ELECOM TK-TDP019BK&quot;,&quot;jp&quot;:&quot;B07FPJ5VJ6&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B07FPJ5VJ6&quot;,&quot;title&quot;:&quot;エレコム TK-TDP019BK&quot;,&quot;searchQuery&quot;:&quot;エレコム TK-TDP019BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81ogIxGf+XL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4953103356078&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:4},&quot;elecom_tdm017bk&quot;:{&quot;type&quot;:&quot;keypad&quot;,&quot;ja&quot;:&quot;エレコム TK-TDM017BK&quot;,&quot;en&quot;:&quot;ELECOM TK-TDM017BK&quot;,&quot;jp&quot;:&quot;B07281KT58&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B07281KT58&quot;,&quot;title&quot;:&quot;エレコム TK-TDM017BK&quot;,&quot;searchQuery&quot;:&quot;エレコム TK-TDM017BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71vQVej3lUL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4953103310575&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2},&quot;elecom_tbm023skbk&quot;:{&quot;type&quot;:&quot;keypad&quot;,&quot;ja&quot;:&quot;エレコム TK-TBM023SKBK&quot;,&quot;en&quot;:&quot;ELECOM TK-TBM023SKBK&quot;,&quot;jp&quot;:&quot;B09NZPH13J&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B09NZPH13J&quot;,&quot;title&quot;:&quot;エレコム TK-TBM023SKBK&quot;,&quot;searchQuery&quot;:&quot;エレコム TK-TBM023SKBK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/715AD7re7GL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549550210812&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:5},&quot;perixx_peripad_202c&quot;:{&quot;type&quot;:&quot;keypad&quot;,&quot;ja&quot;:&quot;Perixx PERIPAD-202C&quot;,&quot;en&quot;:&quot;Perixx PERIPAD-202C&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B09R81L8MT&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B09R81L8MT&quot;,&quot;asinUS&quot;:&quot;B09R81L8MT&quot;,&quot;title&quot;:&quot;Perixx PERIPAD-202C&quot;,&quot;searchQuery&quot;:&quot;Perixx PERIPAD-202C&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/619tjEsM-IL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;keypad&quot;:&quot;elecom_tcm011bk&quot;},&quot;en&quot;:{&quot;keypad&quot;:&quot;perixx_peripad_202c&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;numeric-keypad-finder&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 機種のデータ（接続・メーカーが記載しているキー・キースイッチ・寸法・重さ・電池・対応OS・NumLock の記載）は、
// calc.mjs が data.json の facts（メーカー公式ページの値）から M.models に入れて渡す。数値の換算はしない。
//
// 条件（読者が選ぶもの）:
//   conn   = any | usb（USB有線）| rx（2.4GHz・USBレシーバー）| bt（Bluetooth）
//   keys   = any | tab00（Tab と 00）| eq（Tab と =）| full（Tab・00・BS・=）… メーカーが記載しているキーで判定する
//   form   = any | thin（薄型・持ち運び = メーカーの仕様のキースイッチがパンタグラフ）
//   numlock= any | stated（メーカーが NumLock の扱いを記載している機種だけ）
// 候補（買える商品）は、条件に合い、メーカーの対応OSに Windows 11 の記載がある機種だけ（Windows 向けの記事のため）。

const KEYSETS = { any: [], tab00: [&quot;tab&quot;, &quot;00&quot;], eq: [&quot;tab&quot;, &quot;=&quot;], full: [&quot;tab&quot;, &quot;00&quot;, &quot;bs&quot;, &quot;=&quot;] };

// 1機種が条件に合うか。理由ごとに分けて返す（ツールの説明と calc の検算に使う）
function fitKeypad(m, c) {
  const connOk = c.conn === &quot;any&quot; || m.conn === c.conn;
  const need = KEYSETS[c.keys] || [];
  const keysOk = need.every((k) =&gt; m.keys.includes(k));
  const formOk = c.form !== &quot;thin&quot; || m.sw === &quot;pantograph&quot;;
  const numlockOk = c.numlock !== &quot;stated&quot; || !!m.numlock;
  return { ok: connOk &amp;&amp; keysOk &amp;&amp; formOk &amp;&amp; numlockOk, connOk, keysOk, formOk, numlockOk };
}

// 条件に合う機種（M.order の並び）。pickable = そのうち Windows 11 の記載がある機種（買える商品の候補にするもの）
function matchKeypads(M, c) {
  const ok = M.order.filter((id) =&gt; fitKeypad(M.models[id], c).ok);
  return { ok, pickable: ok.filter((id) =&gt; M.models[id].win11) };
}

// 商品（products.json の id）→ 機種 id。M.products[pid] = { model: 機種 id }
function productIds(M, c) {
  const { pickable } = matchKeypads(M, c);
  return Object.keys(M.products || {}).filter((pid) =&gt; pickable.includes(M.products[pid].model));
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（接続・ほしいキー・薄型か・NumLock の記載）。機種は選ばせず、メーカーの公式仕様で条件に合う型番と、買える商品を1つ出す。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    conn: &quot;接続&quot;, keys: &quot;ほしいキー&quot;, form: &quot;薄さ&quot;, numlock: &quot;NumLock&quot;,
    c_any: &quot;どれでも&quot;, c_usb: &quot;USB有線&quot;, c_rx: &quot;2.4GHz（レシーバー）&quot;, c_bt: &quot;Bluetooth&quot;,
    k_any: &quot;キーの指定なし&quot;, k_tab00: &quot;Tab・00&quot;, k_eq: &quot;Tab・=&quot;, k_full: &quot;Tab・00・BS・=&quot;,
    f_any: &quot;薄さは問わない&quot;, f_thin: &quot;薄型（パンタグラフ式）&quot;,
    n_any: &quot;NumLockは問わない&quot;, n_stated: &quot;NumLockの扱いの記載あり&quot;,
    sh: { c_rx: &quot;2.4GHz&quot;, k_any: &quot;指定なし&quot;, k_full: &quot;4つ全部&quot;, f_any: &quot;問わない&quot;, f_thin: &quot;薄型&quot;, n_any: &quot;問わない&quot;, n_stated: &quot;記載あり&quot; }, key: {},
    connL: { usb: &quot;USB有線&quot;, rx: &quot;2.4GHz無線（USBレシーバー）&quot;, bt: &quot;Bluetooth&quot; },
    swL: { pantograph: &quot;パンタグラフ&quot;, membrane: &quot;メンブレン&quot; },
    keyL: { tab: &quot;Tab&quot;, &quot;00&quot;: &quot;00&quot;, bs: &quot;BS&quot;, &quot;=&quot;: &quot;=&quot; },
    vOk: (n) =&gt; `○ 条件に合うのは ${n} 機種`,
    vCond: &quot;△ 条件に合う機種はありますが、Windows 11 の記載がある機種がありません&quot;,
    vNg: &quot;✕ 条件に合う機種は、調べた範囲にありません&quot;,
    line: (m, mk) =&gt; `${mk} ${m.model}: ${m.conn}・キーの記載 ${m.keys}・${m.sw}${m.size}`,
    size: (h, g) =&gt; `・高さ${h}mm・${g}g`,
    sizeRaw: (s) =&gt; `・${s}`,
    nl: (mk, model, t) =&gt; `NumLock（${mk} ${model}）: ${t}`,
    bat: (model, b, batt) =&gt; `電池（${model}）: ${batt}・${b}`,
    pair: (model, p) =&gt; `接続できる台数（${model}）: ${p}`,
    noWin11: (list) =&gt; `Windows 11 の記載が無い機種（買える商品の候補にしていません）: ${list}`,
    more: (list) =&gt; `ほかに条件に合う型番: ${list}`,
    keysNote: &quot;キーはメーカーが記載しているかで判定しています。記載が無いキーが付いていないとは限らないので、キー配列の図で確かめてください&quot;,
    nlNote: &quot;NumLock の扱いはメーカーの言い方のままです。記載が無い機種でどう動くかは判定していません&quot;,
    batNote: &quot;電池の値はメーカーの記載のままで、書き方（想定電池使用期間・連続動作時間）がそろわないため比べていません&quot;,
    thinNote: &quot;薄型は、メーカーの仕様のキースイッチがパンタグラフ式の機種としています（この記事の区分）&quot;,
    noKeys: &quot;記載なし&quot;,
    note: &quot;結果はメーカー公式ページの仕様（2026年10月の確認）から出しています。打ちやすさ・音・速さは実機で試しておらず、判定していません。&quot;,
  },
  en: {
    conn: &quot;Connection&quot;, keys: &quot;Keys you want&quot;, form: &quot;Thickness&quot;, numlock: &quot;NumLock&quot;,
    c_any: &quot;Any&quot;, c_usb: &quot;Wired USB&quot;, c_rx: &quot;2.4 GHz (receiver)&quot;, c_bt: &quot;Bluetooth&quot;,
    k_any: &quot;Any keys&quot;, k_tab00: &quot;Tab, 00&quot;, k_eq: &quot;Tab, =&quot;, k_full: &quot;Tab, 00, BS, =&quot;,
    f_any: &quot;Any thickness&quot;, f_thin: &quot;Slim (pantograph keys)&quot;,
    n_any: &quot;NumLock doesn&apos;t matter&quot;, n_stated: &quot;NumLock handling stated&quot;,
    sh: { c_rx: &quot;2.4 GHz&quot;, k_any: &quot;Any&quot;, k_full: &quot;All four&quot;, f_any: &quot;Any&quot;, f_thin: &quot;Slim&quot;, n_any: &quot;Any&quot;, n_stated: &quot;Stated&quot; }, key: { conn: &quot;Link&quot;, keys: &quot;Keys&quot; },
    connL: { usb: &quot;wired USB&quot;, rx: &quot;2.4 GHz wireless (USB receiver)&quot;, bt: &quot;Bluetooth&quot; },
    swL: { pantograph: &quot;pantograph&quot;, membrane: &quot;membrane&quot; },
    keyL: { tab: &quot;Tab&quot;, &quot;00&quot;: &quot;00&quot;, bs: &quot;BS&quot;, &quot;=&quot;: &quot;=&quot; },
    vOk: (n) =&gt; `✓ ${n} ${n === 1 ? &quot;model matches&quot; : &quot;models match&quot;}`,
    vCond: &quot;△ Some models match, but none lists Windows 11&quot;,
    vNg: &quot;✕ No model in this research matches&quot;,
    line: (m, mk) =&gt; `${mk} ${m.model}: ${m.conn}, listed keys ${m.keys}, ${m.sw}${m.size}`,
    size: (h, g) =&gt; `, ${h} mm tall, ${g} g`,
    sizeRaw: (s) =&gt; `, ${s}`,
    nl: (mk, model, t) =&gt; `NumLock (${mk} ${model}): ${t}`,
    bat: (model, b, batt) =&gt; `Battery (${model}): ${batt}, ${b}`,
    pair: (model, p) =&gt; `Devices (${model}): ${p}`,
    noWin11: (list) =&gt; `No Windows 11 listing (not used for picks): ${list}`,
    more: (list) =&gt; `Other matching models: ${list}`,
    keysNote: &quot;Keys are judged by whether the maker lists them. A key that isn&apos;t listed may still be there, so check the layout diagram&quot;,
    nlNote: &quot;NumLock handling is quoted from each maker. Models that don&apos;t state it aren&apos;t judged&quot;,
    batNote: &quot;Battery figures are the makers&apos; own, stated in different ways (estimated battery life vs. continuous operating time), so they aren&apos;t compared&quot;,
    thinNote: &quot;Slim means the maker lists a pantograph key switch (this article&apos;s grouping)&quot;,
    noKeys: &quot;none listed&quot;,
    note: &quot;Results come from the makers&apos; official spec pages (checked October 2026). Typing feel, noise and speed weren&apos;t tested on real hardware and aren&apos;t judged.&quot;,
  },
};

const SHOW_ = 3; // 仕様の行を出す機種の数（残りは型番だけ）

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;conn&quot;, type: &quot;select&quot;, label: t.conn, short: t.key.conn, value: &quot;any&quot;, options: M.conns.map((x) =&gt; ({ value: x, label: t[&quot;c_&quot; + x], short: t.sh[&quot;c_&quot; + x] })) },
    { name: &quot;keys&quot;, type: &quot;select&quot;, label: t.keys, short: t.key.keys, value: &quot;tab00&quot;, options: M.keys.map((x) =&gt; ({ value: x, label: t[&quot;k_&quot; + x], short: t.sh[&quot;k_&quot; + x] })) },
    { name: &quot;form&quot;, type: &quot;select&quot;, label: t.form, value: &quot;any&quot;, options: M.forms.map((x) =&gt; ({ value: x, label: t[&quot;f_&quot; + x], short: t.sh[&quot;f_&quot; + x] })) },
    // 既定はタイル1枚目（Excel・経理: Tab・00 と NumLock の記載あり）と同じ（開いたときに印が付く。2026-10-15）
    { name: &quot;numlock&quot;, type: &quot;select&quot;, label: t.numlock, value: &quot;stated&quot;, options: M.numlocks.map((x) =&gt; ({ value: x, label: t[&quot;n_&quot; + x], short: t.sh[&quot;n_&quot; + x] })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  if (!M.conns.includes(v.conn) || !M.keys.includes(v.keys) || !M.forms.includes(v.form) || !M.numlocks.includes(v.numlock)) return { status: &quot;error&quot;, lines: [] };
  const c = { conn: v.conn, keys: v.keys, form: v.form, numlock: v.numlock };
  const r = matchKeypads(M, c);
  const lines = [];
  if (!r.ok.length) return { status: &quot;ng&quot;, verdict: t.vNg, lines: [t.keysNote], picks: [] };
  // 買える商品の候補になる機種（Windows 11 の記載あり）を先に出す
  // 並び: 買える出品がある機種（安い順）→ Windows 11 の記載がある機種 → 記載が無い機種
  const rk = lang === &quot;ja&quot; ? &quot;rank_jp&quot; : &quot;rank_us&quot;;
  const rankOf = (id) =&gt; { let best = 999; for (const pid in M.products || {}) { const b = M.buy &amp;&amp; M.buy[pid]; if (M.products[pid].model === id &amp;&amp; b &amp;&amp; b[rk] != null &amp;&amp; b[rk] &lt; best) best = b[rk]; } return best; };
  const ids = r.pickable.slice().sort((a, b) =&gt; rankOf(a) - rankOf(b)).concat(r.ok.filter((id) =&gt; !r.pickable.includes(id)));
  const mk = (m) =&gt; m.makerL[lang];
  const sep = lang === &quot;ja&quot; ? &quot;、&quot; : &quot;, &quot;;
  ids.slice(0, SHOW_).forEach((id) =&gt; {
    const m = M.models[id];
    const size = m.h != null ? t.size(m.h, m.g) : m.size ? t.sizeRaw(m.size[lang]) : &quot;&quot;;
    lines.push(t.line({ model: m.model, conn: t.connL[m.conn], keys: m.keys.length ? m.keys.map((k) =&gt; t.keyL[k]).join(lang === &quot;ja&quot; ? &quot;・&quot; : &quot;, &quot;) : t.noKeys, sw: m.sw ? t.swL[m.sw] : &quot;&quot;, size }, mk(m)));
    if (m.numlock) lines.push(t.nl(mk(m), m.model, m.numlock[lang]));
    if (m.bat) lines.push(t.bat(m.model, m.bat[lang], m.batt[lang]));
    if (m.pair) lines.push(t.pair(m.model, m.pair[lang]));
  });
  if (ids.length &gt; SHOW_) lines.push(t.more(ids.slice(SHOW_).map((id) =&gt; M.models[id].model).join(sep)));
  const noW = r.ok.filter((id) =&gt; !M.models[id].win11);
  if (noW.length) lines.push(t.noWin11(noW.map((id) =&gt; M.models[id].model).join(sep)));
  if (v.keys !== &quot;any&quot;) lines.push(t.keysNote);
  if (v.form === &quot;thin&quot;) lines.push(t.thinNote);
  if (v.numlock === &quot;stated&quot;) lines.push(t.nlNote);
  if (ids.slice(0, SHOW_).some((id) =&gt; M.models[id].bat)) lines.push(t.batNote);
  const status = r.pickable.length ? &quot;ok&quot; : &quot;cond&quot;;
  // 判定は数まで（C2）。機種名は names（判定の下に3つまで、早見表には全部）
  const verdict = r.pickable.length ? t.vOk(r.ok.length) : t.vCond;
  const names = ids.map((id) =&gt; `${mk(M.models[id])} ${M.models[id].model}`);
  // 候補: 条件に合い Windows 11 の記載がある機種の商品。lib がその国の基準を満たす出品のうち安い順の1位を出す
  const picks = productIds(M, c);
  return { status, verdict, names, lines, picks };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（接続 × キー × 薄さ × NumLock）
function presets() {
  const P = (conn, keys, form, numlock) =&gt; ({ conn, keys, form, numlock });
  return [
    P(&quot;usb&quot;, &quot;tab00&quot;, &quot;any&quot;, &quot;any&quot;), P(&quot;usb&quot;, &quot;tab00&quot;, &quot;any&quot;, &quot;stated&quot;), P(&quot;usb&quot;, &quot;tab00&quot;, &quot;thin&quot;, &quot;any&quot;), P(&quot;usb&quot;, &quot;full&quot;, &quot;any&quot;, &quot;any&quot;),
    P(&quot;usb&quot;, &quot;eq&quot;, &quot;any&quot;, &quot;stated&quot;),
    P(&quot;rx&quot;, &quot;tab00&quot;, &quot;any&quot;, &quot;any&quot;), P(&quot;rx&quot;, &quot;tab00&quot;, &quot;thin&quot;, &quot;any&quot;), P(&quot;rx&quot;, &quot;tab00&quot;, &quot;any&quot;, &quot;stated&quot;), P(&quot;rx&quot;, &quot;full&quot;, &quot;any&quot;, &quot;any&quot;),
    P(&quot;bt&quot;, &quot;tab00&quot;, &quot;any&quot;, &quot;any&quot;), P(&quot;bt&quot;, &quot;tab00&quot;, &quot;thin&quot;, &quot;any&quot;), P(&quot;bt&quot;, &quot;tab00&quot;, &quot;any&quot;, &quot;stated&quot;), P(&quot;bt&quot;, &quot;any&quot;, &quot;any&quot;, &quot;any&quot;),
    P(&quot;any&quot;, &quot;full&quot;, &quot;any&quot;, &quot;any&quot;),
  ];
}

// カードに出す仕様（この計算で使った値。絞り込みの条件は出さない）
function pickSpecs(id, v, M, lang) {
  const p = M.products[id];
  const m = p &amp;&amp; M.models[p.model];
  if (!m) return [];
  const t = T_[lang];
  const out = [t.connL[m.conn]];
  out.push((lang === &quot;ja&quot; ? &quot;キーの記載: &quot; : &quot;Listed keys: &quot;) + (m.keys.length ? m.keys.map((k) =&gt; t.keyL[k]).join(lang === &quot;ja&quot; ? &quot;・&quot; : &quot;, &quot;) : t.noKeys));
  if (m.h != null) out.push(lang === &quot;ja&quot; ? `高さ${m.h}mm・${m.g}g` : `${m.h} mm tall, ${m.g} g`);
  return out;
}

// 型 G の使い方のタイル（2026-10）。1回押すと、その使い方の条件がまとめて決まる（set に無い条件は今のまま）。
// 条件の組み合わせはこの記事で決めたもの（review/decisions.md）。ラベルは fields の選択肢の言い方をそのまま使う
function tiles(M, lang) {
  const ja = lang === &quot;ja&quot;;
  const f = Object.fromEntries(fields(M, lang).map((x) =&gt; [x.name, x]));
  const lab = (name, v) =&gt; f[name].options.find((o) =&gt; o.value === v).label;
  return [
    { id: &quot;excel&quot;, label: ja ? &quot;Excel・経理&quot; : &quot;Excel &amp; bookkeeping&quot;, sub: `${lab(&quot;keys&quot;, &quot;tab00&quot;)}／${lab(&quot;numlock&quot;, &quot;stated&quot;)}`, set: { keys: &quot;tab00&quot;, numlock: &quot;stated&quot; } },
    { id: &quot;desk&quot;, label: ja ? &quot;机で有線&quot; : &quot;Wired at a desk&quot;, sub: lab(&quot;conn&quot;, &quot;usb&quot;), set: { conn: &quot;usb&quot; } },
    { id: &quot;carry&quot;, label: ja ? &quot;持ち運び&quot; : &quot;On the go&quot;, sub: `${lab(&quot;conn&quot;, &quot;bt&quot;)}・${lab(&quot;form&quot;, &quot;thin&quot;)}`, set: { conn: &quot;bt&quot;, form: &quot;thin&quot; } },
    { id: &quot;plain&quot;, label: ja ? &quot;テンキーだけ欲しい&quot; : &quot;Just a keypad&quot;, sub: ja ? &quot;条件なし&quot; : &quot;No conditions&quot;, set: { conn: &quot;any&quot;, keys: &quot;any&quot;, form: &quot;any&quot;, numlock: &quot;any&quot; } },
  ];
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;tiles&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;excel-keys-tab-00-bs-and-&quot;&gt;Excel keys: Tab, 00, BS and =&lt;/h2&gt;
&lt;p&gt;On the makers’ product pages, BUFFALO describes Tab as handy for moving between Excel cells and selecting functions, and 00 for large amounts. ELECOM’s wired model with BS and = calls = and parentheses handy for functions, and 00 and BS handy for numbers.&lt;/p&gt;
&lt;p&gt;In this guide, Tab moves between cells, and 00 helps enter large amounts. The = and parentheses keys help enter formulas. BS works as Backspace and deletes the last character.&lt;/p&gt;
&lt;p&gt;Per the makers’ specs, Tab and 00 keys are listed on models of every connection type. Only wired models list both BS and = keys; no wireless model does.&lt;/p&gt;
&lt;p&gt;Keys are judged by whether the maker lists them. A key missing from the list may still be on the keypad, so check the layout diagram.&lt;/p&gt;
&lt;p&gt;According to ELECOM’s product pages, for the wired model with BS and = keys, the maker notes there’s no kana input mode. Special keys such as = and parentheses need romaji input.&lt;/p&gt;
&lt;h2 id=&quot;the-numlock-problem-and-what-makers-say&quot;&gt;The NumLock problem and what makers say&lt;/h2&gt;
&lt;p&gt;According to BUFFALO’s product pages, typing numbers on a USB keypad requires turning its NumLock on. On most laptops, that turns part of the built-in keyboard into number keys.&lt;/p&gt;
&lt;p&gt;Per the makers’ specs, each maker describes its fix in its own words. ELECOM says some wired models solve it in hardware, and BUFFALO says its keypads are designed not to sync the PC’s NumLock with the keypad’s. Sanwa Supply calls its keypads NumLock-independent.&lt;/p&gt;
&lt;h2 id=&quot;thickness-and-weight&quot;&gt;Thickness and weight&lt;/h2&gt;
&lt;p&gt;Per the makers’ specs, heights run 17–21.5 mm for pantograph models and 20–26.6 mm for membrane models, so membrane models can be slim too.&lt;/p&gt;
&lt;p&gt;Weights run 70–143 g.&lt;/p&gt;
&lt;p&gt;For carrying, look for a slim wireless keypad with pantograph keys. The makers list such models in both 2.4 GHz and Bluetooth.&lt;/p&gt;
&lt;h2 id=&quot;wireless-battery-life-and-paired-devices&quot;&gt;Wireless battery life and paired devices&lt;/h2&gt;
&lt;p&gt;Per the makers’ specs, ELECOM states an estimated battery life of 10 months to 1.5 years with alkaline batteries. Sanwa Supply states 70 to 800 hours of continuous operation. The measures differ, so they can’t be compared.&lt;/p&gt;













































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Maker, connection and keys&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Value and condition&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;ELECOM, 2.4 GHz, membrane keys, AA&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1.3 years (estimated battery life, with alkaline batteries, maker’s own test)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;ELECOM, 2.4 GHz, membrane keys, AAA&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1.5 years (estimated battery life, with alkaline batteries, assuming 8 hours of PC use a day)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;ELECOM, 2.4 GHz, pantograph keys&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1 year (estimated battery life, with alkaline batteries, maker’s own test)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;ELECOM, Bluetooth, membrane keys&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;10 months (estimated battery life, with alkaline batteries, assuming 8 hours of PC use a day)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;ELECOM, Bluetooth, pantograph keys&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1 year (estimated battery life, with alkaline batteries, maker’s own test)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Sanwa Supply, Bluetooth, Tab and 00&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;150 hours (continuous operating time)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Sanwa Supply, 2.4 GHz, Tab and 00&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;70 hours (continuous operating time, with alkaline batteries)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Sanwa Supply, Bluetooth, Tab and =&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;240 hours (continuous operating time)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Sanwa Supply, 2.4 GHz, Tab and =&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;800 hours (continuous operating time)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;ELECOM’s Bluetooth models connect to one device only, and Sanwa Supply’s product pages give no device count. Microsoft’s support page says the Microsoft Number Pad pairs with up to 3 devices, but its availability wasn’t checked.&lt;/p&gt;
&lt;h2 id=&quot;picks-for-us-readers&quot;&gt;Picks for US readers&lt;/h2&gt;
&lt;p&gt;On Amazon.com as checked in October 2026, one wired slim keypad met the listing criteria: the Perixx PERIPAD-202C. Its maker lists Windows 7 or higher but not Windows 11. The maker’s page lists no Tab or 00 key; only the Amazon product title says Tab.&lt;/p&gt;
&lt;h3 id=&quot;wired-slim-keypad&quot;&gt;Wired slim keypad&lt;/h3&gt;
&lt;p&gt;It has scissor keys and two USB-A ports on the side.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Perixx PERIPAD-202C&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/619tjEsM-IL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Perixx PERIPAD-202C&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B09R81L8MT?q=Perixx+PERIPAD-202C&amp;amp;us=B09R81L8MT&amp;amp;l=en&quot; aria-label=&quot;View Perixx PERIPAD-202C on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Sold by Perixx USA and shipped by Amazon. Free delivery depends on Prime membership or order size. The Amazon listing is the USB-C model with two USB-A hub ports; the USB-A-only model is a separate listing.&lt;/p&gt;
&lt;p&gt;The Japanese version picks ELECOM models sold in Japan. Check the specs above against any keypad before buying.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sources: ELECOM product pages for &lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM011BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;TK-TCM011BK&lt;/a&gt;, &lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM015BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;TK-TCM015BK&lt;/a&gt;, &lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCP018BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;TK-TCP018BK&lt;/a&gt;, &lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM017BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;TK-TDM017BK&lt;/a&gt;, &lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDP019BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;TK-TDP019BK&lt;/a&gt; and &lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;TK-TBM023SKBK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sources: &lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Sanwa Supply product page&lt;/a&gt; and &lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk130bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;BUFFALO product page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sources: &lt;a href=&quot;https://support.microsoft.com/en-us/surface/accessories/use-microsoft-number-pad&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Microsoft Number Pad support&lt;/a&gt; and &lt;a href=&quot;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc978657(v=technet.10)&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Windows 2000 registry reference (legacy)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;is-wired-24-ghz-or-bluetooth-better-for-a-numeric-keypad&quot;&gt;Is wired, 2.4 GHz or Bluetooth better for a numeric keypad?&lt;/h3&gt;
&lt;p&gt;Per the makers’ specs, choose wired to avoid batteries, 2.4 GHz for a USB receiver that needs no PC Bluetooth, or Bluetooth for no receiver if the PC has it.&lt;/p&gt;
&lt;h3 id=&quot;how-long-do-wireless-keypad-batteries-last-and-how-many-devices-can-they-pair-with&quot;&gt;How long do wireless keypad batteries last, and how many devices can they pair with?&lt;/h3&gt;
&lt;p&gt;Per the makers’ specs, battery life is 10 months to 1.5 years by ELECOM’s estimate and 70 to 800 hours of continuous use for Sanwa Supply. Those measures can’t be compared, and each uses one AA or AAA battery.&lt;/p&gt;
&lt;p&gt;ELECOM’s Bluetooth models connect to one device only.&lt;/p&gt;
&lt;h3 id=&quot;do-you-need-tab-00-bs-and--keys-for-excel&quot;&gt;Do you need Tab, 00, BS and = keys for Excel?&lt;/h3&gt;
&lt;p&gt;As of October 2026, per the makers’ specs, Tab moves between cells, and 00 helps enter large amounts. The = and parentheses keys help enter formulas, and BS deletes the last character.&lt;/p&gt;
&lt;p&gt;Tab and 00 appear on every connection type, and only wired models list both BS and =.&lt;/p&gt;
&lt;h3 id=&quot;what-is-the-numlock-problem-and-why-wont-a-keypad-type-numbers&quot;&gt;What is the NumLock problem, and why won’t a keypad type numbers?&lt;/h3&gt;
&lt;p&gt;According to BUFFALO’s product pages, the keypad’s NumLock must be on to type numbers. On most laptops, that also turns part of the built-in keyboard into number keys.&lt;/p&gt;
&lt;p&gt;On the makers’ product pages, some of ELECOM’s wired models and Sanwa Supply’s and BUFFALO’s keypads state how they handle it. Per a legacy Microsoft document (the Windows 2000 registry reference), Windows saves the NumLock state at logoff or shutdown and restores it at the next logon.&lt;/p&gt;
&lt;p&gt;No current official page on how Windows 11 handles this was found, so this article doesn’t judge it.&lt;/p&gt;
&lt;h3 id=&quot;which-keypad-is-best-to-carry-with-a-laptop&quot;&gt;Which keypad is best to carry with a laptop?&lt;/h3&gt;
&lt;p&gt;For carrying, look for a slim wireless keypad with pantograph keys, since the makers list such models in both 2.4 GHz and Bluetooth. The picks section has a slim wired keypad that met this guide’s Amazon.com criteria.&lt;/p&gt;
&lt;h3 id=&quot;do-numeric-keypads-work-with-a-mac&quot;&gt;Do numeric keypads work with a Mac?&lt;/h3&gt;
&lt;p&gt;As of October 2026, per the makers’ specs, for a Mac, pick an ELECOM model that lists macOS. The supported-OS field shows macOS High Sierra 10.13 for pantograph models and macOS Big Sur 11 for models ending in SKBK.&lt;/p&gt;
&lt;p&gt;Check that your macOS is on the list.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Covers current models whose official pages were read on October 8, 2026 (ELECOM, Sanwa Supply, BUFFALO), plus the Perixx PERIPAD-202C, whose maker page was read on October 11, 2026 for the US pick. Specs (connection, keys, key switch, size, weight, battery, supported OS, NumLock handling) come only from the makers’ official pages.&lt;/li&gt;
&lt;li&gt;Keys are judged by whether the maker lists them on the product page (e.g. TK-TCM011BK: Tab and 00; TK-TCM015BK: Esc, Tab, =, (, ), 00 and BS keys, plus three hotkeys that launch Excel, a calculator app and a browser (2-port USB 2.0 hub); NT-27UBK: Esc, F2, F4, Tab, =, (, ), comma, copy, paste and find (no 00 or BS key listed)). A key that isn’t listed is not treated as missing.&lt;/li&gt;
&lt;li&gt;Slim means a low-profile key switch that the maker lists: pantograph for the Japanese models, and scissor for the US pick, which the maker also calls a slim keypad (a grouping set for this article). Heights: pantograph 17–21.5 mm, membrane 20–26.6 mm (makers’ figures).&lt;/li&gt;
&lt;li&gt;NumLock uses each maker’s own statement (ELECOM TK-TCM011BK: Solves the NumLock problem in hardware; no software needed; BUFFALO BSTK130BK: Designed so the keypad’s NumLock does not sync with the PC’s NumLock (maker statement); Sanwa Supply NT-BT21BK: NumLock-independent (maker statement)). For Windows itself, the only official source found is a legacy Microsoft Learn page (Windows 2000 registry reference): Windows stores the NumLock state at logoff/shutdown in HKCU\Control Panel\Keyboard\InitialKeyboardIndicators (0 = off, 2 = on) and restores it at the next logon. Current Windows 11 behavior isn’t judged.&lt;/li&gt;
&lt;li&gt;Battery figures are the makers’ values with their stated conditions, not converted. Examples: TK-TDM017BK 1.3 years (estimated battery life, with alkaline batteries, maker’s own test), TK-TBM023SKBK 10 months (estimated battery life, with alkaline batteries, assuming 8 hours of PC use a day), NT-WL21BK 70 hours (continuous operating time, with alkaline batteries), NT-BT21BK 150 hours (continuous operating time). Bluetooth device counts: ELECOM TK-TBM023SKBK One device at a time (paired); Microsoft Number Pad 3 devices.&lt;/li&gt;
&lt;li&gt;Picks are models that match the conditions, then new listings sold by Amazon (or a confirmed maker store) with 100+ ratings, 4+ stars and a model number matching the maker’s, cheapest including shipping. The Japanese slots also require Windows 11 in the maker’s supported OS list and no Sakura Checker warning (Japan listings only). The US slot is a wired slim keypad whose maker lists Windows 7 or higher; no Tab or 00 key is required. The shipping cost of the US pick is treated as 0 because Amazon ships it, and the non-Prime shipping cost on a small order wasn’t checked. Typing feel, noise and speed weren’t tested on real hardware and aren’t judged.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;








































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM011BK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM011BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM011BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM011BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM011BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM011BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM011BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM011BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM011BK width&lt;/td&gt;&lt;td&gt;90 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM011BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM011BK depth&lt;/td&gt;&lt;td&gt;140 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM011BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM011BK height&lt;/td&gt;&lt;td&gt;23.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM011BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM011BK weight&lt;/td&gt;&lt;td&gt;110 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM011BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM011BK supported OS&lt;/td&gt;&lt;td&gt;Windows 11/10/8/8.1/RT/RT8.1/7(SP1)/Vista(SP2)/XP(SP3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM011BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM011BK connector&lt;/td&gt;&lt;td&gt;USB-A&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM011BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM011BK NumLock handling (maker statement)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM011BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM012BK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM012BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM012BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM012BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM012BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM012BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM012BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM012BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM012BK width&lt;/td&gt;&lt;td&gt;90 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM012BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM012BK depth&lt;/td&gt;&lt;td&gt;140 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM012BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM012BK height&lt;/td&gt;&lt;td&gt;23.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM012BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM012BK weight&lt;/td&gt;&lt;td&gt;114 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM012BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM012BK supported OS&lt;/td&gt;&lt;td&gt;Windows 11/10/8/8.1/RT/RT8.1/7(SP1)/Vista(SP2)/XP(SP3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM012BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM012BK connector&lt;/td&gt;&lt;td&gt;USB-A&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM012BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM012BK NumLock handling (maker statement)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM012BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM013BK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM013BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM013BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM013BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM013BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM013BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM013BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM013BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM013BK width&lt;/td&gt;&lt;td&gt;78 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM013BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM013BK depth&lt;/td&gt;&lt;td&gt;127.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM013BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM013BK height&lt;/td&gt;&lt;td&gt;24 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM013BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM013BK weight&lt;/td&gt;&lt;td&gt;97 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM013BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM013BK supported OS&lt;/td&gt;&lt;td&gt;Windows 11/10/8.1/RT8.1/7(SP1)/Vista(SP2)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM013BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM013BK connector&lt;/td&gt;&lt;td&gt;USB-A&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM013BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM014BK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM014BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM014BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM014BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM014BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM014BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM014BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM014BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM014BK width&lt;/td&gt;&lt;td&gt;78 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM014BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM014BK depth&lt;/td&gt;&lt;td&gt;127.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM014BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM014BK height&lt;/td&gt;&lt;td&gt;24 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM014BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM014BK weight&lt;/td&gt;&lt;td&gt;97 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM014BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM014BK supported OS&lt;/td&gt;&lt;td&gt;Windows 11/10/8.1/RT8.1/7(SP1)/Vista(SP2)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM014BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM014BK connector&lt;/td&gt;&lt;td&gt;USB-A&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM014BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM015BK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM015BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM015BK key count&lt;/td&gt;&lt;td&gt;27 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM015BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM015BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM015BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM015BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM015BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM015BK width&lt;/td&gt;&lt;td&gt;90 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM015BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM015BK depth&lt;/td&gt;&lt;td&gt;170 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM015BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM015BK height&lt;/td&gt;&lt;td&gt;24.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM015BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM015BK weight&lt;/td&gt;&lt;td&gt;143 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM015BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM015BK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM015BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM015BK connector&lt;/td&gt;&lt;td&gt;USB-A&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM015BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM015BK input-mode note&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM015BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM021SKBK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM021SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM021SKBK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM021SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM021SKBK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM021SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM021SKBK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM021SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM021SKBK width&lt;/td&gt;&lt;td&gt;89.3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM021SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM021SKBK depth&lt;/td&gt;&lt;td&gt;135.3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM021SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM021SKBK height&lt;/td&gt;&lt;td&gt;26.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM021SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM021SKBK weight&lt;/td&gt;&lt;td&gt;90 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM021SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM021SKBK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM021SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM021SKBK connector&lt;/td&gt;&lt;td&gt;USB-A&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM021SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCP018BK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCP018BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCP018BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCP018BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCP018BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCP018BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCP018BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCP018BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCP018BK width&lt;/td&gt;&lt;td&gt;89.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCP018BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCP018BK depth&lt;/td&gt;&lt;td&gt;127.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCP018BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCP018BK height&lt;/td&gt;&lt;td&gt;21.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCP018BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCP018BK weight&lt;/td&gt;&lt;td&gt;110 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCP018BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCP018BK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCP018BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCP018BK connector&lt;/td&gt;&lt;td&gt;USB-A&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCP018BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM017BK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM017BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM017BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM017BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM017BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM017BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM017BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM017BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM017BK width&lt;/td&gt;&lt;td&gt;90 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM017BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM017BK depth&lt;/td&gt;&lt;td&gt;140 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM017BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM017BK height&lt;/td&gt;&lt;td&gt;26.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM017BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM017BK weight&lt;/td&gt;&lt;td&gt;107 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM017BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM017BK battery life (maker figure)&lt;/td&gt;&lt;td&gt;1.3 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM017BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM017BK battery type&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM017BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM017BK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM017BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM017BK connector (receiver)&lt;/td&gt;&lt;td&gt;USB-A&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM017BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM022SKBK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM022SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM022SKBK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM022SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM022SKBK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM022SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM022SKBK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM022SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM022SKBK width&lt;/td&gt;&lt;td&gt;89.3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM022SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM022SKBK depth&lt;/td&gt;&lt;td&gt;135.3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM022SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM022SKBK height&lt;/td&gt;&lt;td&gt;26.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM022SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM022SKBK weight&lt;/td&gt;&lt;td&gt;80 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM022SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM022SKBK battery life (maker figure)&lt;/td&gt;&lt;td&gt;1.5 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM022SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM022SKBK battery type&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM022SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM022SKBK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM022SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDM022SKBK connector (receiver)&lt;/td&gt;&lt;td&gt;USB-A&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDM022SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDP019BK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDP019BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDP019BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDP019BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDP019BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDP019BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDP019BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDP019BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDP019BK width&lt;/td&gt;&lt;td&gt;89.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDP019BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDP019BK depth&lt;/td&gt;&lt;td&gt;127.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDP019BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDP019BK height&lt;/td&gt;&lt;td&gt;21.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDP019BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDP019BK weight&lt;/td&gt;&lt;td&gt;100 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDP019BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDP019BK battery life (maker figure)&lt;/td&gt;&lt;td&gt;1 year&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDP019BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDP019BK battery type&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDP019BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDP019BK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDP019BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TDP019BK connector (receiver)&lt;/td&gt;&lt;td&gt;USB-A&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TDP019BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBM023SKBK connection&lt;/td&gt;&lt;td&gt;Bluetooth&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBM023SKBK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBM023SKBK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBM023SKBK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBM023SKBK width&lt;/td&gt;&lt;td&gt;89.3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBM023SKBK depth&lt;/td&gt;&lt;td&gt;135.3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBM023SKBK height&lt;/td&gt;&lt;td&gt;26.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBM023SKBK weight&lt;/td&gt;&lt;td&gt;80 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBM023SKBK battery life (maker figure)&lt;/td&gt;&lt;td&gt;10 months&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBM023SKBK battery type&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBM023SKBK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBM023SKBK supported hosts&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBM023SKBK devices it can connect to&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBM023SKBK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBP020BK connection&lt;/td&gt;&lt;td&gt;Bluetooth&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBP020BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBP020BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBP020BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBP020BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBP020BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBP020BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBP020BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBP020BK width&lt;/td&gt;&lt;td&gt;89.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBP020BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBP020BK depth&lt;/td&gt;&lt;td&gt;127.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBP020BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBP020BK height&lt;/td&gt;&lt;td&gt;21.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBP020BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBP020BK weight&lt;/td&gt;&lt;td&gt;100 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBP020BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBP020BK battery life (maker figure)&lt;/td&gt;&lt;td&gt;1 year&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBP020BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBP020BK battery type&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBP020BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBP020BK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBP020BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBP020BK supported hosts&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBP020BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TBP020BK devices it can connect to&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TBP020BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT21BK connection&lt;/td&gt;&lt;td&gt;Bluetooth&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT21BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT21BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT21BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT21BK width&lt;/td&gt;&lt;td&gt;86 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT21BK depth&lt;/td&gt;&lt;td&gt;130 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT21BK height&lt;/td&gt;&lt;td&gt;17 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT21BK weight&lt;/td&gt;&lt;td&gt;70 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT21BK battery life (maker figure)&lt;/td&gt;&lt;td&gt;150 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT21BK battery type&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT21BK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT21BK NumLock handling (maker statement)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT23BK connection&lt;/td&gt;&lt;td&gt;Bluetooth&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT23BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT23BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT23BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT23BK width&lt;/td&gt;&lt;td&gt;86 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT23BK depth&lt;/td&gt;&lt;td&gt;130 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT23BK height&lt;/td&gt;&lt;td&gt;17 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT23BK weight&lt;/td&gt;&lt;td&gt;70 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT23BK battery life (maker figure)&lt;/td&gt;&lt;td&gt;150 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT23BK battery type&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT23BK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT23BK NumLock handling (maker statement)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL21BK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL21BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL21BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL21BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL21BK width&lt;/td&gt;&lt;td&gt;86 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL21BK depth&lt;/td&gt;&lt;td&gt;130 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL21BK height&lt;/td&gt;&lt;td&gt;17 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL21BK weight&lt;/td&gt;&lt;td&gt;70 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL21BK battery life (maker figure)&lt;/td&gt;&lt;td&gt;70 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL21BK battery type&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL21BK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL21BK NumLock handling (maker statement)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL21BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL23BK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL23BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL23BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL23BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL23BK width&lt;/td&gt;&lt;td&gt;86 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL23BK depth&lt;/td&gt;&lt;td&gt;130 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL23BK height&lt;/td&gt;&lt;td&gt;17 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL23BK weight&lt;/td&gt;&lt;td&gt;70 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL23BK battery life (maker figure)&lt;/td&gt;&lt;td&gt;70 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL23BK battery type&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL23BK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL23BK NumLock handling (maker statement)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL23BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT27BK connection&lt;/td&gt;&lt;td&gt;Bluetooth&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT27BK key count&lt;/td&gt;&lt;td&gt;39 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT27BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT27BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT27BK width&lt;/td&gt;&lt;td&gt;147.7 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT27BK depth&lt;/td&gt;&lt;td&gt;117.8 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT27BK height&lt;/td&gt;&lt;td&gt;18 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT27BK weight&lt;/td&gt;&lt;td&gt;95 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT27BK battery life (maker figure)&lt;/td&gt;&lt;td&gt;240 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT27BK battery type&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT27BK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-BT27BK NumLock handling (maker statement)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-BT27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL27BK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL27BK key count&lt;/td&gt;&lt;td&gt;39 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL27BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL27BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL27BK width&lt;/td&gt;&lt;td&gt;147.7 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL27BK depth&lt;/td&gt;&lt;td&gt;117.8 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL27BK height&lt;/td&gt;&lt;td&gt;18 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL27BK weight&lt;/td&gt;&lt;td&gt;110 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL27BK battery life (maker figure)&lt;/td&gt;&lt;td&gt;800 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL27BK battery type&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL27BK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-WL27BK NumLock handling (maker statement)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-WL27BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-27UBK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-27UBK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-27UBK key count&lt;/td&gt;&lt;td&gt;39 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-27UBK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-27UBK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-27UBK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-27UBK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-27UBK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-27UBK width&lt;/td&gt;&lt;td&gt;147.7 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-27UBK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-27UBK depth&lt;/td&gt;&lt;td&gt;117.8 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-27UBK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-27UBK height&lt;/td&gt;&lt;td&gt;18 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-27UBK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-27UBK weight&lt;/td&gt;&lt;td&gt;110 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-27UBK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-27UBK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-27UBK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply NT-27UBK NumLock handling (maker statement)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=NT-27UBK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK130BK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk130bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK130BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk130bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK130BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk130bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK130BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk130bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK130BK width&lt;/td&gt;&lt;td&gt;90 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk130bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK130BK depth&lt;/td&gt;&lt;td&gt;130 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk130bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK130BK height&lt;/td&gt;&lt;td&gt;20 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk130bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK130BK weight&lt;/td&gt;&lt;td&gt;115 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk130bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK130BK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk130bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK130BK NumLock handling (maker statement)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk130bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO’s description of the NumLock problem&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk130bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK135BK connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk135bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK135BK key count&lt;/td&gt;&lt;td&gt;20 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk135bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK135BK extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk135bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK135BK key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk135bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK135BK width&lt;/td&gt;&lt;td&gt;90 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk135bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK135BK depth&lt;/td&gt;&lt;td&gt;130 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk135bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK135BK height&lt;/td&gt;&lt;td&gt;20 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk135bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK135BK weight&lt;/td&gt;&lt;td&gt;115 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk135bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK135BK supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk135bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK135BK NumLock handling (maker statement)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk135bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK120BKZ connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk120bkz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK120BKZ key count&lt;/td&gt;&lt;td&gt;19 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk120bkz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK120BKZ extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk120bkz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK120BKZ key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk120bkz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK120BKZ width&lt;/td&gt;&lt;td&gt;90 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk120bkz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK120BKZ depth&lt;/td&gt;&lt;td&gt;145 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk120bkz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK120BKZ height&lt;/td&gt;&lt;td&gt;24 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk120bkz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK120BKZ weight&lt;/td&gt;&lt;td&gt;110 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk120bkz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK120BKZ supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk120bkz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO BSTK120BKZ NumLock handling (maker statement)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk120bkz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Microsoft Number Pad connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/d/new-microsoft-number-pad/8v4nh9q07xc8/GC1M?activetab=pivot%3Atechspecstab&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt; Bluetooth 5.0 connection&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Microsoft Number Pad devices it can pair with&lt;/td&gt;&lt;td&gt;3 devices&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.microsoft.com/en-us/surface/accessories/use-microsoft-number-pad&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.microsoft.com&lt;/a&gt; You can pair your number pad with up to three devices&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Microsoft Number Pad battery life (maker figure)&lt;/td&gt;&lt;td&gt;up to 24 months&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/d/new-microsoft-number-pad/8v4nh9q07xc8/GC1M?activetab=pivot%3Atechspecstab&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt; long battery life up to 24 months (battery life may vary)&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Microsoft Number Pad battery type&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.microsoft.com/en-us/surface/accessories/use-microsoft-number-pad&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.microsoft.com&lt;/a&gt; Your number pad uses one coin-cell (CR2032) battery&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Microsoft Number Pad supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.microsoft.com/en-us/surface/accessories/use-microsoft-number-pad&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.microsoft.com&lt;/a&gt; a PC that’s running Windows 11 or Windows 10 with support for Bluetooth 4.0 or l&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Microsoft Number Pad calculator key&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.microsoft.com/en-us/surface/accessories/use-microsoft-number-pad&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.microsoft.com&lt;/a&gt; Press the Calculator key to open the Calculator app on your Windows PC&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Satechi Bluetooth Extended Keypad connection&lt;/td&gt;&lt;td&gt;Bluetooth&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://satechi.com/products/bluetooth-extended-keypad&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;satechi.com&lt;/a&gt; Tech Specs: Connector Type Bluetooth&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Satechi Bluetooth Extended Keypad size and weight (as the maker lists them)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://satechi.com/products/bluetooth-extended-keypad&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;satechi.com&lt;/a&gt; Tech Specs: Dimensions &amp;amp; Weight 5.8 x 4.5 x 0.4 inches, 4.4 oz&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Satechi Bluetooth Extended Keypad supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://satechi.com/products/bluetooth-extended-keypad&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;satechi.com&lt;/a&gt; Compatibility: Windows list; Important: Does not support Windows 7 or 8, please&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Perixx PERIPAD-202 connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://perixx.com/products/peripad-202&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;perixx.com&lt;/a&gt; Specs &amp;amp; Detail: Connection: USB-A cable, USB-C cable&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Perixx PERIPAD-202 key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://perixx.com/products/peripad-202&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;perixx.com&lt;/a&gt; Switch type: Scissor; X-type scissor keys with non-synchronized function&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Perixx PERIPAD-202 supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://perixx.com/products/peripad-202&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;perixx.com&lt;/a&gt; Compatibility: Fully compatible: Windows 7 or higher, MacOS Monterey 12.2 or hig&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Kensington Slim Type Wired Numeric Keypad key count&lt;/td&gt;&lt;td&gt;21 keys&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.kensington.com/p/products/electronic-control-solutions/wireless-ergonomic-keyboards/wired-numeric-keypad/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;kensington.com&lt;/a&gt; 21-Key Number Pad with Four Shortcut Keys&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Kensington Slim Type Wired Numeric Keypad connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.kensington.com/p/products/electronic-control-solutions/wireless-ergonomic-keyboards/wired-numeric-keypad/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;kensington.com&lt;/a&gt; Plug-and-Play Wired USB-A Connection&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Kensington Slim Type Wired Numeric Keypad supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.kensington.com/p/products/electronic-control-solutions/wireless-ergonomic-keyboards/wired-numeric-keypad/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;kensington.com&lt;/a&gt; Compatible with Windows, macOS, and ChromeOS (some shortcut keys are only Window&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows startup NumLock official description (legacy reference)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc978657(v=technet.10)&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; InitialKeyboardIndicators: Determines whether the NUMLOCK key is on or off when&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BUFFALO’s description of the Tab and 00 keys&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.buffalo.jp/product/detail/bstk130bk.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;buffalo.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM TK-TCM015BK key descriptions&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/TK-TCM015BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Satechi Slim Aluminum Bluetooth Keypad (ST-SALKPM) connection&lt;/td&gt;&lt;td&gt;Bluetooth&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://satechi.com/products/satechi-slim-rechargeable-aluminum-bluetooth-keypad&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;satechi.com&lt;/a&gt; Tech Specs: Connector Type Bluetooth&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Satechi Slim Aluminum Bluetooth Keypad size and weight (as the maker lists them)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://satechi.com/products/satechi-slim-rechargeable-aluminum-bluetooth-keypad&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;satechi.com&lt;/a&gt; Tech Specs: Dimensions &amp;amp; Weight 4.5 x 3.125 x 0.31 inches, 3.5 ounces&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Satechi Slim Aluminum Bluetooth Keypad supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://satechi.com/products/satechi-slim-rechargeable-aluminum-bluetooth-keypad&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;satechi.com&lt;/a&gt; Compatibility: Windows list; Important: Does not support Windows 7 or 8, please&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Satechi Slim Aluminum Bluetooth Keypad extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://satechi.com/products/satechi-slim-rechargeable-aluminum-bluetooth-keypad&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;satechi.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Satechi Slim Aluminum Bluetooth Keypad thinness&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://satechi.com/products/satechi-slim-rechargeable-aluminum-bluetooth-keypad&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;satechi.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Perixx PERIPAD-202C (USB-C, two-port hub) connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://perixx.com/products/peripad-202&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;perixx.com&lt;/a&gt; Connection type: USB Type-C / USB hub: 2 × USB Type-A ports（SKU PPD-202C-12060）&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Perixx PERIPAD-202C size and weight (as the maker lists them)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://perixx.com/products/peripad-202&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;perixx.com&lt;/a&gt; Specs: Dimensions 131 × 87 × 20 mm, Weight 100 g&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Perixx PERIPAD-202C key switch&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://perixx.com/products/peripad-202&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;perixx.com&lt;/a&gt; Specs: Switch type: Scissor&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Perixx PERIPAD-202C supported OS&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://perixx.com/products/peripad-202&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;perixx.com&lt;/a&gt; Compatibility: Windows 7 or higher / MacOS Monterey 12.2 or higher&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Perixx PERIPAD-202C extra keys the maker lists&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://perixx.com/products/peripad-202&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;perixx.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Perixx PERIPAD-202C thinness&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://perixx.com/products/peripad-202&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;perixx.com&lt;/a&gt; Keypad Design: 19 keys full-size slim keypad; 131 × 87 × 20 mm&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Find a numeric keypad by connection and keys: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;















































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Wired USB, Tab, 00, Any thickness, NumLock doesn’t matter&lt;/td&gt;&lt;td&gt;✓ 9 models match. ELECOM TK-TCM011BK, ELECOM TK-TCM012BK, ELECOM TK-TCM013BK, ELECOM TK-TCM015BK, ELECOM TK-TCM021SKBK, ELECOM TK-TCP018BK, BUFFALO BSTK130BK, BUFFALO BSTK135BK, BUFFALO BSTK120BKZ. ELECOM TK-TCM011BK: wired USB, listed keys Tab, 00, membrane, 23.5 mm tall, 110 g. NumLock (ELECOM TK-TCM011BK): Solves the NumLock problem in hardware; no software needed. ELECOM TK-TCM012BK: wired USB, listed keys Tab, 00, membrane, 23.5 mm tall, 114 g. NumLock (ELECOM TK-TCM012BK): Solves the NumLock problem in hardware; no software needed. ELECOM TK-TCM013BK: wired USB, listed keys Tab, 00, membrane, 24 mm tall, 97 g. Other matching models: TK-TCM015BK, TK-TCM021SKBK, TK-TCP018BK, BSTK130BK, BSTK135BK, BSTK120BKZ. No Windows 11 listing (not used for picks): BSTK130BK, BSTK135BK, BSTK120BKZ. Keys are judged by whether the maker lists them. A key that isn’t listed may still be there, so check the layout diagram&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=usb&amp;amp;numeric-keypad-finder-keys=tab00&amp;amp;numeric-keypad-finder-form=any&amp;amp;numeric-keypad-finder-numlock=any#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wired USB, Tab, 00, Any thickness, NumLock handling stated&lt;/td&gt;&lt;td&gt;✓ 5 models match. ELECOM TK-TCM011BK, ELECOM TK-TCM012BK, BUFFALO BSTK130BK, BUFFALO BSTK135BK, BUFFALO BSTK120BKZ. ELECOM TK-TCM011BK: wired USB, listed keys Tab, 00, membrane, 23.5 mm tall, 110 g. NumLock (ELECOM TK-TCM011BK): Solves the NumLock problem in hardware; no software needed. ELECOM TK-TCM012BK: wired USB, listed keys Tab, 00, membrane, 23.5 mm tall, 114 g. NumLock (ELECOM TK-TCM012BK): Solves the NumLock problem in hardware; no software needed. BUFFALO BSTK130BK: wired USB, listed keys Tab, 00, membrane, 20 mm tall, 115 g. NumLock (BUFFALO BSTK130BK): Designed so the keypad’s NumLock does not sync with the PC’s NumLock (maker statement). Other matching models: BSTK135BK, BSTK120BKZ. No Windows 11 listing (not used for picks): BSTK130BK, BSTK135BK, BSTK120BKZ. Keys are judged by whether the maker lists them. A key that isn’t listed may still be there, so check the layout diagram. NumLock handling is quoted from each maker. Models that don’t state it aren’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=usb&amp;amp;numeric-keypad-finder-keys=tab00&amp;amp;numeric-keypad-finder-form=any&amp;amp;numeric-keypad-finder-numlock=stated#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wired USB, Tab, 00, Slim (pantograph keys), NumLock doesn’t matter&lt;/td&gt;&lt;td&gt;✓ 1 model matches. ELECOM TK-TCP018BK. ELECOM TK-TCP018BK: wired USB, listed keys Tab, 00, pantograph, 21.5 mm tall, 110 g. Keys are judged by whether the maker lists them. A key that isn’t listed may still be there, so check the layout diagram. Slim means the maker lists a pantograph key switch (this article’s grouping)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=usb&amp;amp;numeric-keypad-finder-keys=tab00&amp;amp;numeric-keypad-finder-form=thin&amp;amp;numeric-keypad-finder-numlock=any#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wired USB, Tab, 00, BS, =, Any thickness, NumLock doesn’t matter&lt;/td&gt;&lt;td&gt;✓ 1 model matches. ELECOM TK-TCM015BK. ELECOM TK-TCM015BK: wired USB, listed keys Tab, 00, BS, =, membrane, 24.5 mm tall, 143 g. Keys are judged by whether the maker lists them. A key that isn’t listed may still be there, so check the layout diagram&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=usb&amp;amp;numeric-keypad-finder-keys=full&amp;amp;numeric-keypad-finder-form=any&amp;amp;numeric-keypad-finder-numlock=any#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wired USB, Tab, =, Any thickness, NumLock handling stated&lt;/td&gt;&lt;td&gt;✓ 1 model matches. Sanwa Supply NT-27UBK. Sanwa Supply NT-27UBK: wired USB, listed keys Tab, =, pantograph, 18 mm tall, 110 g. NumLock (Sanwa Supply NT-27UBK): NumLock-independent (maker statement; has a NumLock LED). Keys are judged by whether the maker lists them. A key that isn’t listed may still be there, so check the layout diagram. NumLock handling is quoted from each maker. Models that don’t state it aren’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=usb&amp;amp;numeric-keypad-finder-keys=eq&amp;amp;numeric-keypad-finder-form=any&amp;amp;numeric-keypad-finder-numlock=stated#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2.4 GHz (receiver), Tab, 00, Any thickness, NumLock doesn’t matter&lt;/td&gt;&lt;td&gt;✓ 5 models match. ELECOM TK-TDM017BK, ELECOM TK-TDM022SKBK, ELECOM TK-TDP019BK, Sanwa Supply NT-WL21BK, Sanwa Supply NT-WL23BK. ELECOM TK-TDM017BK: 2.4 GHz wireless (USB receiver), listed keys Tab, 00, membrane, 26.5 mm tall, 107 g. Battery (TK-TDM017BK): one AA battery, 1.3 years (estimated battery life, with alkaline batteries, maker’s own test). ELECOM TK-TDM022SKBK: 2.4 GHz wireless (USB receiver), listed keys Tab, 00, membrane, 26.6 mm tall, 80 g. Battery (TK-TDM022SKBK): one AAA battery, 1.5 years (estimated battery life, with alkaline batteries, assuming 8 hours of PC use a day). ELECOM TK-TDP019BK: 2.4 GHz wireless (USB receiver), listed keys Tab, 00, pantograph, 21.5 mm tall, 100 g. Battery (TK-TDP019BK): one AAA battery, 1 year (estimated battery life, with alkaline batteries, maker’s own test). Other matching models: NT-WL21BK, NT-WL23BK. Keys are judged by whether the maker lists them. A key that isn’t listed may still be there, so check the layout diagram. Battery figures are the makers’ own, stated in different ways (estimated battery life vs. continuous operating time), so they aren’t compared&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=rx&amp;amp;numeric-keypad-finder-keys=tab00&amp;amp;numeric-keypad-finder-form=any&amp;amp;numeric-keypad-finder-numlock=any#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2.4 GHz (receiver), Tab, 00, Slim (pantograph keys), NumLock doesn’t matter&lt;/td&gt;&lt;td&gt;✓ 3 models match. ELECOM TK-TDP019BK, Sanwa Supply NT-WL21BK, Sanwa Supply NT-WL23BK. ELECOM TK-TDP019BK: 2.4 GHz wireless (USB receiver), listed keys Tab, 00, pantograph, 21.5 mm tall, 100 g. Battery (TK-TDP019BK): one AAA battery, 1 year (estimated battery life, with alkaline batteries, maker’s own test). Sanwa Supply NT-WL21BK: 2.4 GHz wireless (USB receiver), listed keys Tab, 00, pantograph, 17 mm tall, 70 g. NumLock (Sanwa Supply NT-WL21BK): NumLock-independent (maker statement). Battery (NT-WL21BK): one AAA battery, 70 hours (continuous operating time, with alkaline batteries). Sanwa Supply NT-WL23BK: 2.4 GHz wireless (USB receiver), listed keys Tab, 00, pantograph, 17 mm tall, 70 g. NumLock (Sanwa Supply NT-WL23BK): NumLock-independent (maker statement). Battery (NT-WL23BK): one AAA battery, 70 hours (continuous operating time, with alkaline batteries). Keys are judged by whether the maker lists them. A key that isn’t listed may still be there, so check the layout diagram. Slim means the maker lists a pantograph key switch (this article’s grouping). Battery figures are the makers’ own, stated in different ways (estimated battery life vs. continuous operating time), so they aren’t compared&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=rx&amp;amp;numeric-keypad-finder-keys=tab00&amp;amp;numeric-keypad-finder-form=thin&amp;amp;numeric-keypad-finder-numlock=any#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2.4 GHz (receiver), Tab, 00, Any thickness, NumLock handling stated&lt;/td&gt;&lt;td&gt;✓ 2 models match. Sanwa Supply NT-WL21BK, Sanwa Supply NT-WL23BK. Sanwa Supply NT-WL21BK: 2.4 GHz wireless (USB receiver), listed keys Tab, 00, pantograph, 17 mm tall, 70 g. NumLock (Sanwa Supply NT-WL21BK): NumLock-independent (maker statement). Battery (NT-WL21BK): one AAA battery, 70 hours (continuous operating time, with alkaline batteries). Sanwa Supply NT-WL23BK: 2.4 GHz wireless (USB receiver), listed keys Tab, 00, pantograph, 17 mm tall, 70 g. NumLock (Sanwa Supply NT-WL23BK): NumLock-independent (maker statement). Battery (NT-WL23BK): one AAA battery, 70 hours (continuous operating time, with alkaline batteries). Keys are judged by whether the maker lists them. A key that isn’t listed may still be there, so check the layout diagram. NumLock handling is quoted from each maker. Models that don’t state it aren’t judged. Battery figures are the makers’ own, stated in different ways (estimated battery life vs. continuous operating time), so they aren’t compared&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=rx&amp;amp;numeric-keypad-finder-keys=tab00&amp;amp;numeric-keypad-finder-form=any&amp;amp;numeric-keypad-finder-numlock=stated#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2.4 GHz (receiver), Tab, 00, BS, =, Any thickness, NumLock doesn’t matter&lt;/td&gt;&lt;td&gt;✕ No model in this research matches. Keys are judged by whether the maker lists them. A key that isn’t listed may still be there, so check the layout diagram&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=rx&amp;amp;numeric-keypad-finder-keys=full&amp;amp;numeric-keypad-finder-form=any&amp;amp;numeric-keypad-finder-numlock=any#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bluetooth, Tab, 00, Any thickness, NumLock doesn’t matter&lt;/td&gt;&lt;td&gt;✓ 4 models match. ELECOM TK-TBM023SKBK, ELECOM TK-TBP020BK, Sanwa Supply NT-BT21BK, Sanwa Supply NT-BT23BK. ELECOM TK-TBM023SKBK: Bluetooth, listed keys Tab, 00, membrane, 26.6 mm tall, 80 g. Battery (TK-TBM023SKBK): one AAA battery, 10 months (estimated battery life, with alkaline batteries, assuming 8 hours of PC use a day). Devices (TK-TBM023SKBK): One device at a time (paired). ELECOM TK-TBP020BK: Bluetooth, listed keys Tab, 00, pantograph, 21.5 mm tall, 100 g. Battery (TK-TBP020BK): one AAA battery, 1 year (estimated battery life, with alkaline batteries, maker’s own test). Devices (TK-TBP020BK): One device at a time (paired). Sanwa Supply NT-BT21BK: Bluetooth, listed keys Tab, 00, pantograph, 17 mm tall, 70 g. NumLock (Sanwa Supply NT-BT21BK): NumLock-independent (maker statement). Battery (NT-BT21BK): one AAA battery, 150 hours (continuous operating time). Other matching models: NT-BT23BK. Keys are judged by whether the maker lists them. A key that isn’t listed may still be there, so check the layout diagram. Battery figures are the makers’ own, stated in different ways (estimated battery life vs. continuous operating time), so they aren’t compared&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=bt&amp;amp;numeric-keypad-finder-keys=tab00&amp;amp;numeric-keypad-finder-form=any&amp;amp;numeric-keypad-finder-numlock=any#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bluetooth, Tab, 00, Slim (pantograph keys), NumLock doesn’t matter&lt;/td&gt;&lt;td&gt;✓ 3 models match. ELECOM TK-TBP020BK, Sanwa Supply NT-BT21BK, Sanwa Supply NT-BT23BK. ELECOM TK-TBP020BK: Bluetooth, listed keys Tab, 00, pantograph, 21.5 mm tall, 100 g. Battery (TK-TBP020BK): one AAA battery, 1 year (estimated battery life, with alkaline batteries, maker’s own test). Devices (TK-TBP020BK): One device at a time (paired). Sanwa Supply NT-BT21BK: Bluetooth, listed keys Tab, 00, pantograph, 17 mm tall, 70 g. NumLock (Sanwa Supply NT-BT21BK): NumLock-independent (maker statement). Battery (NT-BT21BK): one AAA battery, 150 hours (continuous operating time). Sanwa Supply NT-BT23BK: Bluetooth, listed keys Tab, 00, pantograph, 17 mm tall, 70 g. NumLock (Sanwa Supply NT-BT23BK): NumLock-independent (maker statement). Battery (NT-BT23BK): one AAA battery, 150 hours (continuous operating time). Keys are judged by whether the maker lists them. A key that isn’t listed may still be there, so check the layout diagram. Slim means the maker lists a pantograph key switch (this article’s grouping). Battery figures are the makers’ own, stated in different ways (estimated battery life vs. continuous operating time), so they aren’t compared&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=bt&amp;amp;numeric-keypad-finder-keys=tab00&amp;amp;numeric-keypad-finder-form=thin&amp;amp;numeric-keypad-finder-numlock=any#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bluetooth, Tab, 00, Any thickness, NumLock handling stated&lt;/td&gt;&lt;td&gt;✓ 2 models match. Sanwa Supply NT-BT21BK, Sanwa Supply NT-BT23BK. Sanwa Supply NT-BT21BK: Bluetooth, listed keys Tab, 00, pantograph, 17 mm tall, 70 g. NumLock (Sanwa Supply NT-BT21BK): NumLock-independent (maker statement). Battery (NT-BT21BK): one AAA battery, 150 hours (continuous operating time). Sanwa Supply NT-BT23BK: Bluetooth, listed keys Tab, 00, pantograph, 17 mm tall, 70 g. NumLock (Sanwa Supply NT-BT23BK): NumLock-independent (maker statement). Battery (NT-BT23BK): one AAA battery, 150 hours (continuous operating time). Keys are judged by whether the maker lists them. A key that isn’t listed may still be there, so check the layout diagram. NumLock handling is quoted from each maker. Models that don’t state it aren’t judged. Battery figures are the makers’ own, stated in different ways (estimated battery life vs. continuous operating time), so they aren’t compared&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=bt&amp;amp;numeric-keypad-finder-keys=tab00&amp;amp;numeric-keypad-finder-form=any&amp;amp;numeric-keypad-finder-numlock=stated#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bluetooth, Any keys, Any thickness, NumLock doesn’t matter&lt;/td&gt;&lt;td&gt;✓ 6 models match. ELECOM TK-TBM023SKBK, ELECOM TK-TBP020BK, Sanwa Supply NT-BT21BK, Sanwa Supply NT-BT23BK, Sanwa Supply NT-BT27BK, Satechi ST-XLABKM. ELECOM TK-TBM023SKBK: Bluetooth, listed keys Tab, 00, membrane, 26.6 mm tall, 80 g. Battery (TK-TBM023SKBK): one AAA battery, 10 months (estimated battery life, with alkaline batteries, assuming 8 hours of PC use a day). Devices (TK-TBM023SKBK): One device at a time (paired). ELECOM TK-TBP020BK: Bluetooth, listed keys Tab, 00, pantograph, 21.5 mm tall, 100 g. Battery (TK-TBP020BK): one AAA battery, 1 year (estimated battery life, with alkaline batteries, maker’s own test). Devices (TK-TBP020BK): One device at a time (paired). Sanwa Supply NT-BT21BK: Bluetooth, listed keys Tab, 00, pantograph, 17 mm tall, 70 g. NumLock (Sanwa Supply NT-BT21BK): NumLock-independent (maker statement). Battery (NT-BT21BK): one AAA battery, 150 hours (continuous operating time). Other matching models: NT-BT23BK, NT-BT27BK, ST-XLABKM. No Windows 11 listing (not used for picks): ST-XLABKM. Battery figures are the makers’ own, stated in different ways (estimated battery life vs. continuous operating time), so they aren’t compared&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=bt&amp;amp;numeric-keypad-finder-keys=any&amp;amp;numeric-keypad-finder-form=any&amp;amp;numeric-keypad-finder-numlock=any#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Any, Tab, 00, BS, =, Any thickness, NumLock doesn’t matter&lt;/td&gt;&lt;td&gt;✓ 1 model matches. ELECOM TK-TCM015BK. ELECOM TK-TCM015BK: wired USB, listed keys Tab, 00, BS, =, membrane, 24.5 mm tall, 143 g. Keys are judged by whether the maker lists them. A key that isn’t listed may still be there, so check the layout diagram&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-10-numeric-keypad-windows/?numeric-keypad-finder-conn=any&amp;amp;numeric-keypad-finder-keys=full&amp;amp;numeric-keypad-finder-form=any&amp;amp;numeric-keypad-finder-numlock=any#numeric-keypad-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>keyboard</category></item><item><title>Vue.js for beginners — components, props, and two-way binding, explained with real code</title><link>https://aulvem.com/blog/2021-04-09-vue-component/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-09-vue-component/</guid><description>A walkthrough of Vue.js components for first-time users — what a component is, how parent and child talk to each other, and where to use one-way binding (v-bind / v-on) versus two-way binding (v-bind + v-on, or .sync) — with runnable code at each step.</description><pubDate>Fri, 09 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: a post ported over from the old VuePress blog. The shape of the explanation still holds, but the tooling and Vue version are frozen at the time of writing and differ from the current release.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For anyone picking up Vue.js — or a JavaScript framework — for the first time, &lt;strong&gt;the part to understand first is components&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This post starts from what a component is, so it should read cleanly even without prior framework experience.&lt;/p&gt;
&lt;h2 id=&quot;the-short-version&quot;&gt;The short version&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;component&lt;/strong&gt; is a reusable UI part — it raises maintainability and lets you reuse work&lt;/li&gt;
&lt;li&gt;Data flows between a parent and a child through &lt;strong&gt;binding&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Use one-way binding (&lt;code&gt;v-bind&lt;/code&gt; / &lt;code&gt;v-on&lt;/code&gt;) and two-way binding (&lt;code&gt;v-bind&lt;/code&gt; + &lt;code&gt;v-on&lt;/code&gt;, or &lt;code&gt;.sync&lt;/code&gt;) depending on whether the data needs transforming&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;what-is-a-component&quot;&gt;What is a component?&lt;/h2&gt;
&lt;p&gt;Vue.js and Angular both build on the idea of a component.&lt;/p&gt;
&lt;p&gt;Vue uses components to consolidate code. Consolidation cuts down the amount of code you maintain and makes it easier to change later.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Every Vue project uses components in some form, so understanding them is non-optional.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;a-reusable-part&quot;&gt;A reusable part&lt;/h3&gt;
&lt;p&gt;A component, in one line, is a &lt;strong&gt;reusable part&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A &lt;code&gt;.vue&lt;/code&gt; file can import and use another &lt;code&gt;.vue&lt;/code&gt; file inside its own template.&lt;/p&gt;
&lt;p&gt;Build a button as a reusable component, for example, and any caller can render the same look and the same behaviour just by referencing it.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Example: a button&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Goal&lt;/strong&gt;: reuse a 20 px square button labelled “click here”.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In file A, define a 20 px square button labelled “click here”.&lt;/li&gt;
&lt;li&gt;In file B, render the button component.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;: the button shows up in file B.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The side being called (file A) and the side calling it (file B) are usually referred to as the &lt;strong&gt;child&lt;/strong&gt; and the &lt;strong&gt;parent&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;From here on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The caller = parent&lt;/li&gt;
&lt;li&gt;The called = child&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;what-is-binding&quot;&gt;What is binding?&lt;/h3&gt;
&lt;p&gt;In the button example above, two limitations stand out:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The button text is hard-coded&lt;/li&gt;
&lt;li&gt;The click handler has to live in the child&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Binding is what removes those limits.&lt;/p&gt;
&lt;h3 id=&quot;component-to-component-data-flow&quot;&gt;Component-to-component data flow&lt;/h3&gt;
&lt;p&gt;Binding, in one line, is &lt;strong&gt;the data flow between components&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;With binding in place you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Let the parent decide the child’s text&lt;/li&gt;
&lt;li&gt;Let the child propagate an event up to the parent&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both of the issues above go away once binding is added.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;The relationship between the parent and the child matters here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A one-way trip — parent to child, or child to parent — is &lt;strong&gt;one-way binding&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;A round trip between the two is &lt;strong&gt;two-way binding&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Components do not click into place until binding does, so this is the section worth re-reading.&lt;/p&gt;
&lt;h2 id=&quot;working-examples&quot;&gt;Working examples&lt;/h2&gt;
&lt;p&gt;From here, the explanation is anchored to real Vue.js code.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;.vue&lt;/code&gt; file basics are unfamiliar, the earlier post covers them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-02-vue-base/&quot;&gt;Vue.js for beginners — the basics&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;using-a-component&quot;&gt;Using a component&lt;/h3&gt;
&lt;p&gt;Start with the plainest case: rendering a component with no binding at all.&lt;/p&gt;
&lt;p&gt;The child shows a string. The parent renders the child.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Child&lt;/strong&gt;: &lt;code&gt;ChildComponent.vue&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  string&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The child has no logic — it just prints text.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Parent&lt;/strong&gt;: &lt;code&gt;ParentComponent.vue&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;ChildComponent&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; ChildComponent &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;xxxx/ChildComponent.vue&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  components: { ChildComponent },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The parent imports &lt;code&gt;ChildComponent.vue&lt;/code&gt; and registers it under &lt;code&gt;components&lt;/code&gt;. On the template side, dropping &lt;code&gt;&amp;lt;ChildComponent /&amp;gt;&lt;/code&gt; where you want it to render is enough.&lt;/p&gt;
&lt;h3 id=&quot;v-bind--one-way-binding-parent-to-child&quot;&gt;v-bind — one-way binding, parent to child&lt;/h3&gt;
&lt;p&gt;With the call mechanics out of the way, the next step is parent-to-child binding.&lt;/p&gt;
&lt;p&gt;The idea is: let the parent decide the child’s text.&lt;/p&gt;
&lt;p&gt;The snippet below passes a string set in the parent down to the child.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Child&lt;/strong&gt;: &lt;code&gt;ChildComponent.vue&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  {{bindName}}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  props: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;bindName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To receive data from the parent, the child declares &lt;strong&gt;props&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The prop name has to match on both sides. Here it is &lt;code&gt;bindName&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;props&lt;/code&gt; is an array, so a child can declare multiple inbound props at once.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Parent&lt;/strong&gt;: &lt;code&gt;ParentComponent.vue&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;ChildComponent&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; :bindName&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;dataName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; ChildComponent &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;xxxx/ChildComponent.vue&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  components: { ChildComponent },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      dataName: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;string&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The parent renders the child with &lt;code&gt;:bindName=&amp;quot;dataName&amp;quot;&lt;/code&gt;. That attribute is the bind itself.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bindName&lt;/code&gt; is the prop name on the child&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dataName&lt;/code&gt; is the data field on the parent&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is the full parent-to-child flow.&lt;/p&gt;
&lt;h3 id=&quot;v-on--one-way-binding-child-to-parent&quot;&gt;v-on — one-way binding, child to parent&lt;/h3&gt;
&lt;p&gt;Next, child-to-parent binding.&lt;/p&gt;
&lt;p&gt;The idea is: let the parent observe an event that happened inside the child.&lt;/p&gt;
&lt;p&gt;In the snippet below, clicking the child’s text fires an event in the parent and flips the parent’s text from &lt;strong&gt;string → モジ&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Child&lt;/strong&gt;: &lt;code&gt;ChildComponent.vue&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; @click&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;clickText()&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      クリックして変更&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  methods: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;    clickText&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      this&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$emit&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;onName&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;モジ&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The child wires up a click handler — &lt;code&gt;@click&lt;/code&gt; is the directive.&lt;/p&gt;
&lt;p&gt;Inside the method, the line that lifts the event up to the parent is &lt;code&gt;emit&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The first argument, &lt;code&gt;onName&lt;/code&gt;, is the event name&lt;/li&gt;
&lt;li&gt;The second argument, &lt;code&gt;モジ&lt;/code&gt;, is the payload (an object works too)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Clicking “クリックして変更” propagates up to the parent’s &lt;code&gt;onName&lt;/code&gt; listener.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Parent&lt;/strong&gt;: &lt;code&gt;ParentComponent.vue&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  {{dataName}}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;ChildComponent&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; @onName&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;changeName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; ChildComponent &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;xxxx/ChildComponent.vue&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  components: { ChildComponent },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      dataName: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;string&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  methods: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;    changeName&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      this&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.dataName &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; item&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The parent looks much like the &lt;code&gt;v-bind&lt;/code&gt; case.&lt;/p&gt;
&lt;p&gt;The new piece is &lt;code&gt;changeName&lt;/code&gt; — its argument is the payload the child emitted.&lt;/p&gt;
&lt;p&gt;That is the full child-to-parent flow.&lt;/p&gt;
&lt;h2 id=&quot;going-further&quot;&gt;Going further&lt;/h2&gt;
&lt;p&gt;The one-way patterns above cannot move data in both directions on their own.&lt;/p&gt;
&lt;p&gt;Two-way binding is what closes that loop. It is the trickiest part of components, so this section is worth slowing down on.&lt;/p&gt;
&lt;h3 id=&quot;v-bind--v-on--two-way-binding&quot;&gt;v-bind + v-on — two-way binding&lt;/h3&gt;
&lt;p&gt;Vue.js has two common ways to do two-way binding. The most fundamental one comes first.&lt;/p&gt;
&lt;p&gt;It is the combination of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;v-bind&lt;/code&gt; — one-way, parent to child&lt;/li&gt;
&lt;li&gt;&lt;code&gt;v-on&lt;/code&gt; — one-way, child to parent&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The flow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The parent sets the string the child will show (&lt;code&gt;string&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;The child sends a click event up to the parent (payload: &lt;code&gt;モジ&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;The parent’s string flips from &lt;code&gt;string&lt;/code&gt; → &lt;code&gt;モジ&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The child re-renders with &lt;code&gt;モジ&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Previous sections led with the child. From here, &lt;strong&gt;the parent comes first&lt;/strong&gt; — it reads more naturally.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Parent&lt;/strong&gt;: &lt;code&gt;ParentComponent.vue&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;ChildComponent&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; :bindName&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;dataName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; @onName&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;changeName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; ChildComponent &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;xxxx/ChildComponent.vue&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  components: { ChildComponent },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      dataName: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;string&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  methods: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;    changeName&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      this&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.dataName &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; item&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It is just &lt;code&gt;v-bind&lt;/code&gt; and &lt;code&gt;v-on&lt;/code&gt; running side by side. The parent stays straightforward.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Child&lt;/strong&gt;: &lt;code&gt;ChildComponent.vue&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    {{bindName}}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; @click&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;clickText()&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      クリックして変更&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  props: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;bindName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  methods: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;    clickText&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      this&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$emit&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;onName&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;モジ&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The child is the same shape — &lt;code&gt;v-bind&lt;/code&gt; plus &lt;code&gt;v-on&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If this stops making sense, walking through the four-step flow above in order tends to put it back together.&lt;/p&gt;
&lt;h3 id=&quot;sync--two-way-binding&quot;&gt;.sync — two-way binding&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;v-bind&lt;/code&gt; + &lt;code&gt;v-on&lt;/code&gt; works, but it gets verbose.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.sync&lt;/code&gt; is the shortcut for the cases that do not need the wiring.&lt;/p&gt;
&lt;p&gt;In one line, &lt;code&gt;.sync&lt;/code&gt; &lt;strong&gt;turns &lt;code&gt;v-bind&lt;/code&gt; into a synced binding&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The code below produces the same end behaviour as the previous snippet:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The parent sets the string the child will show (&lt;code&gt;string&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;The child sends a click event up to the parent (payload: &lt;code&gt;モジ&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;The parent’s string flips from &lt;code&gt;string&lt;/code&gt; → &lt;code&gt;モジ&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The child re-renders with &lt;code&gt;モジ&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Parent&lt;/strong&gt;: &lt;code&gt;ParentComponent.vue&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;ChildComponent&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; :bindName.sync&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;dataName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; ChildComponent &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;quot;xxxx/ChildComponent.vue&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  components: { ChildComponent },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      dataName: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;string&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    };&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The parent gets noticeably lighter.&lt;/p&gt;
&lt;p&gt;The key is &lt;code&gt;bindName.sync&lt;/code&gt; — adding &lt;code&gt;.sync&lt;/code&gt; removes the explicit assignment that &lt;code&gt;v-on&lt;/code&gt; was doing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Child&lt;/strong&gt;: &lt;code&gt;ChildComponent.vue&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    {{bindName}}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; @click&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;clickText()&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      クリックして変更&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  props: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;bindName&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  methods: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;    clickText&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      this&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$emit&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;update:bindName&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;モジ&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The child changes slightly — the first argument to &lt;code&gt;emit&lt;/code&gt; becomes &lt;code&gt;update:bindName&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;update:&lt;/code&gt; prefix is what wires the emit back into the parent’s &lt;code&gt;.sync&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;v-on-vs-sync--when-to-use-which&quot;&gt;v-on vs. .sync — when to use which&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;.sync&lt;/code&gt; is shorter, but it has a caveat.&lt;/p&gt;
&lt;p&gt;Because it is a synced bind, there is no place to hook in transformation logic. &lt;strong&gt;If the parent needs to filter or reshape the child’s payload before assigning it, &lt;code&gt;.sync&lt;/code&gt; will not fit.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A rough rule for two-way binding:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If the data is transformed between files → &lt;strong&gt;v-bind + v-on&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;If the data is passed through unchanged → &lt;strong&gt;.sync&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;wrap-up&quot;&gt;Wrap-up&lt;/h2&gt;
&lt;p&gt;Components and binding are two of the load-bearing pieces of Vue.js, and the rest of the framework leans on them. Worth re-reading and writing out by hand until they feel automatic.&lt;/p&gt;</content:encoded><category>build</category><category>JavaScript</category><category>Vue.js</category><category>Component</category></item><item><title>Best MacBook for Blogging: Smallest Config by Use</title><link>https://aulvem.com/blog/2021-04-08-blog-macbook/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-08-blog-macbook/</guid><description>The smallest configuration is 8 GB of memory and 256 GB of storage. That holds with no Lightroom Classic AI features and external displays capped at 1 display. It&apos;s borderline against the 8 GB minimum for Lightroom Classic and Photoshop. With two external displays, or Lightroom Classic&apos;s AI features with up to two, the smallest option is an M5 configuration with 16 GB of memory and 512 GB of storage. It&apos;s borderline against both the recommended 16 GB or more and Lightroom Classic&apos;s 16 GB for AI features. With 3 displays you need the M5 Pro chip, and with 4 displays the M5 Max. Worked out from Adobe&apos;s official Lightroom Classic and Photoshop requirements and Apple&apos;s specs as of October 2026.</description><pubDate>Thu, 08 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;For the October 2026 lineup, the smallest configuration is 8 GB of memory and 256 GB of storage. That holds with no Lightroom Classic AI features and external displays capped at 1 display. It’s borderline against the 8 GB minimum for Lightroom Classic and Photoshop.&lt;/p&gt;
&lt;p&gt;With two external displays, or Lightroom Classic’s AI features with up to two, the smallest option is an M5 configuration with 16 GB of memory and 512 GB of storage. It’s borderline against both the recommended 16 GB or more and Lightroom Classic’s 16 GB for AI features. With 3 displays you need the M5 Pro chip, and with 4 displays the M5 Max.&lt;/p&gt;
&lt;p&gt;This covers the MacBooks Apple sells now, checked as of October 2026. Lightroom Classic’s AI features are the ones that process photos with AI. Nothing was tested on real hardware, so speed and comfort aren’t judged.&lt;/p&gt;
&lt;h2 id=&quot;the-smallest-config-depends-on-your-use-and-your-external-displays&quot;&gt;The smallest config depends on your use and your external displays&lt;/h2&gt;
&lt;p&gt;The table ignores weight; weight only comes in through the carry option in the tool below. For plain writing, only the number of external displays matters. For photo editing, the pick is the first config, going from Neo to Air to Pro, that meets Adobe’s minimum RAM.&lt;/p&gt;








































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;External displays&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Writing only (RAM not judged)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Lightroom Classic (minimum 8 GB)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Photoshop (minimum 8 GB)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Lightroom Classic AI features (16 GB)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Up to 1 display&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;MacBook Neo, 8 GB / 256 GB, memory not judged&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;MacBook Neo, 8 GB / 256 GB, borderline&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;MacBook Neo, 8 GB / 256 GB, borderline&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch MacBook Air (M5), 16 GB / 512 GB, borderline&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch MacBook Air (M5), 16 GB / 512 GB, memory not judged&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch MacBook Air (M5), 16 GB / 512 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch MacBook Air (M5), 16 GB / 512 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch MacBook Air (M5), 16 GB / 512 GB, borderline&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Pro), 24 GB / 1 TB, memory not judged&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Pro), 24 GB / 1 TB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Pro), 24 GB / 1 TB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Pro), 24 GB / 1 TB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Max), 36 GB / 2 TB, memory not judged&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Max), 36 GB / 2 TB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Max), 36 GB / 2 TB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Max), 36 GB / 2 TB&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;“Borderline” means the spare RAM (the configuration’s RAM minus the minimum) is under 10% of the minimum. Per Adobe’s official requirements, each official figure is for that app on its own. A figure for running Lightroom Classic and Photoshop together wasn’t found in Adobe’s requirements, so this article doesn’t judge it.&lt;/p&gt;
&lt;p&gt;Only the maximum display count was checked, not resolution or refresh rate combinations.&lt;/p&gt;
&lt;section id=&quot;macbook-blog-config-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;macbook-blog-config-calc-title&quot;&gt; &lt;h3 id=&quot;macbook-blog-config-calc-title&quot;&gt;Minimum MacBook configuration for blogging&lt;/h3&gt; &lt;p&gt;Pick what you do (writing only, Lightroom Classic, Photoshop, or AI features), how much you carry it and how many external displays you use. It rounds Adobe&amp;#39;s official memory figures up to Apple&amp;#39;s memory tiers, shows the lightest configuration that fits, and suggests one MacBook you can buy.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;air13_16_512&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch MacBook Air (M5), 16GB/512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/714mf1PUL4L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch MacBook Air (M5), 16GB/512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1T11D6?q=13-inch+MacBook+Air+%28M5%29%2C+16GB%2F512GB&amp;amp;us=B0GR1J6T45&amp;amp;l=en&quot; aria-label=&quot;View 13-inch MacBook Air (M5), 16GB/512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;air13_24_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch MacBook Air (M5), 24GB/1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71igu9e9hFL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch MacBook Air (M5), 24GB/1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR11MSHY?q=13-inch+MacBook+Air+%28M5%29%2C+24GB%2F1TB&amp;amp;us=B0GR11MSHY&amp;amp;l=en&quot; aria-label=&quot;View 13-inch MacBook Air (M5), 24GB/1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;air15_16_512&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 15-inch MacBook Air (M5), 16GB/512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71f3rEW30BL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;15-inch MacBook Air (M5), 16GB/512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1GC1D6?q=15-inch+MacBook+Air+%28M5%29%2C+16GB%2F512GB&amp;amp;us=B0GR1GC1D6&amp;amp;l=en&quot; aria-label=&quot;View 15-inch MacBook Air (M5), 16GB/512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;air15_16_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 15-inch MacBook Air (M5), 16GB/1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71N5EbSaQqL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;15-inch MacBook Air (M5), 16GB/1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1BJ72L?q=15-inch+MacBook+Air+%28M5%29%2C+16GB%2F1TB&amp;amp;us=B0GR1BJ72L&amp;amp;l=en&quot; aria-label=&quot;View 15-inch MacBook Air (M5), 16GB/1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;air15_24_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 15-inch MacBook Air (M5), 24GB/1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71N5EbSaQqL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;15-inch MacBook Air (M5), 24GB/1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1RWSMF?q=15-inch+MacBook+Air+%28M5%29%2C+24GB%2F1TB&amp;amp;us=B0GR1RWSMF&amp;amp;l=en&quot; aria-label=&quot;View 15-inch MacBook Air (M5), 24GB/1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;pro14_m5_16_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 14-inch MacBook Pro (M5), 16GB/1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/6112T6g2P-L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;14-inch MacBook Pro (M5), 16GB/1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD623D1?q=14-inch+MacBook+Pro+%28M5%29%2C+16GB%2F1TB&amp;amp;us=B0FWD623D1&amp;amp;l=en&quot; aria-label=&quot;View 14-inch MacBook Pro (M5), 16GB/1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;pro14_m5pro_24_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 14-inch MacBook Pro (M5 Pro), 24GB/1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61yFkQA+HFL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;14-inch MacBook Pro (M5 Pro), 24GB/1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1JK9W3?q=14-inch+MacBook+Pro+%28M5+Pro%29%2C+24GB%2F1TB&amp;amp;us=B0GR1JK9W3&amp;amp;l=en&quot; aria-label=&quot;View 14-inch MacBook Pro (M5 Pro), 24GB/1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;neo_8_256&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MacBook Neo, 8GB/256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61MxIxzYvUL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MacBook Neo, 8GB/256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR6KJ72L?q=MacBook+Neo%2C+8GB%2F256GB&amp;amp;us=B0GR6KJ72L&amp;amp;l=en&quot; aria-label=&quot;View MacBook Neo, 8GB/256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;neo_8_512&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MacBook Neo, 8GB/512GB with Touch ID&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/619PNoEsnSL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MacBook Neo, 8GB/512GB with Touch ID&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR6M7Z8Y?q=MacBook+Neo%2C+8GB%2F512GB+with+Touch+ID&amp;amp;us=B0GR6JMY9W&amp;amp;l=en&quot; aria-label=&quot;View MacBook Neo, 8GB/512GB with Touch ID on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;models&quot;:{&quot;neo&quot;:{&quot;ja&quot;:&quot;MacBook Neo&quot;,&quot;en&quot;:&quot;MacBook Neo&quot;,&quot;chip&quot;:&quot;A18 Pro&quot;,&quot;tiers&quot;:[8],&quot;sto&quot;:256,&quot;disp&quot;:1,&quot;w&quot;:1.23,&quot;sd&quot;:false},&quot;air13&quot;:{&quot;ja&quot;:&quot;MacBook Air 13インチ（M5）&quot;,&quot;en&quot;:&quot;13-inch MacBook Air (M5)&quot;,&quot;chip&quot;:&quot;M5&quot;,&quot;tiers&quot;:[16,24,32],&quot;sto&quot;:512,&quot;disp&quot;:2,&quot;w&quot;:1.23,&quot;sd&quot;:false},&quot;air15&quot;:{&quot;ja&quot;:&quot;MacBook Air 15インチ（M5）&quot;,&quot;en&quot;:&quot;15-inch MacBook Air (M5)&quot;,&quot;chip&quot;:&quot;M5&quot;,&quot;tiers&quot;:[16,24,32],&quot;sto&quot;:512,&quot;disp&quot;:2,&quot;w&quot;:1.51,&quot;sd&quot;:false},&quot;pro14_m5&quot;:{&quot;ja&quot;:&quot;MacBook Pro 14インチ（M5）&quot;,&quot;en&quot;:&quot;14-inch MacBook Pro (M5)&quot;,&quot;chip&quot;:&quot;M5&quot;,&quot;tiers&quot;:[16,24,32],&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.55,&quot;sd&quot;:true},&quot;pro14_m5pro&quot;:{&quot;ja&quot;:&quot;MacBook Pro 14インチ（M5 Pro）&quot;,&quot;en&quot;:&quot;14-inch MacBook Pro (M5 Pro)&quot;,&quot;chip&quot;:&quot;M5 Pro&quot;,&quot;tiers&quot;:[24,48,64],&quot;sto&quot;:1024,&quot;disp&quot;:3,&quot;w&quot;:1.6,&quot;sd&quot;:true},&quot;pro16_m5pro&quot;:{&quot;ja&quot;:&quot;MacBook Pro 16インチ（M5 Pro）&quot;,&quot;en&quot;:&quot;16-inch MacBook Pro (M5 Pro)&quot;,&quot;chip&quot;:&quot;M5 Pro&quot;,&quot;tiers&quot;:[24,48,64],&quot;sto&quot;:1024,&quot;disp&quot;:3,&quot;w&quot;:2.14,&quot;sd&quot;:true},&quot;pro14_m5max&quot;:{&quot;ja&quot;:&quot;MacBook Pro 14インチ（M5 Max）&quot;,&quot;en&quot;:&quot;14-inch MacBook Pro (M5 Max)&quot;,&quot;chip&quot;:&quot;M5 Max&quot;,&quot;tiers&quot;:[36],&quot;sto&quot;:2048,&quot;disp&quot;:4,&quot;w&quot;:1.62,&quot;sd&quot;:true},&quot;pro16_m5max&quot;:{&quot;ja&quot;:&quot;MacBook Pro 16インチ（M5 Max）&quot;,&quot;en&quot;:&quot;16-inch MacBook Pro (M5 Max)&quot;,&quot;chip&quot;:&quot;M5 Max&quot;,&quot;tiers&quot;:[36],&quot;sto&quot;:2048,&quot;disp&quot;:4,&quot;w&quot;:2.15,&quot;sd&quot;:true}},&quot;order&quot;:[&quot;neo&quot;,&quot;air13&quot;,&quot;air15&quot;,&quot;pro14_m5&quot;,&quot;pro14_m5pro&quot;,&quot;pro16_m5pro&quot;,&quot;pro14_m5max&quot;,&quot;pro16_m5max&quot;],&quot;req&quot;:{&quot;write&quot;:{&quot;mem&quot;:null,&quot;rec&quot;:null,&quot;disk&quot;:null,&quot;diskRec&quot;:null},&quot;lrc&quot;:{&quot;mem&quot;:8,&quot;rec&quot;:16,&quot;disk&quot;:8,&quot;diskRec&quot;:null},&quot;ps&quot;:{&quot;mem&quot;:8,&quot;rec&quot;:16,&quot;disk&quot;:10,&quot;diskRec&quot;:100},&quot;ai&quot;:{&quot;mem&quot;:16,&quot;rec&quot;:16,&quot;disk&quot;:8,&quot;diskRec&quot;:null}},&quot;tightRatio&quot;:0.1,&quot;works&quot;:[&quot;write&quot;,&quot;lrc&quot;,&quot;ps&quot;,&quot;ai&quot;],&quot;mons&quot;:[0,1,2,3,4],&quot;weights&quot;:{&quot;daily&quot;:1.3,&quot;some&quot;:1.7,&quot;any&quot;:99},&quot;neoPorts&quot;:{&quot;usb3&quot;:1,&quot;usb2&quot;:1},&quot;products&quot;:{&quot;air13_16_512&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;mem&quot;:16,&quot;sto&quot;:512,&quot;disp&quot;:2,&quot;w&quot;:1.23},&quot;air13_16_1tb&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;mem&quot;:16,&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.23},&quot;air13_24_1tb&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;mem&quot;:24,&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.23},&quot;air15_16_512&quot;:{&quot;fam&quot;:&quot;air15&quot;,&quot;mem&quot;:16,&quot;sto&quot;:512,&quot;disp&quot;:2,&quot;w&quot;:1.51},&quot;air15_16_1tb&quot;:{&quot;fam&quot;:&quot;air15&quot;,&quot;mem&quot;:16,&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.51},&quot;air15_24_1tb&quot;:{&quot;fam&quot;:&quot;air15&quot;,&quot;mem&quot;:24,&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.51},&quot;pro14_m5_16_1tb&quot;:{&quot;fam&quot;:&quot;pro14_m5&quot;,&quot;mem&quot;:16,&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.55},&quot;pro14_m5_24_1tb&quot;:{&quot;fam&quot;:&quot;pro14_m5&quot;,&quot;mem&quot;:24,&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.55},&quot;pro14_m5pro_24_1tb&quot;:{&quot;fam&quot;:&quot;pro14_m5pro&quot;,&quot;mem&quot;:24,&quot;sto&quot;:1024,&quot;disp&quot;:3,&quot;w&quot;:1.6},&quot;neo_8_256&quot;:{&quot;fam&quot;:&quot;neo&quot;,&quot;mem&quot;:8,&quot;sto&quot;:256,&quot;disp&quot;:1,&quot;w&quot;:1.23},&quot;neo_8_512&quot;:{&quot;fam&quot;:&quot;neo&quot;,&quot;mem&quot;:8,&quot;sto&quot;:512,&quot;disp&quot;:1,&quot;w&quot;:1.23}},&quot;slotIds&quot;:{&quot;neo_min&quot;:[&quot;neo_8_256&quot;,&quot;neo_8_512&quot;],&quot;air13_16&quot;:[&quot;air13_16_512&quot;,&quot;air13_16_1tb&quot;,&quot;air13_24_1tb&quot;],&quot;air15_16&quot;:[&quot;air15_16_512&quot;,&quot;air15_16_1tb&quot;,&quot;air15_24_1tb&quot;],&quot;pro_3disp&quot;:[&quot;pro14_m5pro_24_1tb&quot;]},&quot;buy&quot;:{&quot;air13_16_512&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Air 13インチ M5（16GB / 512GB）&quot;,&quot;en&quot;:&quot;13-inch MacBook Air (M5), 16GB/512GB&quot;,&quot;jp&quot;:&quot;B0GR1T11D6&quot;,&quot;us&quot;:&quot;B0GR1J6T45&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GR1T11D6&quot;,&quot;asinUS&quot;:&quot;B0GR1J6T45&quot;,&quot;title&quot;:&quot;MacBook Air 13インチ M5（16GB / 512GB）&quot;,&quot;searchQuery&quot;:&quot;MacBook Air 13インチ M5（16GB / 512GB）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71eX66ytH+L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995656787&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR1T11D6&quot;,&quot;asinUS&quot;:&quot;B0GR1J6T45&quot;,&quot;title&quot;:&quot;13-inch MacBook Air (M5), 16GB/512GB&quot;,&quot;searchQuery&quot;:&quot;13-inch MacBook Air (M5), 16GB/512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/714mf1PUL4L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:2},&quot;air13_24_1tb&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Air 13インチ M5（24GB / 1TB）&quot;,&quot;en&quot;:&quot;13-inch MacBook Air (M5), 24GB/1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GR11MSHY&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR11MSHY&quot;,&quot;asinUS&quot;:&quot;B0GR11MSHY&quot;,&quot;title&quot;:&quot;13-inch MacBook Air (M5), 24GB/1TB&quot;,&quot;searchQuery&quot;:&quot;13-inch MacBook Air (M5), 24GB/1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71igu9e9hFL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:4},&quot;air15_16_512&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Air 15インチ M5（16GB / 512GB）&quot;,&quot;en&quot;:&quot;15-inch MacBook Air (M5), 16GB/512GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GR1GC1D6&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR1GC1D6&quot;,&quot;asinUS&quot;:&quot;B0GR1GC1D6&quot;,&quot;title&quot;:&quot;15-inch MacBook Air (M5), 16GB/512GB&quot;,&quot;searchQuery&quot;:&quot;15-inch MacBook Air (M5), 16GB/512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71f3rEW30BL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:3},&quot;air15_16_1tb&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Air 15インチ M5（16GB / 1TB）&quot;,&quot;en&quot;:&quot;15-inch MacBook Air (M5), 16GB/1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GR1BJ72L&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR1BJ72L&quot;,&quot;asinUS&quot;:&quot;B0GR1BJ72L&quot;,&quot;title&quot;:&quot;15-inch MacBook Air (M5), 16GB/1TB&quot;,&quot;searchQuery&quot;:&quot;15-inch MacBook Air (M5), 16GB/1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71N5EbSaQqL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:5},&quot;air15_24_1tb&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Air 15インチ M5（24GB / 1TB）&quot;,&quot;en&quot;:&quot;15-inch MacBook Air (M5), 24GB/1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GR1RWSMF&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR1RWSMF&quot;,&quot;asinUS&quot;:&quot;B0GR1RWSMF&quot;,&quot;title&quot;:&quot;15-inch MacBook Air (M5), 24GB/1TB&quot;,&quot;searchQuery&quot;:&quot;15-inch MacBook Air (M5), 24GB/1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71N5EbSaQqL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:6},&quot;pro14_m5_16_1tb&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Pro 14インチ M5（16GB / 1TB）&quot;,&quot;en&quot;:&quot;14-inch MacBook Pro (M5), 16GB/1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD623D1&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD623D1&quot;,&quot;asinUS&quot;:&quot;B0FWD623D1&quot;,&quot;title&quot;:&quot;14-inch MacBook Pro (M5), 16GB/1TB&quot;,&quot;searchQuery&quot;:&quot;14-inch MacBook Pro (M5), 16GB/1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/6112T6g2P-L._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:7},&quot;pro14_m5pro_24_1tb&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Pro 14インチ M5 Pro（24GB / 1TB）&quot;,&quot;en&quot;:&quot;14-inch MacBook Pro (M5 Pro), 24GB/1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GR1JK9W3&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR1JK9W3&quot;,&quot;asinUS&quot;:&quot;B0GR1JK9W3&quot;,&quot;title&quot;:&quot;14-inch MacBook Pro (M5 Pro), 24GB/1TB&quot;,&quot;searchQuery&quot;:&quot;14-inch MacBook Pro (M5 Pro), 24GB/1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61yFkQA+HFL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:8},&quot;neo_8_256&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Neo（A18 Pro・8GB / 256GB）&quot;,&quot;en&quot;:&quot;MacBook Neo, 8GB/256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GR6KJ72L&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR6KJ72L&quot;,&quot;asinUS&quot;:&quot;B0GR6KJ72L&quot;,&quot;title&quot;:&quot;MacBook Neo, 8GB/256GB&quot;,&quot;searchQuery&quot;:&quot;MacBook Neo, 8GB/256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61MxIxzYvUL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;neo_8_512&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Neo（A18 Pro・8GB / 512GB・Touch ID）&quot;,&quot;en&quot;:&quot;MacBook Neo, 8GB/512GB with Touch ID&quot;,&quot;jp&quot;:&quot;B0GR6M7Z8Y&quot;,&quot;us&quot;:&quot;B0GR6JMY9W&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GR6M7Z8Y&quot;,&quot;asinUS&quot;:&quot;B0GR6JMY9W&quot;,&quot;title&quot;:&quot;MacBook Neo（A18 Pro・8GB / 512GB・Touch ID）&quot;,&quot;searchQuery&quot;:&quot;MacBook Neo（A18 Pro・8GB / 512GB・Touch ID）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61S0IGbMu1L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995664669&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR6M7Z8Y&quot;,&quot;asinUS&quot;:&quot;B0GR6JMY9W&quot;,&quot;title&quot;:&quot;MacBook Neo, 8GB/512GB with Touch ID&quot;,&quot;searchQuery&quot;:&quot;MacBook Neo, 8GB/512GB with Touch ID&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/619PNoEsnSL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:0,&quot;rank_us&quot;:1}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;laptop&quot;:&quot;neo_8_512&quot;},&quot;en&quot;:{&quot;laptop&quot;:&quot;neo_8_256&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;macbook-blog-config-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 値（Adobe の公式のメモリ・空き容量、Apple の構成の段・外部ディスプレイの台数・重さ）は calc.mjs が data.json の facts から M に入れて渡す。
//
// 必要なメモリ = 使い方の公式の最小（Lightroom Classic・Photoshop は 8GB、Lightroom Classic の AI 機能は 16GB の統合メモリ）。
//   文章を書くだけは公式の数字が無いので null（判定しない）。
// 推奨 = Adobe の推奨（16GB 以上）。判定（最小構成）には使わず、「推奨を満たすいちばん軽い機種」を別に出すだけ。
// 最小構成 = 必要なメモリ以上で、その機種のメモリの段のうちいちばん小さい段（切り上げ）。
// 余裕 = 段 − 必要なメモリ。必要なメモリに対して tightRatio 未満なら「ぎりぎり」。

// 段でしか選べない値を、必要な値以上のいちばん小さい段に切り上げる。足りる段が無ければ null
function snapTier(x, tiers) {
  const t = tiers.find((s) =&gt; s &gt;= x - 1e-9);
  return t == null ? null : t;
}

// 1機種が条件を満たすか。req = { mem: GB | null }、mon = 外部ディスプレイの台数、wmax = 重さの上限（kg）
function fitModel(m, req, mon, wmax, tightRatio) {
  const dispOk = m.disp &gt;= mon;
  const weightOk = m.w &lt;= wmax + 1e-9;
  const judged = req.mem != null;
  const mem = judged ? snapTier(req.mem, m.tiers) : m.tiers[0];
  const memOk = mem != null;
  const margin = judged &amp;&amp; memOk ? mem - req.mem : null;
  const tight = margin != null &amp;&amp; margin / req.mem &lt; tightRatio;
  return { ok: dispOk &amp;&amp; weightOk &amp;&amp; memOk, dispOk, weightOk, memOk, judged, mem, margin, tight };
}

// 条件を満たす機種（M.order の並び: Neo → Air 13 → Air 15 → Pro）。first = 並びで最初の機種（記事の「最小構成」）
// basis = &quot;min&quot;（公式の最小で判定）か &quot;rec&quot;（公式の推奨で判定。文章だけは推奨も無いので null）
function minimumConfig(M, work, mon, wmax, basis = &quot;min&quot;) {
  const w = M.req[work];
  const req = { mem: basis === &quot;rec&quot; ? w.rec : w.mem };
  const all = M.order.map((id) =&gt; ({ id, ...fitModel(M.models[id], req, mon, wmax, M.tightRatio) }));
  const ok = all.filter((r) =&gt; r.ok);
  return { req, work: w, all, ok, first: ok[0] || null };
}

// 商品（products.json の構成）が条件を満たすか。p = { fam, mem, disp, w }
function productFits(p, req, mon, wmax) {
  return p.disp &gt;= mon &amp;&amp; p.w &lt;= wmax + 1e-9 &amp;&amp; (req.mem == null || p.mem &gt;= req.mem - 1e-9);
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（使い方・持ち運び・外部ディスプレイの台数）。機種は選ばせず、条件を満たすいちばん軽い構成と、買える商品を1つ出す。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    work: &quot;使い方&quot;, w: &quot;持ち運び&quot;, mon: &quot;外部ディスプレイ&quot;,
    write: &quot;文章だけ&quot;, lrc: &quot;＋Lightroom Classic&quot;, ps: &quot;＋Photoshop&quot;, ai: &quot;＋AI機能（Lightroom Classic）&quot;,
    monL: (n) =&gt; (n === 0 ? &quot;なし&quot; : `${n}台`),
    daily: &quot;毎日（1.3kg以下）&quot;, some: &quot;ときどき（1.7kg以下）&quot;, any: &quot;気にしない&quot;,
    wNote: &quot;持ち運びの重さの上限（1.3kg・1.7kg）は、この記事で決めた目安です&quot;,
    need: (x, what) =&gt; `必要なメモリ: ${x}GB（${what}）`,
    what: { lrc: &quot;Lightroom Classic の公式の最小&quot;, ps: &quot;Photoshop の公式の最小&quot;, ai: &quot;Lightroom Classic の AI 機能に Adobe が挙げる統合メモリ&quot; },
    noWrite: &quot;文章だけはメモリの公式の数字が無いので、メモリは判定していません。下の構成は、外部ディスプレイの台数と重さだけで選んだものです&quot;,
    rec: (x) =&gt; `Adobe の推奨は ${x}GB 以上とされています（この判定は最小で行っています）`,
    recFirst: (name, mem, tight) =&gt; `推奨を満たすいちばん軽い構成: ${name}・${mem}GB${tight ? &quot;（推奨の下限ちょうどで、ぎりぎり）&quot; : &quot;&quot;}`,
    recNone: &quot;この条件では、推奨を満たす機種はありません&quot;,
    psAi: &quot;Photoshop の AI 機能に要るメモリは公式の数字が無く、判定していません&quot;,
    multi: &quot;使い方は1つだけ選びます。公式の数字は、それぞれのアプリを単独で使うときのものです。Lightroom Classic と Photoshop を同時に使う場合は公式の数字が無く、判定していません&quot;,
    diskNeed: (a, b) =&gt; `必要な空き容量: ${a}GB${b ? `・推奨 ${b}GB` : &quot;&quot;}（Adobe の公式。写真やカタログの分は含みません）`,
    diskOk: (sto) =&gt; `ストレージ ${sto} はこの空き容量より大きい構成です。macOS や写真で使う分は計算していません`,
    cfg: (name, mem, sto) =&gt; `いちばん軽い構成: ${name}・メモリ ${mem}GB・ストレージ ${sto}`,
    weight: (kg) =&gt; `重さ: ${kg}kg（Apple の仕様ページ）`,
    tight: &quot;メモリは公式の数字ちょうどで、余裕がありません（ぎりぎり）&quot;,
    margin: (x) =&gt; `メモリの余裕: ${x}GB`,
    disp: (name, n) =&gt; `${name}の外部ディスプレイは最大${n}台です`,
    neoCond: &quot;MacBook Neo（8GB）は Lightroom Classic と Photoshop の最小 8GB ちょうどで、推奨の 16GB 以上と AI 機能の 16GB は満たしません&quot;,
    neoPort: &quot;Neo で映像を出せるのは USB 3 のポート1つだけで、外部ディスプレイをつなぐと残りは USB 2 のポート1つになります&quot;,
    also: (list) =&gt; `ほかに条件を満たす機種: ${list}`,
    none: &quot;この条件をすべて満たす機種はありません&quot;,
    noneW: (n) =&gt; `外部ディスプレイ${n}台に対応する機種は、この重さの範囲にありません。持ち運びを「気にしない」にすると出ます`,
    vOk: (name) =&gt; `○ ${name}で公式の最小を満たします`, vTight: (name) =&gt; `△ ${name}でぎりぎり満たします`, vWrite: (name) =&gt; `△ ${name}（メモリは判定なし）`, vNg: &quot;✕ 条件に合う機種がありません&quot;,
    memL: (x) =&gt; `構成 ${x}GB`, needL: (x) =&gt; `必要 ${x}GB`,
    note: &quot;結果は Apple の仕様ページと、Adobe の Lightroom Classic・Photoshop の公式の要件（2026年10月の確認）から出しています。速さや快適さは実機で試しておらず、判定していません。メモリは Apple が用意している段に切り上げています。&quot;,
  },
  en: {
    work: &quot;Use&quot;, w: &quot;Carrying&quot;, mon: &quot;External displays&quot;,
    write: &quot;Writing only&quot;, lrc: &quot;+ Lightroom Classic&quot;, ps: &quot;+ Photoshop&quot;, ai: &quot;+ AI features (Lightroom Classic)&quot;,
    monL: (n) =&gt; (n === 0 ? &quot;None&quot; : String(n)),
    daily: &quot;Daily (1.3 kg or less)&quot;, some: &quot;Sometimes (1.7 kg or less)&quot;, any: &quot;Doesn&apos;t matter&quot;,
    wNote: &quot;The weight limits (1.3 kg and 1.7 kg) are this article&apos;s own choices&quot;,
    need: (x, what) =&gt; `Memory needed: ${x} GB (${what})`,
    what: { lrc: &quot;Lightroom Classic&apos;s official minimum&quot;, ps: &quot;Photoshop&apos;s official minimum&quot;, ai: &quot;unified memory Adobe lists for Lightroom Classic&apos;s AI features&quot; },
    noWrite: &quot;Writing alone has no official memory figure, so memory isn&apos;t judged. The configuration below is chosen only by display count and weight&quot;,
    rec: (x) =&gt; `Adobe recommends ${x} GB or more (this check uses the minimum)`,
    recFirst: (name, mem, tight) =&gt; `Lightest configuration meeting the recommendation: ${name}, ${mem} GB${tight ? &quot; (exactly the low end, borderline)&quot; : &quot;&quot;}`,
    recNone: &quot;No model meets the recommendation under these conditions&quot;,
    psAi: &quot;There&apos;s no official memory figure for Photoshop&apos;s AI features, so they aren&apos;t judged&quot;,
    multi: &quot;Pick one use. Each official figure is for that app on its own; running Lightroom Classic and Photoshop together has no official figure and isn&apos;t judged&quot;,
    diskNeed: (a, b) =&gt; `Free space needed: ${a} GB${b ? `, ${b} GB recommended` : &quot;&quot;} (Adobe&apos;s official figure; photos and catalogs not included)`,
    diskOk: (sto) =&gt; `The ${sto} drive is larger than that. Space for macOS and your photos isn&apos;t calculated`,
    cfg: (name, mem, sto) =&gt; `Lightest configuration: ${name}, ${mem} GB memory, ${sto} storage`,
    weight: (kg) =&gt; `Weight: ${kg} kg (Apple&apos;s spec page)`,
    tight: &quot;Memory is exactly the official figure with nothing to spare (borderline)&quot;,
    margin: (x) =&gt; `Memory headroom: ${x} GB`,
    disp: (name, n) =&gt; `The ${name} drives up to ${n} external display${n === 1 ? &quot;&quot; : &quot;s&quot;}`,
    neoCond: &quot;The MacBook Neo (8 GB) is exactly at the 8 GB minimum for Lightroom Classic and Photoshop, and doesn&apos;t meet the recommended 16 GB or more or the 16 GB for AI features&quot;,
    neoPort: &quot;The Neo outputs video only from its single USB 3 port, so with a display connected you&apos;re left with one USB 2 port&quot;,
    also: (list) =&gt; `Other models that fit: ${list}`,
    none: &quot;No model meets all of these conditions&quot;,
    noneW: (n) =&gt; `No model in this weight range supports ${n} external displays. Set carrying to &quot;Doesn&apos;t matter&quot; to see one`,
    vOk: (name) =&gt; `✓ The ${name} meets the official minimum`, vTight: (name) =&gt; `△ The ${name} just meets it`, vWrite: (name) =&gt; `△ ${name} (memory not judged)`, vNg: &quot;✕ No model fits&quot;,
    memL: (x) =&gt; `Has ${x} GB`, needL: (x) =&gt; `Needs ${x} GB`,
    note: &quot;Results come from Apple&apos;s spec pages and Adobe&apos;s official requirements for Lightroom Classic and Photoshop (checked October 2026). Speed and comfort weren&apos;t tested on real hardware and aren&apos;t judged. Memory is rounded up to the tiers Apple offers.&quot;,
  },
};

const stoL_ = (gb, lang) =&gt; { const sp = lang === &quot;en&quot; ? &quot; &quot; : &quot;&quot;; return gb &gt;= 1024 ? `${gb / 1024}${sp}TB` : `${gb}${sp}GB`; };

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;work&quot;, type: &quot;select&quot;, label: t.work, value: &quot;lrc&quot;, options: M.works.map((x) =&gt; ({ value: x, label: t[x] })) },
    { name: &quot;w&quot;, type: &quot;select&quot;, label: t.w, value: &quot;daily&quot;, options: [&quot;daily&quot;, &quot;some&quot;, &quot;any&quot;].map((x) =&gt; ({ value: x, label: t[x], short: x === &quot;any&quot; ? (lang === &quot;ja&quot; ? &quot;不問&quot; : &quot;Any&quot;) : undefined })) }, // 札の短い値（2026-10-15 1画面に収める）
    { name: &quot;mon&quot;, type: &quot;select&quot;, label: t.mon, value: &quot;0&quot;, options: M.mons.map((n) =&gt; ({ value: String(n), label: t.monL(n) })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const mon = Number(v.mon);
  if (!M.works.includes(v.work) || !M.mons.includes(mon) || !(v.w in M.weights)) return { status: &quot;error&quot;, lines: [] };
  const wmax = M.weights[v.w];
  const r = minimumConfig(M, v.work, mon, wmax);
  const W = M.req[v.work];
  const lines = [];
  if (r.req.mem != null) lines.push(t.need(r.req.mem, t.what[v.work]));
  else lines.push(t.noWrite);
  if (W.disk != null) lines.push(t.diskNeed(W.disk, W.diskRec));
  if (v.w !== &quot;any&quot;) lines.push(t.wNote);
  if (!r.first) {
    const anyW = minimumConfig(M, v.work, mon, Infinity).first;
    lines.push(anyW ? t.noneW(mon) : t.none);
    return { status: &quot;ng&quot;, verdict: t.vNg, lines, picks: [] };
  }
  const f = r.first, m = M.models[f.id], name = m[lang];
  lines.push(t.cfg(name, f.mem, stoL_(m.sto, lang)));
  lines.push(t.weight(m.w.toFixed(2)));
  if (f.tight) lines.push(t.tight);
  else if (f.margin != null) lines.push(t.margin(f.margin));
  if (W.disk != null) lines.push(t.diskOk(stoL_(m.sto, lang)));
  if (W.rec != null) {
    lines.push(t.rec(W.rec));
    const rr = minimumConfig(M, v.work, mon, wmax, &quot;rec&quot;).first;
    if (rr &amp;&amp; rr.id !== f.id) lines.push(t.recFirst(M.models[rr.id][lang], rr.mem, rr.tight));
    else if (!rr) lines.push(t.recNone);
  }
  lines.push(t.disp(name, m.disp));
  if (f.id === &quot;neo&quot;) { if (v.work === &quot;lrc&quot; || v.work === &quot;ps&quot;) lines.push(t.neoCond); if (mon &gt;= 1) lines.push(t.neoPort); }
  if (v.work === &quot;ps&quot;) lines.push(t.psAi);
  if (v.work === &quot;lrc&quot; || v.work === &quot;ps&quot; || v.work === &quot;ai&quot;) lines.push(t.multi);
  const others = r.ok.slice(1).map((x) =&gt; M.models[x.id][lang]);
  if (others.length) lines.push(t.also(others.join(lang === &quot;ja&quot; ? &quot;、&quot; : &quot;, &quot;)));
  const status = !f.judged || f.tight ? &quot;cond&quot; : &quot;ok&quot;;
  const verdict = !f.judged ? t.vWrite(name) : f.tight ? t.vTight(name) : t.vOk(name);
  // 候補: 条件（メモリ・台数・重さ）を満たす商品。lib が安い順の1位を出す
  const picks = Object.keys(M.products).filter((id) =&gt; productFits(M.products[id], r.req, mon, wmax));
  let meter;
  if (f.judged) {
    const max = Math.max(f.mem, r.req.mem) * 1.5;
    meter = { min: 0, max, value: f.mem, ok: [r.req.mem, max], unit: &quot;GB&quot;, valueLabel: t.memL(f.mem), okLabel: t.needL(r.req.mem) };
  }
  // 型 D の仕様書の行（minimumConfig の結果と、Apple の構成の値だけ）。機種は判定の文に出るので行にしない
  const ja = lang === &quot;ja&quot;;
  const rr = W.rec != null ? minimumConfig(M, v.work, mon, wmax, &quot;rec&quot;).first : null;
  const sheet = [
    f.judged
      ? { key: ja ? &quot;メモリ&quot; : &quot;Memory&quot;, value: ja ? `${f.mem}GB` : `${f.mem} GB`, reason: ja ? `${t.what[v.work]} ${r.req.mem}GB → Apple の段 ${f.mem}GB` : `${t.what[v.work]}: ${r.req.mem} GB → Apple tier ${f.mem} GB`, src: &quot;Adobe&quot;, tight: f.tight }
      : { key: ja ? &quot;メモリ&quot; : &quot;Memory&quot;, value: ja ? `${f.mem}GB` : `${f.mem} GB`, reason: ja ? &quot;書くだけは公式の数字が無いので判定なし&quot; : &quot;Not judged (no official figure for writing only)&quot;, src: &quot;Apple&quot; },
  ];
  if (W.rec != null) sheet.push({ key: ja ? &quot;推奨&quot; : &quot;Recommended&quot;, value: ja ? `メモリ ${W.rec}GB` : `${W.rec} GB memory`, reason: rr ? (rr.id !== f.id ? (ja ? `満たす最初の機種: ${M.models[rr.id][lang]}` : `First model: ${M.models[rr.id][lang]}`) : (ja ? &quot;この機種で満たせる&quot; : &quot;This model meets it&quot;)) : (ja ? &quot;この条件では届く機種がない&quot; : &quot;No model reaches it under these conditions&quot;), src: &quot;Adobe&quot;, tight: !!(rr &amp;&amp; rr.tight) });
  sheet.push({ key: ja ? &quot;ストレージ&quot; : &quot;Storage&quot;, value: stoL_(m.sto, lang), reason: W.disk != null ? (ja ? `公式の空き容量 ${W.disk}GB を満たす` : `Meets the official ${W.disk} GB free space`) : (ja ? &quot;この機種のいちばん小さい構成&quot; : &quot;This model&apos;s smallest configuration&quot;), src: W.disk != null ? &quot;Adobe&quot; : &quot;Apple&quot; });
  sheet.push({ key: ja ? &quot;重さ&quot; : &quot;Weight&quot;, value: `${m.w.toFixed(2)}kg`, reason: v.w !== &quot;any&quot; ? (ja ? `持ち運びの上限 ${wmax}kg` : `Carry limit ${wmax} kg`) : (ja ? &quot;持ち運びは問わない&quot; : &quot;Carrying not considered&quot;), src: &quot;Apple&quot; });
  // スマホの仕様書は2行まで（2026-10-15 1画面に収める。残りは「ほか n 行」）
  return { status, verdict, lines, picks, ...(meter ? { meter } : {}), sheet, sheetPhone: 2 };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（使い方 × 持ち運び × 外部ディスプレイの台数）
function presets() {
  const P = (work, w, mon) =&gt; ({ work, w, mon: String(mon) });
  return [
    P(&quot;write&quot;, &quot;daily&quot;, 0), P(&quot;write&quot;, &quot;daily&quot;, 1), P(&quot;write&quot;, &quot;any&quot;, 3),
    P(&quot;lrc&quot;, &quot;daily&quot;, 0), P(&quot;lrc&quot;, &quot;daily&quot;, 2), P(&quot;lrc&quot;, &quot;any&quot;, 3),
    P(&quot;ps&quot;, &quot;daily&quot;, 1), P(&quot;ps&quot;, &quot;some&quot;, 2),
    P(&quot;ai&quot;, &quot;daily&quot;, 0), P(&quot;ai&quot;, &quot;daily&quot;, 2), P(&quot;ai&quot;, &quot;daily&quot;, 3), P(&quot;ai&quot;, &quot;some&quot;, 3), P(&quot;ai&quot;, &quot;any&quot;, 4),
    P(&quot;lrc&quot;, &quot;some&quot;, 4),
  ];
}

// カードに出す仕様（その商品の構成のうち、この計算で使った値。絞り込みの条件は出さない）
function pickSpecs(id, v, M, lang) {
  const p = M.products[id];
  if (!p) return [];
  const ja = lang === &quot;ja&quot;;
  return [
    ja ? `メモリ ${p.mem}GB・ストレージ ${stoL_(p.sto, lang)}` : `${p.mem} GB memory, ${stoL_(p.sto, lang)} storage`,
    ja ? `外部ディスプレイ 最大${p.disp}台` : `Up to ${p.disp} external display${p.disp === 1 ? &quot;&quot; : &quot;s&quot;}`,
    ja ? `重さ ${p.w.toFixed(2)}kg` : `${p.w.toFixed(2)} kg`,
  ];
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;sheet&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;is-the-macbook-neo-enough&quot;&gt;Is the MacBook Neo enough?&lt;/h2&gt;
&lt;p&gt;The MacBook Neo (8 GB) is exactly at the 8 GB minimum for Lightroom Classic and Photoshop, so it’s borderline. It doesn’t meet the recommendation (16 GB or more) or the 16 GB listed for the AI features, and it drives only 1 display.&lt;/p&gt;
&lt;p&gt;Per Apple’s spec pages, the 256 GB Neo has no Touch ID, while the 512 GB model has a Magic Keyboard with Touch ID.&lt;/p&gt;
&lt;h2 id=&quot;how-much-ram-and-storage-to-pick&quot;&gt;How much RAM and storage to pick&lt;/h2&gt;
&lt;p&gt;Lightroom Classic and Photoshop for Mac need at least 8 GB of RAM, with 16 GB or more recommended. For Lightroom Classic’s AI features, Adobe lists 16 GB of unified memory. On these Macs the RAM and the GPU share that one unified memory, so the figure is the same RAM, not extra.&lt;/p&gt;
&lt;p&gt;Lightroom Classic needs 8 GB of free space and Photoshop 10 GB, with 100 GB recommended for Photoshop. Even the smallest current drive, the Neo’s 256 GB, is above those figures. Space taken by macOS and your photos isn’t calculated.&lt;/p&gt;
&lt;h2 id=&quot;keyboard-and-sd-card&quot;&gt;Keyboard and SD card&lt;/h2&gt;
&lt;p&gt;Per Apple’s US spec pages, the keyboard is ANSI with 78 keys, or ISO with 79, and both have 12 full-height function keys. Retail listings can differ, so check the layout on the one you buy.&lt;/p&gt;
&lt;p&gt;Per Apple’s spec pages, an SDXC card slot appears on the MacBook Pro spec page, but not on the Air or Neo spec pages.&lt;/p&gt;
&lt;h2 id=&quot;weight-and-screen-size&quot;&gt;Weight and screen size&lt;/h2&gt;
&lt;p&gt;Taking 1.3 kg as the limit for daily carry, only the Neo and the 13-inch Air fit, both at 1.23 kg. If you need 16 GB, that’s the 13-inch Air, and nothing this light drives three or more external displays.&lt;/p&gt;


















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Model&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Screen&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Resolution&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Weight&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;External displays&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Web browsing&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Ports&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Neo&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13.0 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2,408 × 1,506&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1.23 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1 display&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;11 hours&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1 × USB 3, 1 × USB 2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Air 13&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13.6 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2,560 × 1,664&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1.23 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;15 hours&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 × Thunderbolt 4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Air 15&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;15.3 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2,880 × 1,864&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1.51 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;15 hours&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 × Thunderbolt 4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Pro 14 M5 Pro&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14.2 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3,024 × 1,964&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1.60 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14 hours&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Thunderbolt, HDMI&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Web browsing is Apple’s maximum time from its own tests. The Neo’s USB 3 port can output video.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-condition&quot;&gt;Picks by condition&lt;/h2&gt;
&lt;p&gt;One pick per condition, from Amazon.com:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sold new by Amazon.com, with a configuration that matches Apple’s spec&lt;/li&gt;
&lt;li&gt;At least 100 ratings and 4 stars or more&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Prices vary, so check them on the retailer’s page.&lt;/p&gt;
&lt;h3 id=&quot;writing-only-or-photo-editing-with-the-8-gb-minimum-no-lightroom-classic-ai-features-up-to-1-display&quot;&gt;Writing only, or photo editing with the 8 GB minimum, no Lightroom Classic AI features, up to 1 display&lt;/h3&gt;
&lt;p&gt;It’s exactly at the 8 GB minimum, so it’s borderline. In this calculation, it falls short of Adobe’s recommended 16 GB or more.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MacBook Neo, 8GB/256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61MxIxzYvUL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MacBook Neo, 8GB/256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR6KJ72L?q=MacBook+Neo%2C+8GB%2F256GB&amp;amp;us=B0GR6KJ72L&amp;amp;l=en&quot; aria-label=&quot;View MacBook Neo, 8GB/256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Other colors are separate listings. Whether ratings are pooled was not checked.&lt;/p&gt;
&lt;h3 id=&quot;recommended-16-gb-or-more-lightroom-classic-ai-features-up-to-2-displays-13-kg-or-less&quot;&gt;Recommended 16 GB or more, Lightroom Classic AI features, up to 2 displays, 1.3 kg or less&lt;/h3&gt;
&lt;p&gt;It’s exactly at the 16 GB for the AI features, so it’s borderline.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch MacBook Air (M5), 16GB/512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/714mf1PUL4L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch MacBook Air (M5), 16GB/512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1T11D6?q=13-inch+MacBook+Air+%28M5%29%2C+16GB%2F512GB&amp;amp;us=B0GR1J6T45&amp;amp;l=en&quot; aria-label=&quot;View 13-inch MacBook Air (M5), 16GB/512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;153-in-screen-lightroom-classic-ai-features-up-to-2-displays&quot;&gt;15.3 in screen, Lightroom Classic AI features, up to 2 displays&lt;/h3&gt;
&lt;p&gt;Also exactly at the 16 GB for the AI features, so borderline.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 15-inch MacBook Air (M5), 16GB/512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71f3rEW30BL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;15-inch MacBook Air (M5), 16GB/512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1GC1D6?q=15-inch+MacBook+Air+%28M5%29%2C+16GB%2F512GB&amp;amp;us=B0GR1GC1D6&amp;amp;l=en&quot; aria-label=&quot;View 15-inch MacBook Air (M5), 16GB/512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;3-displays-external-displays-and-lightroom-classics-ai-features&quot;&gt;3 displays external displays and Lightroom Classic’s AI features&lt;/h3&gt;
&lt;p&gt;Its standard 24 GB leaves 8 GB of room over the 16 GB for the AI features.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 14-inch MacBook Pro (M5 Pro), 24GB/1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61yFkQA+HFL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;14-inch MacBook Pro (M5 Pro), 24GB/1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1JK9W3?q=14-inch+MacBook+Pro+%28M5+Pro%29%2C+24GB%2F1TB&amp;amp;us=B0GR1JK9W3&amp;amp;l=en&quot; aria-label=&quot;View 14-inch MacBook Pro (M5 Pro), 24GB/1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;is-the-macbook-neo-enough-for-just-writing-a-blog&quot;&gt;Is the MacBook Neo enough for just writing a blog?&lt;/h3&gt;
&lt;p&gt;For the October 2026 lineup, writing alone has no official memory figure, so this article doesn’t judge memory for it. Any current model is a candidate, and the choice comes down to external displays and weight.&lt;/p&gt;
&lt;p&gt;Models that fit are in the picks section.&lt;/p&gt;
&lt;h3 id=&quot;can-the-macbook-neo-handle-blog-photo-editing&quot;&gt;Can the MacBook Neo handle blog photo editing?&lt;/h3&gt;
&lt;p&gt;For the October 2026 lineup, the smallest-memory configuration, 8 GB, is exactly at the 8 GB minimum for Lightroom Classic and Photoshop, so it’s borderline. It doesn’t meet the recommendation (16 GB or more) or the 16 GB listed for the AI features, and it drives only 1 display.&lt;/p&gt;
&lt;p&gt;Photoshop’s AI features aren’t judged. Matching models are listed under Picks by condition.&lt;/p&gt;
&lt;h3 id=&quot;how-much-ram-does-a-macbook-need-for-blogging-and-photo-editing&quot;&gt;How much RAM does a MacBook need for blogging and photo editing?&lt;/h3&gt;
&lt;p&gt;Lightroom Classic and Photoshop for Mac need at least 8 GB of RAM, with 16 GB or more recommended. For Lightroom Classic’s AI features, Adobe lists 16 GB of unified memory.&lt;/p&gt;
&lt;p&gt;On these Macs the RAM and the GPU share that one unified memory, so the figure is the same RAM, not extra. Among Apple’s current MacBooks as of October 2026, the lightest one that meets the recommended 16 GB or more weighs 1.23 kg.&lt;/p&gt;
&lt;p&gt;It has the M5 chip and the standard 16 GB. That’s exactly the low end of the recommendation, so it’s borderline.&lt;/p&gt;
&lt;p&gt;This article’s minimum configurations use the minimum, not the recommendation.&lt;/p&gt;
&lt;h3 id=&quot;what-keyboard-layout-and-sd-card-slot-do-macbooks-have&quot;&gt;What keyboard layout and SD card slot do MacBooks have?&lt;/h3&gt;
&lt;p&gt;Per Apple’s US spec pages, the keyboard is ANSI with 78 keys, or ISO with 79, and both have 12 full-height function keys. Retail listings can differ, so check the layout on the one you buy.&lt;/p&gt;
&lt;p&gt;On current MacBooks, an SDXC card slot appears on Apple’s spec pages for the 14.2-inch and 16.2-inch models, but not on the 13-inch or 15-inch models.&lt;/p&gt;
&lt;h3 id=&quot;how-many-external-displays-can-a-macbook-run&quot;&gt;How many external displays can a MacBook run?&lt;/h3&gt;
&lt;p&gt;Per Apple’s spec pages, on current MacBooks the display count depends on the chip. The M5 drives up to 2 displays, the M5 Pro 3 displays and the M5 Max 4 displays.&lt;/p&gt;
&lt;p&gt;The 8 GB configuration drives 1 display.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;:&lt;/p&gt;&lt;p&gt;Sources: Apple specs for &lt;a href=&quot;https://www.apple.com/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Neo&lt;/a&gt;, &lt;a href=&quot;https://www.apple.com/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Air&lt;/a&gt; and &lt;a href=&quot;https://www.apple.com/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Pro&lt;/a&gt;, and &lt;a href=&quot;https://www.apple.com/mac/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Compare Mac&lt;/a&gt; ／ &lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Adobe Lightroom Classic system requirements&lt;/a&gt; and &lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Adobe Photoshop system requirements&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Memory needed = Adobe’s official figure for the chosen use (Lightroom Classic for Mac minimum 8 GB, Photoshop minimum 8 GB, and the 16 GB of unified memory Adobe lists in the recommended column for Lightroom Classic’s AI features such as Denoise). Writing alone has no official figure, so memory isn’t judged for it. Photoshop’s macOS table gives no memory figure for AI features (No memory figure for AI features in the macOS table (RAM: 8 GB minimum, 16 GB or more recommended)). The official recommendations (Lightroom Classic 16 GB, Photoshop 16 GB) aren’t used for the minimum configuration; the lightest configuration that meets them is shown separately.&lt;/li&gt;
&lt;li&gt;Minimum configuration = the smallest memory tier on Apple’s spec pages at or above the memory needed (Neo 8 GB; Air and 14-inch Pro with M5: 16, 24, 32 GB; M5 Pro: 24, 48, 64 GB; M5 Max from 36 GB). Models that meet the display count and weight limit are checked in the order Neo → 13-inch Air → 15-inch Air → Pro, and the first one is shown (the calculation confirms it’s also the lightest that fits). If the headroom (configured memory − memory needed) is under 10% of the memory needed, it’s marked borderline (a threshold set for this article).&lt;/li&gt;
&lt;li&gt;External display counts are Apple’s spec-page maximums (Neo 1, Air 2, Pro with M5 2, M5 Pro 3, M5 Max 4). Weights are from Apple’s spec pages (Neo 1.23 kg, 13-inch Air 1.23 kg, 15-inch Air 1.51 kg, 14-inch Pro with M5 1.55 kg). The carrying limits (1.3 kg daily, 1.7 kg sometimes) are this article’s own choices.&lt;/li&gt;
&lt;li&gt;Storage is only compared with Adobe’s official free-space figures (Lightroom Classic 8 GB, Photoshop 10 GB minimum and 100 GB recommended); space used by macOS, photos and catalogs isn’t calculated. SD card slots are compared from Apple’s spec pages in Japan and the US (Pro: SDXC card slot; Air: No SD card slot listed (MagSafe 3, two Thunderbolt 4, headphone jack); Neo: No SD card slot listed (one USB 3, one USB 2, headphone jack)).&lt;/li&gt;
&lt;li&gt;Speed and comfort weren’t tested on real hardware and aren’t judged. Picks are new listings sold by Amazon with 100+ ratings, 4+ stars, and a configuration matching Apple’s specs, cheapest including shipping.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;










































































































































































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch display size (diagonal)&lt;/td&gt;&lt;td&gt;13.6 in&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch native width&lt;/td&gt;&lt;td&gt;2,560 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch native height&lt;/td&gt;&lt;td&gt;1,664 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch weight&lt;/td&gt;&lt;td&gt;1.23 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch video streaming battery life (up to)&lt;/td&gt;&lt;td&gt;18 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch wireless web battery life (up to)&lt;/td&gt;&lt;td&gt;15 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air (M5) maximum external displays&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch base memory&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch base storage&lt;/td&gt;&lt;td&gt;512 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air (M5) maximum memory option&lt;/td&gt;&lt;td&gt;32 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air (M5) maximum storage option&lt;/td&gt;&lt;td&gt;4 TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch display size (diagonal)&lt;/td&gt;&lt;td&gt;15.3 in&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch native width&lt;/td&gt;&lt;td&gt;2,880 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch native height&lt;/td&gt;&lt;td&gt;1,864 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch weight&lt;/td&gt;&lt;td&gt;1.51 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch video streaming battery life (up to)&lt;/td&gt;&lt;td&gt;18 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch wireless web battery life (up to)&lt;/td&gt;&lt;td&gt;15 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch display size (diagonal)&lt;/td&gt;&lt;td&gt;14.2 in&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch native width&lt;/td&gt;&lt;td&gt;3,024 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch native height&lt;/td&gt;&lt;td&gt;1,964 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5) weight&lt;/td&gt;&lt;td&gt;1.55 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5 Pro) weight&lt;/td&gt;&lt;td&gt;1.6 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5) video streaming battery life (up to)&lt;/td&gt;&lt;td&gt;24 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5) wireless web battery life (up to)&lt;/td&gt;&lt;td&gt;16 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5 Pro) video streaming battery life (up to)&lt;/td&gt;&lt;td&gt;22 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5 Pro) wireless web battery life (up to)&lt;/td&gt;&lt;td&gt;14 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5) maximum external displays&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5 Pro) maximum external displays&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5 Max) maximum external displays&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5) base memory&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5) base storage&lt;/td&gt;&lt;td&gt;1 TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5 Pro) base memory&lt;/td&gt;&lt;td&gt;24 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5 Pro) maximum memory option&lt;/td&gt;&lt;td&gt;64 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch display size (diagonal)&lt;/td&gt;&lt;td&gt;16.2 in&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch (M5 Pro) weight&lt;/td&gt;&lt;td&gt;2.14 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch (M5 Pro) wireless web battery life (up to)&lt;/td&gt;&lt;td&gt;17 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo display size (diagonal)&lt;/td&gt;&lt;td&gt;13.0 in&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo native width&lt;/td&gt;&lt;td&gt;2,408 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo native height&lt;/td&gt;&lt;td&gt;1,506 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo weight&lt;/td&gt;&lt;td&gt;1.23 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo video streaming battery life (up to)&lt;/td&gt;&lt;td&gt;16 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo wireless web battery life (up to)&lt;/td&gt;&lt;td&gt;11 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo memory (the only configuration listed on the spec page)&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo storage (model 1)&lt;/td&gt;&lt;td&gt;256 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo storage (model 2)&lt;/td&gt;&lt;td&gt;512 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo maximum external displays&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo USB 3 (USB-C) ports&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo USB 2 (USB-C) ports&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch native width&lt;/td&gt;&lt;td&gt;3,456 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch native height&lt;/td&gt;&lt;td&gt;2,234 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch (M5 Max) weight&lt;/td&gt;&lt;td&gt;2.15 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch (M5 Pro) maximum external displays&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch (M5 Max) maximum external displays&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch base memory (M5 Pro)&lt;/td&gt;&lt;td&gt;24 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch base storage (M5 Pro)&lt;/td&gt;&lt;td&gt;1 TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch (M5 Pro) video streaming battery life (up to)&lt;/td&gt;&lt;td&gt;24 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch base memory&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch base storage&lt;/td&gt;&lt;td&gt;512 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5 Max) weight&lt;/td&gt;&lt;td&gt;1.62 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5 Max) smallest memory option&lt;/td&gt;&lt;td&gt;36 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5 Max) base storage&lt;/td&gt;&lt;td&gt;2 TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5) maximum memory option&lt;/td&gt;&lt;td&gt;32 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5 Max) maximum memory option&lt;/td&gt;&lt;td&gt;128 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom Classic (Mac) minimum RAM&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom Classic (Mac) recommended RAM&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom Classic (Mac) unified memory for full GPU acceleration and AI features&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom Classic (Mac) free disk space for installation&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photoshop (Mac) minimum RAM&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photoshop (Mac) recommended RAM&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photoshop (Mac) free disk space for installation&lt;/td&gt;&lt;td&gt;10 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photoshop (Mac) recommended free disk space&lt;/td&gt;&lt;td&gt;100 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Keyboard layout of MacBooks on Apple Japan (default)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;US layout option on Apple Japan spec pages&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Keyboard of MacBooks on Apple US (ANSI / ISO)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt; Apple US MacBook Air Tech Specs: 78 (ANSI) or 79 (ISO) keys including 12 full-he&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo 256GB model Touch ID&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro SD card slot&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt; Apple US MacBook Pro Tech Specs, Charging and Expansion: SDXC card slot, HDMI po&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air Thunderbolt 4 (USB-C) ports&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air ports (SD card slot)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo ports (SD card slot)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photoshop (Mac) memory figure for AI features&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Minimum MacBook configuration for blogging: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result and a matching product for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;















































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Writing only, Daily (1.3 kg or less), None&lt;/td&gt;&lt;td&gt;△ MacBook Neo (memory not judged). Writing alone has no official memory figure, so memory isn’t judged. The configuration below is chosen only by display count and weight. The weight limits (1.3 kg and 1.7 kg) are this article’s own choices. Lightest configuration: MacBook Neo, 8 GB memory, 256 GB storage. Weight: 1.23 kg (Apple’s spec page). The MacBook Neo drives up to 1 external display. Other models that fit: 13-inch MacBook Air (M5)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=write&amp;amp;macbook-blog-config-calc-w=daily&amp;amp;macbook-blog-config-calc-mon=0#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Writing only, Daily (1.3 kg or less), 1&lt;/td&gt;&lt;td&gt;△ MacBook Neo (memory not judged). Writing alone has no official memory figure, so memory isn’t judged. The configuration below is chosen only by display count and weight. The weight limits (1.3 kg and 1.7 kg) are this article’s own choices. Lightest configuration: MacBook Neo, 8 GB memory, 256 GB storage. Weight: 1.23 kg (Apple’s spec page). The MacBook Neo drives up to 1 external display. The Neo outputs video only from its single USB 3 port, so with a display connected you’re left with one USB 2 port. Other models that fit: 13-inch MacBook Air (M5)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=write&amp;amp;macbook-blog-config-calc-w=daily&amp;amp;macbook-blog-config-calc-mon=1#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Writing only, Doesn’t matter, 3&lt;/td&gt;&lt;td&gt;△ 14-inch MacBook Pro (M5 Pro) (memory not judged). Writing alone has no official memory figure, so memory isn’t judged. The configuration below is chosen only by display count and weight. Lightest configuration: 14-inch MacBook Pro (M5 Pro), 24 GB memory, 1 TB storage. Weight: 1.60 kg (Apple’s spec page). The 14-inch MacBook Pro (M5 Pro) drives up to 3 external displays. Other models that fit: 16-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max), 16-inch MacBook Pro (M5 Max)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=write&amp;amp;macbook-blog-config-calc-w=any&amp;amp;macbook-blog-config-calc-mon=3#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;+ Lightroom Classic, Daily (1.3 kg or less), None&lt;/td&gt;&lt;td&gt;△ The MacBook Neo just meets it. Memory needed: 8 GB (Lightroom Classic’s official minimum). Free space needed: 8 GB (Adobe’s official figure; photos and catalogs not included). The weight limits (1.3 kg and 1.7 kg) are this article’s own choices. Lightest configuration: MacBook Neo, 8 GB memory, 256 GB storage. Weight: 1.23 kg (Apple’s spec page). Memory is exactly the official figure with nothing to spare (borderline). The 256 GB drive is larger than that. Space for macOS and your photos isn’t calculated. Adobe recommends 16 GB or more (this check uses the minimum). Lightest configuration meeting the recommendation: 13-inch MacBook Air (M5), 16 GB (exactly the low end, borderline). The MacBook Neo drives up to 1 external display. The MacBook Neo (8 GB) is exactly at the 8 GB minimum for Lightroom Classic and Photoshop, and doesn’t meet the recommended 16 GB or more or the 16 GB for AI features. Pick one use. Each official figure is for that app on its own; running Lightroom Classic and Photoshop together has no official figure and isn’t judged. Other models that fit: 13-inch MacBook Air (M5)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=lrc&amp;amp;macbook-blog-config-calc-w=daily&amp;amp;macbook-blog-config-calc-mon=0#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;+ Lightroom Classic, Daily (1.3 kg or less), 2&lt;/td&gt;&lt;td&gt;✓ The 13-inch MacBook Air (M5) meets the official minimum. Memory needed: 8 GB (Lightroom Classic’s official minimum). Free space needed: 8 GB (Adobe’s official figure; photos and catalogs not included). The weight limits (1.3 kg and 1.7 kg) are this article’s own choices. Lightest configuration: 13-inch MacBook Air (M5), 16 GB memory, 512 GB storage. Weight: 1.23 kg (Apple’s spec page). Memory headroom: 8 GB. The 512 GB drive is larger than that. Space for macOS and your photos isn’t calculated. Adobe recommends 16 GB or more (this check uses the minimum). The 13-inch MacBook Air (M5) drives up to 2 external displays. Pick one use. Each official figure is for that app on its own; running Lightroom Classic and Photoshop together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=lrc&amp;amp;macbook-blog-config-calc-w=daily&amp;amp;macbook-blog-config-calc-mon=2#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;+ Lightroom Classic, Doesn’t matter, 3&lt;/td&gt;&lt;td&gt;✓ The 14-inch MacBook Pro (M5 Pro) meets the official minimum. Memory needed: 8 GB (Lightroom Classic’s official minimum). Free space needed: 8 GB (Adobe’s official figure; photos and catalogs not included). Lightest configuration: 14-inch MacBook Pro (M5 Pro), 24 GB memory, 1 TB storage. Weight: 1.60 kg (Apple’s spec page). Memory headroom: 16 GB. The 1 TB drive is larger than that. Space for macOS and your photos isn’t calculated. Adobe recommends 16 GB or more (this check uses the minimum). The 14-inch MacBook Pro (M5 Pro) drives up to 3 external displays. Pick one use. Each official figure is for that app on its own; running Lightroom Classic and Photoshop together has no official figure and isn’t judged. Other models that fit: 16-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max), 16-inch MacBook Pro (M5 Max)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=lrc&amp;amp;macbook-blog-config-calc-w=any&amp;amp;macbook-blog-config-calc-mon=3#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;+ Photoshop, Daily (1.3 kg or less), 1&lt;/td&gt;&lt;td&gt;△ The MacBook Neo just meets it. Memory needed: 8 GB (Photoshop’s official minimum). Free space needed: 10 GB, 100 GB recommended (Adobe’s official figure; photos and catalogs not included). The weight limits (1.3 kg and 1.7 kg) are this article’s own choices. Lightest configuration: MacBook Neo, 8 GB memory, 256 GB storage. Weight: 1.23 kg (Apple’s spec page). Memory is exactly the official figure with nothing to spare (borderline). The 256 GB drive is larger than that. Space for macOS and your photos isn’t calculated. Adobe recommends 16 GB or more (this check uses the minimum). Lightest configuration meeting the recommendation: 13-inch MacBook Air (M5), 16 GB (exactly the low end, borderline). The MacBook Neo drives up to 1 external display. The MacBook Neo (8 GB) is exactly at the 8 GB minimum for Lightroom Classic and Photoshop, and doesn’t meet the recommended 16 GB or more or the 16 GB for AI features. The Neo outputs video only from its single USB 3 port, so with a display connected you’re left with one USB 2 port. There’s no official memory figure for Photoshop’s AI features, so they aren’t judged. Pick one use. Each official figure is for that app on its own; running Lightroom Classic and Photoshop together has no official figure and isn’t judged. Other models that fit: 13-inch MacBook Air (M5)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=ps&amp;amp;macbook-blog-config-calc-w=daily&amp;amp;macbook-blog-config-calc-mon=1#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;+ Photoshop, Sometimes (1.7 kg or less), 2&lt;/td&gt;&lt;td&gt;✓ The 13-inch MacBook Air (M5) meets the official minimum. Memory needed: 8 GB (Photoshop’s official minimum). Free space needed: 10 GB, 100 GB recommended (Adobe’s official figure; photos and catalogs not included). The weight limits (1.3 kg and 1.7 kg) are this article’s own choices. Lightest configuration: 13-inch MacBook Air (M5), 16 GB memory, 512 GB storage. Weight: 1.23 kg (Apple’s spec page). Memory headroom: 8 GB. The 512 GB drive is larger than that. Space for macOS and your photos isn’t calculated. Adobe recommends 16 GB or more (this check uses the minimum). The 13-inch MacBook Air (M5) drives up to 2 external displays. There’s no official memory figure for Photoshop’s AI features, so they aren’t judged. Pick one use. Each official figure is for that app on its own; running Lightroom Classic and Photoshop together has no official figure and isn’t judged. Other models that fit: 15-inch MacBook Air (M5), 14-inch MacBook Pro (M5), 14-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=ps&amp;amp;macbook-blog-config-calc-w=some&amp;amp;macbook-blog-config-calc-mon=2#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;+ AI features (Lightroom Classic), Daily (1.3 kg or less), None&lt;/td&gt;&lt;td&gt;△ The 13-inch MacBook Air (M5) just meets it. Memory needed: 16 GB (unified memory Adobe lists for Lightroom Classic’s AI features). Free space needed: 8 GB (Adobe’s official figure; photos and catalogs not included). The weight limits (1.3 kg and 1.7 kg) are this article’s own choices. Lightest configuration: 13-inch MacBook Air (M5), 16 GB memory, 512 GB storage. Weight: 1.23 kg (Apple’s spec page). Memory is exactly the official figure with nothing to spare (borderline). The 512 GB drive is larger than that. Space for macOS and your photos isn’t calculated. Adobe recommends 16 GB or more (this check uses the minimum). The 13-inch MacBook Air (M5) drives up to 2 external displays. Pick one use. Each official figure is for that app on its own; running Lightroom Classic and Photoshop together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=ai&amp;amp;macbook-blog-config-calc-w=daily&amp;amp;macbook-blog-config-calc-mon=0#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;+ AI features (Lightroom Classic), Daily (1.3 kg or less), 2&lt;/td&gt;&lt;td&gt;△ The 13-inch MacBook Air (M5) just meets it. Memory needed: 16 GB (unified memory Adobe lists for Lightroom Classic’s AI features). Free space needed: 8 GB (Adobe’s official figure; photos and catalogs not included). The weight limits (1.3 kg and 1.7 kg) are this article’s own choices. Lightest configuration: 13-inch MacBook Air (M5), 16 GB memory, 512 GB storage. Weight: 1.23 kg (Apple’s spec page). Memory is exactly the official figure with nothing to spare (borderline). The 512 GB drive is larger than that. Space for macOS and your photos isn’t calculated. Adobe recommends 16 GB or more (this check uses the minimum). The 13-inch MacBook Air (M5) drives up to 2 external displays. Pick one use. Each official figure is for that app on its own; running Lightroom Classic and Photoshop together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=ai&amp;amp;macbook-blog-config-calc-w=daily&amp;amp;macbook-blog-config-calc-mon=2#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;+ AI features (Lightroom Classic), Daily (1.3 kg or less), 3&lt;/td&gt;&lt;td&gt;✕ No model fits. Memory needed: 16 GB (unified memory Adobe lists for Lightroom Classic’s AI features). Free space needed: 8 GB (Adobe’s official figure; photos and catalogs not included). The weight limits (1.3 kg and 1.7 kg) are this article’s own choices. No model in this weight range supports 3 external displays. Set carrying to “Doesn’t matter” to see one&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=ai&amp;amp;macbook-blog-config-calc-w=daily&amp;amp;macbook-blog-config-calc-mon=3#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;+ AI features (Lightroom Classic), Sometimes (1.7 kg or less), 3&lt;/td&gt;&lt;td&gt;✓ The 14-inch MacBook Pro (M5 Pro) meets the official minimum. Memory needed: 16 GB (unified memory Adobe lists for Lightroom Classic’s AI features). Free space needed: 8 GB (Adobe’s official figure; photos and catalogs not included). The weight limits (1.3 kg and 1.7 kg) are this article’s own choices. Lightest configuration: 14-inch MacBook Pro (M5 Pro), 24 GB memory, 1 TB storage. Weight: 1.60 kg (Apple’s spec page). Memory headroom: 8 GB. The 1 TB drive is larger than that. Space for macOS and your photos isn’t calculated. Adobe recommends 16 GB or more (this check uses the minimum). The 14-inch MacBook Pro (M5 Pro) drives up to 3 external displays. Pick one use. Each official figure is for that app on its own; running Lightroom Classic and Photoshop together has no official figure and isn’t judged. Other models that fit: 14-inch MacBook Pro (M5 Max)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=ai&amp;amp;macbook-blog-config-calc-w=some&amp;amp;macbook-blog-config-calc-mon=3#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;+ AI features (Lightroom Classic), Doesn’t matter, 4&lt;/td&gt;&lt;td&gt;✓ The 14-inch MacBook Pro (M5 Max) meets the official minimum. Memory needed: 16 GB (unified memory Adobe lists for Lightroom Classic’s AI features). Free space needed: 8 GB (Adobe’s official figure; photos and catalogs not included). Lightest configuration: 14-inch MacBook Pro (M5 Max), 36 GB memory, 2 TB storage. Weight: 1.62 kg (Apple’s spec page). Memory headroom: 20 GB. The 2 TB drive is larger than that. Space for macOS and your photos isn’t calculated. Adobe recommends 16 GB or more (this check uses the minimum). The 14-inch MacBook Pro (M5 Max) drives up to 4 external displays. Pick one use. Each official figure is for that app on its own; running Lightroom Classic and Photoshop together has no official figure and isn’t judged. Other models that fit: 16-inch MacBook Pro (M5 Max)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=ai&amp;amp;macbook-blog-config-calc-w=any&amp;amp;macbook-blog-config-calc-mon=4#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;+ Lightroom Classic, Sometimes (1.7 kg or less), 4&lt;/td&gt;&lt;td&gt;✓ The 14-inch MacBook Pro (M5 Max) meets the official minimum. Memory needed: 8 GB (Lightroom Classic’s official minimum). Free space needed: 8 GB (Adobe’s official figure; photos and catalogs not included). The weight limits (1.3 kg and 1.7 kg) are this article’s own choices. Lightest configuration: 14-inch MacBook Pro (M5 Max), 36 GB memory, 2 TB storage. Weight: 1.62 kg (Apple’s spec page). Memory headroom: 28 GB. The 2 TB drive is larger than that. Space for macOS and your photos isn’t calculated. Adobe recommends 16 GB or more (this check uses the minimum). The 14-inch MacBook Pro (M5 Max) drives up to 4 external displays. Pick one use. Each official figure is for that app on its own; running Lightroom Classic and Photoshop together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-08-blog-macbook/?macbook-blog-config-calc-work=lrc&amp;amp;macbook-blog-config-calc-w=some&amp;amp;macbook-blog-config-calc-mon=4#macbook-blog-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>macbook</category></item><item><title>Which Logitech MX Mouse Should You Buy? Picks by Use</title><link>https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/</guid><description>By this article&apos;s rule of thumb, office work and programming call for an MX Master with a thumb wheel (a side wheel for horizontal scrolling). Carrying calls for the 99 g MX Anywhere 3S. The MX Master 4, MX Anywhere 3S and MX Vertical each pair with up to 3 devices. For three devices that&apos;s exactly their maximum, so it&apos;s borderline. The MX Ergo S pairs with up to 2 devices. Based on Logitech&apos;s official pages (October 2026).</description><pubDate>Wed, 07 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;By this article’s rule of thumb, office work and programming call for the MX Master 4 with a thumb wheel (a side wheel for horizontal scrolling). Carrying calls for the 99 g MX Anywhere 3S, which clears the 120 g line.&lt;/p&gt;
&lt;p&gt;The MX Master 4 beats the 3S Bluetooth Edition on two points. It comes with a Logi Bolt receiver, a USB receiver that plugs into the PC for a wireless link. It also has haptic feedback, which vibrates the mouse for actions you choose.&lt;/p&gt;
&lt;p&gt;Nothing was tested on a real mouse, so comfort and speed aren’t judged.&lt;/p&gt;
&lt;h2 id=&quot;choosing-by-use-and-conditions&quot;&gt;Choosing by use and conditions&lt;/h2&gt;
&lt;p&gt;Carrying means 120 g or less, and the only current MX mouse that fits is the MX Anywhere 3S at 99 g. The Mac version weighs the same.&lt;/p&gt;

































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Condition&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Matching models&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Office work and programming (thumb wheel)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;MX Master 4, MX Master 4 for Mac, MX Master 3S Bluetooth Edition&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Carrying (this article’s rule: 120 g or less)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;MX Anywhere 3S&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Shape Logitech says reduces wrist pressure (vertical)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;MX Vertical&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Tilt Logitech says reduces forearm tension (trackball)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;MX Ergo S&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Switching between 2 devices&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;MX Master 4, MX Anywhere 3S, MX Anywhere 3S for Mac, MX Vertical, MX Ergo S (borderline)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Switching between 3 devices (borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;MX Master 4, MX Anywhere 3S, MX Anywhere 3S for Mac, MX Vertical&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;“Borderline” means the maximum device count equals the number you use (spare room under 10%).&lt;/p&gt;
&lt;section id=&quot;mx-mouse-finder&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;mx-mouse-finder-title&quot;&gt; &lt;h3 id=&quot;mx-mouse-finder-title&quot;&gt;Find the MX mouse that fits your setup&lt;/h3&gt; &lt;p&gt;Pick your use (office and programming, carrying, or easing wrist strain), how many devices you switch between, your OS, how you connect (Bluetooth, a USB receiver or Logi Bolt), and whether you want quiet clicks or haptics. It lists the current MX mice whose official specs fit, and suggests one you can buy.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;mm4&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Master 4&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61z3ENJubZL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Master 4&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FR8LPP2K?q=MX+Master+4&amp;amp;us=B0FC5SJNQX&amp;amp;l=en&quot; aria-label=&quot;View MX Master 4 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;mm4mac&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Master 4 for Mac&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61-t8ez-qtL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Master 4 for Mac&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FC5X4F8G?q=MX+Master+4+for+Mac&amp;amp;us=B0FC5X4F8G&amp;amp;l=en&quot; aria-label=&quot;View MX Master 4 for Mac on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;mm3s&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Master 3S Bluetooth Edition&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61oEwT0WpSL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Master 3S Bluetooth Edition&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FB21526X?q=MX+Master+3S+Bluetooth+Edition&amp;amp;us=B0FB21526X&amp;amp;l=en&quot; aria-label=&quot;View MX Master 3S Bluetooth Edition on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ma3s&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Anywhere 3S&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/51PZmLp6u+L._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Anywhere 3S&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C65MQZ65?q=MX+Anywhere+3S&amp;amp;us=B0BPY4ZQXG&amp;amp;l=en&quot; aria-label=&quot;View MX Anywhere 3S on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ma3smac&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Anywhere 3S for Mac&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Hotz8r3bL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Anywhere 3S for Mac&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CVFJ1YSX?q=MX+Anywhere+3S+for+Mac&amp;amp;us=B0CVFJ1YSX&amp;amp;l=en&quot; aria-label=&quot;View MX Anywhere 3S for Mac on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ergo&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Ergo S&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Xsc-lNsXL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Ergo S&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0D9Y1SNQT?q=MX+Ergo+S&amp;amp;us=B0D6PTR6MP&amp;amp;l=en&quot; aria-label=&quot;View MX Ergo S on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;vert&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Vertical&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61iiZ-gDYEL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Vertical&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B07GPZBVZT?q=MX+Vertical&amp;amp;us=B07FNJB8TT&amp;amp;l=en&quot; aria-label=&quot;View MX Vertical on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;models&quot;:{&quot;mm4&quot;:{&quot;ja&quot;:&quot;MX Master 4&quot;,&quot;en&quot;:&quot;MX Master 4&quot;,&quot;markets&quot;:[&quot;jp&quot;,&quot;us&quot;],&quot;w&quot;:150,&quot;h&quot;:128.15,&quot;buttons&quot;:8,&quot;buttonsCustom&quot;:false,&quot;thumb&quot;:true,&quot;devices&quot;:3,&quot;receiver&quot;:&quot;bolt&quot;,&quot;bolt&quot;:true,&quot;macOnly&quot;:false,&quot;quiet&quot;:true,&quot;haptics&quot;:true,&quot;shape&quot;:&quot;mouse&quot;,&quot;hand&quot;:null,&quot;battery&quot;:{&quot;days&quot;:70},&quot;os&quot;:{&quot;ja&quot;:&quot;Bluetooth: Windows 11 以降、macOS 13 以降、Linux・ChromeOS、iPadOS 15 以降、Android 12 以降。Logi Bolt: Windows 10・11 以降、macOS 13 以降&quot;,&quot;en&quot;:&quot;Bluetooth: Windows 11 or later, macOS 13 or later, Linux, ChromeOS, iPadOS 15 or later, Android 12 or later. Logi Bolt: Windows 10/11 or later, macOS 13 or later&quot;}},&quot;mm4mac&quot;:{&quot;ja&quot;:&quot;MX Master 4 for Mac&quot;,&quot;en&quot;:&quot;MX Master 4 for Mac&quot;,&quot;markets&quot;:[&quot;us&quot;],&quot;w&quot;:150,&quot;h&quot;:128.15,&quot;buttons&quot;:8,&quot;buttonsCustom&quot;:false,&quot;thumb&quot;:true,&quot;devices&quot;:null,&quot;receiver&quot;:null,&quot;bolt&quot;:true,&quot;macOnly&quot;:true,&quot;quiet&quot;:null,&quot;haptics&quot;:true,&quot;shape&quot;:&quot;mouse&quot;,&quot;hand&quot;:null,&quot;battery&quot;:{&quot;days&quot;:70},&quot;os&quot;:{&quot;ja&quot;:&quot;Bluetooth: macOS 13 以降、iPadOS 15 以降&quot;,&quot;en&quot;:&quot;Bluetooth: macOS 13 or later, iPadOS 15 or later&quot;}},&quot;mm3s&quot;:{&quot;ja&quot;:&quot;MX Master 3S Bluetooth edition&quot;,&quot;en&quot;:&quot;MX Master 3S Bluetooth Edition&quot;,&quot;markets&quot;:[&quot;jp&quot;,&quot;us&quot;],&quot;w&quot;:141,&quot;h&quot;:124.9,&quot;buttons&quot;:7,&quot;buttonsCustom&quot;:false,&quot;thumb&quot;:true,&quot;devices&quot;:null,&quot;receiver&quot;:null,&quot;bolt&quot;:null,&quot;macOnly&quot;:false,&quot;quiet&quot;:true,&quot;haptics&quot;:false,&quot;shape&quot;:&quot;mouse&quot;,&quot;hand&quot;:null,&quot;battery&quot;:{&quot;days&quot;:70},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 10・11 以降、macOS 10.15 以降、Linux・ChromeOS、iPadOS 14 以降、Android 8.0 以降（Bluetooth）&quot;,&quot;en&quot;:&quot;Windows 10/11 or later, macOS 10.15 or later, Linux, ChromeOS, iPadOS 14 or later, Android 8.0 or later (Bluetooth)&quot;}},&quot;ma3s&quot;:{&quot;ja&quot;:&quot;MX Anywhere 3S&quot;,&quot;en&quot;:&quot;MX Anywhere 3S&quot;,&quot;markets&quot;:[&quot;jp&quot;,&quot;us&quot;],&quot;w&quot;:99,&quot;h&quot;:100.5,&quot;buttons&quot;:6,&quot;buttonsCustom&quot;:false,&quot;thumb&quot;:false,&quot;devices&quot;:3,&quot;receiver&quot;:null,&quot;bolt&quot;:true,&quot;macOnly&quot;:false,&quot;quiet&quot;:true,&quot;haptics&quot;:false,&quot;shape&quot;:&quot;mouse&quot;,&quot;hand&quot;:null,&quot;battery&quot;:{&quot;days&quot;:70},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 10・11 以降、macOS 10.15 以降、Linux・ChromeOS、iPadOS 14 以降、Android 8.0 以降&quot;,&quot;en&quot;:&quot;Windows 10/11 or later, macOS 10.15 or later, Linux, ChromeOS, iPadOS 14 or later, Android 8.0 or later&quot;}},&quot;ma3smac&quot;:{&quot;ja&quot;:&quot;MX Anywhere 3S（Mac用）&quot;,&quot;en&quot;:&quot;MX Anywhere 3S for Mac&quot;,&quot;markets&quot;:[&quot;jp&quot;,&quot;us&quot;],&quot;w&quot;:99,&quot;h&quot;:100.5,&quot;buttons&quot;:6,&quot;buttonsCustom&quot;:false,&quot;thumb&quot;:false,&quot;devices&quot;:3,&quot;receiver&quot;:null,&quot;bolt&quot;:true,&quot;macOnly&quot;:true,&quot;quiet&quot;:true,&quot;haptics&quot;:false,&quot;shape&quot;:&quot;mouse&quot;,&quot;hand&quot;:null,&quot;battery&quot;:{&quot;days&quot;:70},&quot;os&quot;:{&quot;ja&quot;:&quot;macOS 10.15 以降、iPadOS 14 以降&quot;,&quot;en&quot;:&quot;macOS 10.15 or later, iPadOS 14 or later&quot;}},&quot;vert&quot;:{&quot;ja&quot;:&quot;MX Vertical&quot;,&quot;en&quot;:&quot;MX Vertical&quot;,&quot;markets&quot;:[&quot;jp&quot;,&quot;us&quot;],&quot;w&quot;:125,&quot;h&quot;:120,&quot;buttons&quot;:4,&quot;buttonsCustom&quot;:true,&quot;thumb&quot;:false,&quot;devices&quot;:3,&quot;receiver&quot;:&quot;unifying&quot;,&quot;bolt&quot;:false,&quot;macOnly&quot;:false,&quot;quiet&quot;:null,&quot;haptics&quot;:false,&quot;shape&quot;:&quot;vertical&quot;,&quot;hand&quot;:{&quot;ja&quot;:&quot;中〜大サイズの手&quot;,&quot;en&quot;:&quot;medium to large hands&quot;},&quot;battery&quot;:{&quot;months&quot;:4},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 10・11 以降、macOS 10.15 以降、ChromeOS・Linux。Bluetooth 接続はさらに iPadOS 13.4 以降（AssistiveTouch が必要）&quot;,&quot;en&quot;:&quot;Windows 10/11 or later, macOS 10.15 or later, ChromeOS, Linux; over Bluetooth also iPadOS 13.4 or later (AssistiveTouch needed)&quot;}},&quot;ergo&quot;:{&quot;ja&quot;:&quot;MX Ergo S&quot;,&quot;en&quot;:&quot;MX Ergo S&quot;,&quot;markets&quot;:[&quot;jp&quot;,&quot;us&quot;],&quot;w&quot;:164,&quot;h&quot;:132.5,&quot;buttons&quot;:8,&quot;buttonsCustom&quot;:false,&quot;thumb&quot;:false,&quot;devices&quot;:2,&quot;receiver&quot;:&quot;bolt&quot;,&quot;bolt&quot;:true,&quot;macOnly&quot;:false,&quot;quiet&quot;:true,&quot;haptics&quot;:false,&quot;shape&quot;:&quot;trackball&quot;,&quot;hand&quot;:{&quot;ja&quot;:&quot;中〜大サイズの手&quot;,&quot;en&quot;:&quot;medium to large hands&quot;},&quot;battery&quot;:{&quot;days&quot;:120},&quot;os&quot;:{&quot;ja&quot;:&quot;Windows 10・11 以降、macOS 12 以降、Linux・ChromeOS。Bluetooth 接続はさらに iPadOS 15 以降、Android 12 以降&quot;,&quot;en&quot;:&quot;Windows 10/11 or later, macOS 12 or later, Linux, ChromeOS; over Bluetooth also iPadOS 15 or later, Android 12 or later&quot;}}},&quot;order&quot;:[&quot;mm4&quot;,&quot;mm4mac&quot;,&quot;mm3s&quot;,&quot;ma3s&quot;,&quot;ma3smac&quot;,&quot;vert&quot;,&quot;ergo&quot;],&quot;carryMax&quot;:120,&quot;tightRatio&quot;:0.1,&quot;uses&quot;:[&quot;office&quot;,&quot;carry&quot;,&quot;wrist&quot;],&quot;shapes&quot;:[&quot;any&quot;,&quot;vertical&quot;,&quot;trackball&quot;],&quot;devs&quot;:[1,2,3],&quot;oses&quot;:[&quot;win&quot;,&quot;mac&quot;,&quot;both&quot;],&quot;recvs&quot;:[&quot;bt&quot;,&quot;bundled&quot;,&quot;bolt&quot;],&quot;products&quot;:{&quot;mm4&quot;:{&quot;model&quot;:&quot;mm4&quot;},&quot;mm4mac&quot;:{&quot;model&quot;:&quot;mm4mac&quot;},&quot;mm3s&quot;:{&quot;model&quot;:&quot;mm3s&quot;},&quot;ma3s&quot;:{&quot;model&quot;:&quot;ma3s&quot;},&quot;ma3smac&quot;:{&quot;model&quot;:&quot;ma3smac&quot;},&quot;ergo&quot;:{&quot;model&quot;:&quot;ergo&quot;},&quot;vert&quot;:{&quot;model&quot;:&quot;vert&quot;}},&quot;slotIds&quot;:{&quot;office&quot;:[&quot;mm4&quot;],&quot;office_prev&quot;:[&quot;mm3s&quot;],&quot;carry&quot;:[&quot;ma3s&quot;],&quot;mac_office&quot;:[&quot;mm4mac&quot;],&quot;mac_carry&quot;:[&quot;ma3smac&quot;],&quot;wrist_vertical&quot;:[&quot;vert&quot;],&quot;wrist_trackball&quot;:[&quot;ergo&quot;]},&quot;buy&quot;:{&quot;mm4&quot;:{&quot;type&quot;:&quot;mouse&quot;,&quot;ja&quot;:&quot;MX Master 4&quot;,&quot;en&quot;:&quot;MX Master 4&quot;,&quot;jp&quot;:&quot;B0FR8LPP2K&quot;,&quot;us&quot;:&quot;B0FC5SJNQX&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0FR8LPP2K&quot;,&quot;asinUS&quot;:&quot;B0FC5SJNQX&quot;,&quot;title&quot;:&quot;MX Master 4&quot;,&quot;searchQuery&quot;:&quot;MX Master 4&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61BPuOamilL._AC_SX679_.jpg&quot;,&quot;jan&quot;:&quot;4943765067221&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0FR8LPP2K&quot;,&quot;asinUS&quot;:&quot;B0FC5SJNQX&quot;,&quot;title&quot;:&quot;MX Master 4&quot;,&quot;searchQuery&quot;:&quot;MX Master 4&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61z3ENJubZL._AC_SX679_.jpg&quot;}},&quot;rank_jp&quot;:3,&quot;rank_us&quot;:6},&quot;mm4mac&quot;:{&quot;type&quot;:&quot;mouse&quot;,&quot;ja&quot;:&quot;MX Master 4 for Mac&quot;,&quot;en&quot;:&quot;MX Master 4 for Mac&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FC5X4F8G&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FC5X4F8G&quot;,&quot;asinUS&quot;:&quot;B0FC5X4F8G&quot;,&quot;title&quot;:&quot;MX Master 4 for Mac&quot;,&quot;searchQuery&quot;:&quot;MX Master 4 for Mac&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61-t8ez-qtL._AC_SX679_.jpg&quot;}},&quot;rank_us&quot;:5},&quot;mm3s&quot;:{&quot;type&quot;:&quot;mouse&quot;,&quot;ja&quot;:&quot;MX Master 3S Bluetooth edition&quot;,&quot;en&quot;:&quot;MX Master 3S Bluetooth Edition&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FB21526X&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FB21526X&quot;,&quot;asinUS&quot;:&quot;B0FB21526X&quot;,&quot;title&quot;:&quot;MX Master 3S Bluetooth Edition&quot;,&quot;searchQuery&quot;:&quot;MX Master 3S Bluetooth Edition&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61oEwT0WpSL._AC_SX679_.jpg&quot;}},&quot;rank_us&quot;:3},&quot;ma3s&quot;:{&quot;type&quot;:&quot;mouse&quot;,&quot;ja&quot;:&quot;MX Anywhere 3S&quot;,&quot;en&quot;:&quot;MX Anywhere 3S&quot;,&quot;jp&quot;:&quot;B0C65MQZ65&quot;,&quot;us&quot;:&quot;B0BPY4ZQXG&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0C65MQZ65&quot;,&quot;asinUS&quot;:&quot;B0BPY4ZQXG&quot;,&quot;title&quot;:&quot;MX Anywhere 3S&quot;,&quot;searchQuery&quot;:&quot;MX Anywhere 3S&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51dXMJYWGVL._AC_SX679_.jpg&quot;,&quot;jan&quot;:&quot;4943765062080&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0C65MQZ65&quot;,&quot;asinUS&quot;:&quot;B0BPY4ZQXG&quot;,&quot;title&quot;:&quot;MX Anywhere 3S&quot;,&quot;searchQuery&quot;:&quot;MX Anywhere 3S&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51PZmLp6u+L._AC_SX679_.jpg&quot;}},&quot;rank_jp&quot;:0,&quot;rank_us&quot;:1},&quot;ma3smac&quot;:{&quot;type&quot;:&quot;mouse&quot;,&quot;ja&quot;:&quot;MX Anywhere 3S（Mac用）&quot;,&quot;en&quot;:&quot;MX Anywhere 3S for Mac&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0CVFJ1YSX&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0CVFJ1YSX&quot;,&quot;asinUS&quot;:&quot;B0CVFJ1YSX&quot;,&quot;title&quot;:&quot;MX Anywhere 3S for Mac&quot;,&quot;searchQuery&quot;:&quot;MX Anywhere 3S for Mac&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Hotz8r3bL._AC_SX679_.jpg&quot;}},&quot;rank_us&quot;:2},&quot;ergo&quot;:{&quot;type&quot;:&quot;trackball&quot;,&quot;ja&quot;:&quot;MX Ergo S&quot;,&quot;en&quot;:&quot;MX Ergo S&quot;,&quot;jp&quot;:&quot;B0D9Y1SNQT&quot;,&quot;us&quot;:&quot;B0D6PTR6MP&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0D9Y1SNQT&quot;,&quot;asinUS&quot;:&quot;B0D6PTR6MP&quot;,&quot;title&quot;:&quot;MX Ergo S&quot;,&quot;searchQuery&quot;:&quot;MX Ergo S&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61BhMOiauWL._AC_SX679_.jpg&quot;,&quot;jan&quot;:&quot;4943765065050&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0D9Y1SNQT&quot;,&quot;asinUS&quot;:&quot;B0D6PTR6MP&quot;,&quot;title&quot;:&quot;MX Ergo S&quot;,&quot;searchQuery&quot;:&quot;MX Ergo S&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Xsc-lNsXL._AC_SX679_.jpg&quot;}},&quot;rank_jp&quot;:2,&quot;rank_us&quot;:4},&quot;vert&quot;:{&quot;type&quot;:&quot;mouse&quot;,&quot;ja&quot;:&quot;MX Vertical&quot;,&quot;en&quot;:&quot;MX Vertical&quot;,&quot;jp&quot;:&quot;B07GPZBVZT&quot;,&quot;us&quot;:&quot;B07FNJB8TT&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B07GPZBVZT&quot;,&quot;asinUS&quot;:&quot;B07FNJB8TT&quot;,&quot;title&quot;:&quot;MX Vertical&quot;,&quot;searchQuery&quot;:&quot;MX Vertical&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51Gt2MIkoXL._AC_SX679_.jpg&quot;,&quot;jan&quot;:&quot;4943765048978&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B07GPZBVZT&quot;,&quot;asinUS&quot;:&quot;B07FNJB8TT&quot;,&quot;title&quot;:&quot;MX Vertical&quot;,&quot;searchQuery&quot;:&quot;MX Vertical&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61iiZ-gDYEL._AC_SX679_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:0}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;mouse&quot;:&quot;mm4&quot;,&quot;trackball&quot;:&quot;ergo&quot;},&quot;en&quot;:{&quot;mouse&quot;:&quot;mm4&quot;,&quot;trackball&quot;:&quot;ergo&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;mx-mouse-finder&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 値（重さ・ボタン・ペアリング台数・レシーバー・静音・触覚・対応 OS）は calc.mjs が data.json の facts から M.models に入れて渡す。
//
// 判定はメーカーの公式ページの仕様だけ。快適さ・速さ・手首の負担の大きさは判定しない。
// 用途の条件（この記事で決めた線）:
//   office = サムホイールあり（横スクロールをホイールでできる）
//   carry  = 重さ M.carryMax g 以下
//   wrist  = メーカーが手首の負担を減らす形と説明する縦型（vertical）・トラックボール（trackball）
// 台数: 公式の最大ペアリング台数 ≥ 使う台数。1台は条件にしない。台数の記載が無い機種は2台以上で「確かめられない」として外す。
//   余裕（最大台数 − 使う台数）が使う台数の tightRatio 未満なら「ぎりぎり」（最大台数ちょうど）。
// 記載の無い仕様（静音・Bolt 対応・台数）は「無い」とみなさず「確かめられない」（unknown）として外し、理由を返す。

const USES = [&quot;office&quot;, &quot;carry&quot;, &quot;wrist&quot;];
const SHAPES = [&quot;any&quot;, &quot;vertical&quot;, &quot;trackball&quot;];
const DEVS = [1, 2, 3];
const OSES = [&quot;win&quot;, &quot;mac&quot;, &quot;both&quot;];
const RECVS = [&quot;bt&quot;, &quot;bundled&quot;, &quot;bolt&quot;];

// 1機種の判定。s = { use, shape, dev, os, recv, quiet, haptic }（quiet / haptic は &quot;yes&quot; か &quot;any&quot;）
// 戻り値: { ok, unknown: [理由], fail: [理由], margin, tight }
function fitModel(m, s, M) {
  const fail = [], unknown = [];
  if (s.use === &quot;office&quot; &amp;&amp; !m.thumb) fail.push(&quot;use&quot;);
  if (s.use === &quot;carry&quot; &amp;&amp; !(m.w &lt;= M.carryMax + 1e-9)) fail.push(&quot;use&quot;);
  if (s.use === &quot;wrist&quot;) {
    if (m.shape === &quot;mouse&quot;) fail.push(&quot;use&quot;);
    else if (s.shape &amp;&amp; s.shape !== &quot;any&quot; &amp;&amp; s.shape !== m.shape) fail.push(&quot;shape&quot;);
  }
  const dev = Number(s.dev) || 1;
  let margin = null, tight = false;
  if (dev &gt;= 2) {
    if (m.devices == null) unknown.push(&quot;dev&quot;);
    else if (m.devices &lt; dev) fail.push(&quot;dev&quot;);
    else { margin = m.devices - dev; tight = margin / dev &lt; M.tightRatio; }
  }
  if ((s.os === &quot;win&quot; || s.os === &quot;both&quot;) &amp;&amp; m.macOnly) fail.push(&quot;os&quot;);
  if (s.recv === &quot;bundled&quot; &amp;&amp; !m.receiver) fail.push(&quot;recv&quot;);
  if (s.recv === &quot;bolt&quot;) { if (m.bolt === false) fail.push(&quot;recv&quot;); else if (m.bolt == null) unknown.push(&quot;recv&quot;); }
  if (s.quiet === &quot;yes&quot;) { if (m.quiet === false) fail.push(&quot;quiet&quot;); else if (m.quiet == null) unknown.push(&quot;quiet&quot;); }
  if (s.haptic === &quot;yes&quot; &amp;&amp; !m.haptics) fail.push(&quot;haptic&quot;);
  return { ok: !fail.length &amp;&amp; !unknown.length, fail, unknown, margin, tight };
}

// 条件に合う機種（M.order の並び）。market = &quot;jp&quot; | &quot;us&quot;（その国の公式サイトで売っている構成だけ）
function matchModels(M, s, market) {
  const all = M.order.filter((id) =&gt; M.models[id].markets.includes(market)).map((id) =&gt; ({ id, ...fitModel(M.models[id], s, M) }));
  const ok = all.filter((r) =&gt; r.ok);
  // 用途などの条件は合うのに、仕様の記載が無くて確かめられなかった機種
  const unconfirmed = all.filter((r) =&gt; !r.fail.length &amp;&amp; r.unknown.length);
  return { all, ok, unconfirmed };
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（用途・台数・OS・レシーバー・静音・触覚）。機種は選ばせず、公式の仕様が条件に合う機種と、買える商品を1つ出す。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。
// 手の大きさはメーカーが書いている MX Vertical・MX Ergo S だけに出す。電池はメーカーの最長の値として札に出すだけで比べない。

const T_ = {
  ja: {
    use: &quot;用途&quot;, shape: &quot;形&quot;, dev: &quot;使う台数&quot;, os: &quot;OS&quot;, recv: &quot;接続&quot;, quiet: &quot;静音クリック&quot;, haptic: &quot;触覚フィードバック&quot;,
    office: &quot;事務・プログラミング&quot;, carry: &quot;持ち運び&quot;, wrist: &quot;手首の負担を減らしたい&quot;,
    any: &quot;どちらでも&quot;, vertical: &quot;縦型&quot;, trackball: &quot;トラックボール&quot;,
    devL: (n) =&gt; `${n}台`,
    win: &quot;Windows&quot;, mac: &quot;Mac&quot;, both: &quot;Windows と Mac&quot;,
    bt: &quot;Bluetooth でよい&quot;, bundled: &quot;USB レシーバー付きがいい&quot;, bolt: &quot;Logi Bolt で使いたい&quot;,
    qAny: &quot;静音は問わない&quot;, qYes: &quot;静音クリックがほしい&quot;, hAny: &quot;触覚は問わない&quot;, hYes: &quot;触覚フィードバックがほしい&quot;,
    useNote: {
      office: &quot;事務・プログラミングの条件は「サムホイール（横スクロール用の親指のホイール）あり」です（この記事で決めた条件）&quot;,
      carry: (g) =&gt; `持ち運びの条件は「重さ ${g} g 以下」です（この記事で決めた線）`,
      vertical: &quot;メーカーの説明では、MX Vertical は 57° の縦型で手首の圧力を減らします&quot;,
      trackball: &quot;メーカーの説明では、MX Ergo S は 20度の傾斜で前腕の筋肉の緊張を減らします&quot;,
      wristPct: &quot;どれだけ減るかの数字は、測定の条件を確かめられなかったので載せていません&quot;,
    },
    row: (name, w, b, conn, dev) =&gt; `${name}: ${w} g・${b}・${conn}${dev ? `・最大${dev}台` : &quot;&quot;}`,
    tight: (name) =&gt; `${name}は使う台数が最大台数ちょうどで、ぎりぎりです`,
    hand: (name) =&gt; `${name}はメーカーの目安で「中〜大サイズの手」向けです`,
    unconf: (list) =&gt; `公式ページで記載を確かめられず、外した機種: ${list}`,
    why: { dev: &quot;台数&quot;, recv: &quot;Logi Bolt 対応&quot;, quiet: &quot;静音クリック&quot; },
    devShort: (list) =&gt; `最大台数が使う台数より少ない機種: ${list}`, devMax: (n) =&gt; `最大${n}台`,
    hapNote: &quot;触覚フィードバックを使うには Logi Options+ が要ります（Windows と macOS の最新版のみ）&quot;,
    winNote: &quot;MX Master 4 を Bluetooth で使うには Windows 11 以降が要ります（Logi Bolt レシーバーなら Windows 10 も対応）&quot;,
    macNote: &quot;Mac 用モデルは対応 OS が macOS と iPadOS だけなので、Windows でも使うなら通常版です&quot;,
    boltNote: &quot;Logi Bolt のレシーバー1個には、Logi Bolt 製品を最大6台つなげます&quot;,
    vOk: (list) =&gt; `○ 当てはまる機種: ${list}`, vTight: (list) =&gt; `△ ${list}（台数はぎりぎり）`, vNg: &quot;✕ 条件に合う機種がありません&quot;,
    note: &quot;結果はロジクール日本の公式ページの仕様（2026年10月の確認）から出しています。持ちやすさや速さは実機で試しておらず、判定していません。&quot;,
    conn: { bolt: &quot;Bluetooth・Logi Bolt レシーバー同梱&quot;, unifying: &quot;Bluetooth・Unifying レシーバー同梱（Logi Bolt ではない）&quot;, sep: &quot;Bluetooth（Logi Bolt レシーバーは別売）&quot;, bt: &quot;Bluetooth（レシーバーなし）&quot; },
    bat: (b) =&gt; (b.days ? `電池 最長${b.days}日（メーカー値。使い方で変わる）` : `電池 最長${b.months}か月（メーカー値。毎日使用した場合）`),
    specW: (w) =&gt; `重さ ${w} g`, specB: (b, c) =&gt; `ボタン ${b}個${c ? &quot;（カスタマイズ可能）&quot; : &quot;&quot;}`,
    sep: &quot;、&quot;, paren: (a, b) =&gt; `${a}（${b}）`,
  },
  en: {
    use: &quot;Use&quot;, shape: &quot;Shape&quot;, dev: &quot;Devices&quot;, os: &quot;OS&quot;, recv: &quot;Connection&quot;, quiet: &quot;Quiet clicks&quot;, haptic: &quot;Haptic feedback&quot;,
    office: &quot;Office &amp; programming&quot;, carry: &quot;Carrying&quot;, wrist: &quot;Ease wrist strain&quot;,
    any: &quot;Either&quot;, vertical: &quot;Vertical&quot;, trackball: &quot;Trackball&quot;,
    devL: (n) =&gt; (n === 1 ? &quot;1 device&quot; : `${n} devices`),
    win: &quot;Windows&quot;, mac: &quot;Mac&quot;, both: &quot;Windows and Mac&quot;,
    bt: &quot;Bluetooth is fine&quot;, bundled: &quot;Want a USB receiver&quot;, bolt: &quot;Use with Logi Bolt&quot;,
    qAny: &quot;Quiet clicks optional&quot;, qYes: &quot;Want quiet clicks&quot;, hAny: &quot;Haptics optional&quot;, hYes: &quot;Want haptic feedback&quot;,
    useNote: {
      office: &quot;Office and programming here means a thumb wheel for horizontal scrolling (this article&apos;s condition)&quot;,
      carry: (g) =&gt; `Carrying here means ${g} g or less (this article&apos;s cutoff)`,
      vertical: &quot;Logitech says the MX Vertical&apos;s 57° vertical angle reduces wrist pressure&quot;,
      trackball: &quot;Logitech says the MX Ergo S&apos;s 20° tilt reduces forearm muscle strain&quot;,
      wristPct: &quot;The maker&apos;s percentages aren&apos;t quoted because their test conditions weren&apos;t confirmed&quot;,
    },
    row: (name, w, b, conn, dev) =&gt; `${name}: ${w} g, ${b}, ${conn}${dev ? `, up to ${dev} devices` : &quot;&quot;}`,
    tight: (name) =&gt; `Your device count is exactly the ${name}&apos;s maximum, so it&apos;s borderline`,
    hand: (name) =&gt; `Logitech rates the ${name} for medium to large hands`,
    unconf: (list) =&gt; `Left out because the official page didn&apos;t state it: ${list}`,
    why: { dev: &quot;device count&quot;, recv: &quot;Logi Bolt support&quot;, quiet: &quot;quiet clicks&quot; },
    devShort: (list) =&gt; `Pairs with fewer devices than you need: ${list}`, devMax: (n) =&gt; `up to ${n}`,
    hapNote: &quot;Haptic feedback needs Logi Options+ (recent Windows and macOS only)&quot;,
    winNote: &quot;Using the MX Master 4 over Bluetooth needs Windows 11 or later (Windows 10 works with the Logi Bolt receiver)&quot;,
    macNote: &quot;The for Mac models list only macOS and iPadOS, so if you also use Windows, pick the standard version&quot;,
    boltNote: &quot;One Logi Bolt receiver pairs with up to 6 Logi Bolt products&quot;,
    vOk: (list) =&gt; `✓ Matches: ${list}`, vTight: (list) =&gt; `△ ${list} (device count is borderline)`, vNg: &quot;✕ No model fits&quot;,
    note: &quot;Results come from Logitech&apos;s official US product pages (checked October 2026). Grip comfort and speed weren&apos;t tested in hand and aren&apos;t judged.&quot;,
    conn: { bolt: &quot;Bluetooth, Logi Bolt receiver included&quot;, unifying: &quot;Bluetooth, Unifying receiver included (not Logi Bolt)&quot;, sep: &quot;Bluetooth (Logi Bolt receiver sold separately)&quot;, bt: &quot;Bluetooth (no receiver)&quot; },
    bat: (b) =&gt; (b.days ? `Battery up to ${b.days} days (maker figure; varies with use)` : `Battery up to ${b.months} months (maker figure, daily use)`),
    specW: (w) =&gt; `${w} g`, specB: (b, c) =&gt; `${b}${c ? &quot; customizable&quot; : &quot;&quot;} buttons`,
    sep: &quot;, &quot;, paren: (a, b) =&gt; `${a} (${b})`,
  },
};

const connL_ = (m, t) =&gt; (m.receiver ? t.conn[m.receiver] : m.bolt ? t.conn.sep : t.conn.bt);

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;use&quot;, type: &quot;select&quot;, label: t.use, value: &quot;office&quot;, options: M.uses.map((x) =&gt; ({ value: x, label: t[x] })) },
    { name: &quot;shape&quot;, type: &quot;select&quot;, label: t.shape, value: &quot;any&quot;, when: (s) =&gt; s.use === &quot;wrist&quot;, options: M.shapes.map((x) =&gt; ({ value: x, label: t[x] })) },
    { name: &quot;dev&quot;, type: &quot;select&quot;, label: t.dev, value: &quot;1&quot;, options: M.devs.map((n) =&gt; ({ value: String(n), label: t.devL(n) })) },
    { name: &quot;os&quot;, type: &quot;select&quot;, label: t.os, value: &quot;both&quot;, options: M.oses.map((x) =&gt; ({ value: x, label: t[x] })) },
    { name: &quot;recv&quot;, type: &quot;select&quot;, label: t.recv, value: &quot;bt&quot;, options: M.recvs.map((x) =&gt; ({ value: x, label: t[x] })) },
    { name: &quot;quiet&quot;, type: &quot;select&quot;, label: t.quiet, value: &quot;any&quot;, options: [{ value: &quot;any&quot;, label: t.qAny }, { value: &quot;yes&quot;, label: t.qYes }] },
    { name: &quot;haptic&quot;, type: &quot;select&quot;, label: t.haptic, value: &quot;any&quot;, options: [{ value: &quot;any&quot;, label: t.hAny }, { value: &quot;yes&quot;, label: t.hYes }] },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const market = lang === &quot;ja&quot; ? &quot;jp&quot; : &quot;us&quot;;
  const s = { ...v, shape: v.use === &quot;wrist&quot; ? v.shape || &quot;any&quot; : &quot;any&quot;, dev: Number(v.dev) };
  if (!M.uses.includes(s.use) || !M.shapes.includes(s.shape) || !M.devs.includes(s.dev) || !M.oses.includes(s.os) || !M.recvs.includes(s.recv)
    || ![&quot;any&quot;, &quot;yes&quot;].includes(s.quiet) || ![&quot;any&quot;, &quot;yes&quot;].includes(s.haptic)) return { status: &quot;error&quot;, lines: [] };
  const r = matchModels(M, s, market);
  const name = (id) =&gt; M.models[id][lang];
  const lines = [];
  if (s.use === &quot;carry&quot;) lines.push(t.useNote.carry(M.carryMax));
  else if (s.use === &quot;office&quot;) lines.push(t.useNote.office);
  else { for (const sh of [&quot;vertical&quot;, &quot;trackball&quot;]) if (s.shape === &quot;any&quot; || s.shape === sh) lines.push(t.useNote[sh]); lines.push(t.useNote.wristPct); }
  for (const x of r.ok) {
    const m = M.models[x.id];
    lines.push(t.row(name(x.id), m.w, t.specB(m.buttons, m.buttonsCustom), connL_(m, t), s.dev &gt;= 2 ? m.devices : null));
    if (x.tight) lines.push(t.tight(name(x.id)));
    if (m.hand) lines.push(t.hand(name(x.id)));
  }
  if (r.unconfirmed.length) lines.push(t.unconf(r.unconfirmed.map((x) =&gt; t.paren(name(x.id), x.unknown.map((k) =&gt; t.why[k]).join(t.sep))).join(t.sep)));
  if (s.haptic === &quot;yes&quot; &amp;&amp; r.ok.length) lines.push(t.hapNote);
  if (s.os === &quot;win&quot; &amp;&amp; s.recv === &quot;bt&quot; &amp;&amp; r.ok.some((x) =&gt; x.id === &quot;mm4&quot;)) lines.push(t.winNote);
  // 台数だけが足りない機種と、OS だけで外れた Mac 用モデルは理由を出す
  const only = (k) =&gt; r.all.filter((x) =&gt; x.fail.length === 1 &amp;&amp; x.fail[0] === k &amp;&amp; !x.unknown.length);
  const short = only(&quot;dev&quot;);
  if (short.length) lines.push(t.devShort(short.map((x) =&gt; t.paren(name(x.id), t.devMax(M.models[x.id].devices))).join(t.sep)));
  if (only(&quot;os&quot;).length) lines.push(t.macNote);
  if (s.recv === &quot;bolt&quot; &amp;&amp; r.ok.length) lines.push(t.boltNote);
  if (!r.ok.length) return { status: &quot;ng&quot;, verdict: t.vNg, lines, picks: [] };
  const list = r.ok.map((x) =&gt; name(x.id)).join(t.sep);
  const allTight = r.ok.every((x) =&gt; x.tight);
  const picks = Object.keys(M.products).filter((pid) =&gt; r.ok.some((x) =&gt; x.id === M.products[pid].model));
  return { status: allTight ? &quot;cond&quot; : &quot;ok&quot;, verdict: allTight ? t.vTight(list) : t.vOk(list), lines, picks };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（用途 × 形 × 台数 × OS × 接続 × 静音 × 触覚）
function presets() {
  const P = (use, shape, dev, os, recv, quiet, haptic) =&gt; ({ use, shape, dev: String(dev), os, recv, quiet, haptic });
  return [
    P(&quot;office&quot;, &quot;any&quot;, 1, &quot;both&quot;, &quot;bt&quot;, &quot;any&quot;, &quot;any&quot;),
    P(&quot;office&quot;, &quot;any&quot;, 3, &quot;both&quot;, &quot;bundled&quot;, &quot;any&quot;, &quot;any&quot;),
    P(&quot;office&quot;, &quot;any&quot;, 1, &quot;mac&quot;, &quot;bt&quot;, &quot;any&quot;, &quot;yes&quot;),
    P(&quot;office&quot;, &quot;any&quot;, 2, &quot;win&quot;, &quot;bt&quot;, &quot;yes&quot;, &quot;any&quot;),
    P(&quot;office&quot;, &quot;any&quot;, 1, &quot;win&quot;, &quot;bolt&quot;, &quot;any&quot;, &quot;any&quot;),
    P(&quot;office&quot;, &quot;any&quot;, 3, &quot;mac&quot;, &quot;bt&quot;, &quot;yes&quot;, &quot;yes&quot;),
    P(&quot;carry&quot;, &quot;any&quot;, 1, &quot;both&quot;, &quot;bt&quot;, &quot;any&quot;, &quot;any&quot;),
    P(&quot;carry&quot;, &quot;any&quot;, 3, &quot;mac&quot;, &quot;bolt&quot;, &quot;yes&quot;, &quot;any&quot;),
    P(&quot;carry&quot;, &quot;any&quot;, 1, &quot;win&quot;, &quot;bundled&quot;, &quot;any&quot;, &quot;any&quot;),
    P(&quot;wrist&quot;, &quot;vertical&quot;, 1, &quot;win&quot;, &quot;bundled&quot;, &quot;any&quot;, &quot;any&quot;),
    P(&quot;wrist&quot;, &quot;trackball&quot;, 2, &quot;both&quot;, &quot;bundled&quot;, &quot;yes&quot;, &quot;any&quot;),
    P(&quot;wrist&quot;, &quot;any&quot;, 3, &quot;both&quot;, &quot;bt&quot;, &quot;any&quot;, &quot;any&quot;),
    P(&quot;wrist&quot;, &quot;trackball&quot;, 3, &quot;win&quot;, &quot;bt&quot;, &quot;any&quot;, &quot;any&quot;),
  ];
}

// カードに出す仕様（その商品の機種の公式の値。絞り込みの条件は出さない）
function pickSpecs(id, v, M, lang) {
  const p = M.products[id];
  const m = p &amp;&amp; M.models[p.model];
  if (!m) return [];
  const t = T_[lang];
  return [t.specW(m.w), t.specB(m.buttons, m.buttonsCustom), connL_(m, t), t.bat(m.battery)];
}

// 型 G の使い方のタイル（2026-10）。1回押すと、その使い方の条件がまとめて決まる（set に無い条件は今のまま）。
// 早見表（presets）の使い方の分け方に合わせた（review/decisions.md）。ラベルは fields の選択肢の言い方をそのまま使う
function tiles(M, lang) {
  const ja = lang === &quot;ja&quot;;
  const f = Object.fromEntries(fields(M, lang).map((x) =&gt; [x.name, x]));
  const lab = (name, v) =&gt; f[name].options.find((o) =&gt; o.value === v).label;
  return [
    { id: &quot;office&quot;, label: lab(&quot;use&quot;, &quot;office&quot;), sub: lab(&quot;dev&quot;, &quot;1&quot;), set: { use: &quot;office&quot;, dev: &quot;1&quot; } },
    { id: &quot;multi&quot;, label: ja ? &quot;3台を切り替える&quot; : &quot;Switch between 3&quot;, sub: `${lab(&quot;use&quot;, &quot;office&quot;)}・${lab(&quot;dev&quot;, &quot;3&quot;)}`, set: { use: &quot;office&quot;, dev: &quot;3&quot; } },
    { id: &quot;carry&quot;, label: lab(&quot;use&quot;, &quot;carry&quot;), sub: lab(&quot;dev&quot;, &quot;1&quot;), set: { use: &quot;carry&quot;, dev: &quot;1&quot; } },
    { id: &quot;wrist&quot;, label: lab(&quot;use&quot;, &quot;wrist&quot;), sub: lab(&quot;shape&quot;, &quot;any&quot;), set: { use: &quot;wrist&quot;, shape: &quot;any&quot; } },
  ];
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;tiles&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;when-wrist-strain-is-the-concern&quot;&gt;When wrist strain is the concern&lt;/h2&gt;
&lt;p&gt;To move the whole mouse by hand, pick the MX Vertical; to roll a ball with your thumb, pick the MX Ergo S trackball. Logitech says the Vertical’s 57° angle reduces wrist pressure and the Ergo S’s 20° tilt reduces forearm muscle tension. Percentages aren’t quoted because test conditions weren’t confirmed.&lt;/p&gt;
&lt;p&gt;Per Logitech’s official pages as of October 2026, only the MX Vertical and MX Ergo S give a hand-size guide, and both say medium to large hands. Other models give none, so fit isn’t judged for them.&lt;/p&gt;
&lt;p&gt;The MX Ergo S is right-handed only. For the other models, no statement on left-handed use turned up.&lt;/p&gt;
&lt;h2 id=&quot;using-several-computers-and-a-mac&quot;&gt;Using several computers and a Mac&lt;/h2&gt;
&lt;p&gt;The MX Master 4, MX Anywhere 3S and MX Vertical each pair with up to 3 devices. For three devices that’s exactly their maximum, so it’s borderline. The MX Ergo S pairs with up to 2 devices.&lt;/p&gt;
&lt;p&gt;Per Logitech’s official pages, the MX Master 3S Bluetooth Edition and MX Master 4 for Mac listed no pairing count on the pages checked. They’re left out when you pick two or more devices.&lt;/p&gt;
&lt;p&gt;The Mac versions list only macOS and iPadOS. If you also use Windows, pick the standard version, which supports macOS too.&lt;/p&gt;
&lt;p&gt;The MX Master 4 for Mac and MX Anywhere 3S for Mac picks are US listings. As of October 2026, Logitech’s Japanese site has no MX Master 4 for Mac page.&lt;/p&gt;
&lt;h2 id=&quot;mx-master-4-vs-3s-and-the-receiver&quot;&gt;MX Master 4 vs 3S, and the receiver&lt;/h2&gt;
&lt;p&gt;This compares the MX Master 4 with the MX Master 3S Bluetooth Edition. The standard 3S edition comes with a Logi Bolt receiver, but its availability wasn’t confirmed.&lt;/p&gt;
&lt;p&gt;Per Logitech’s official pages, the MX Master 4 has haptic feedback and a Logi Bolt receiver in the box, which the 3S Bluetooth Edition lacks. It has 8 buttons to the 3S’s 7 and weighs 150 g to the 3S’s 141 g.&lt;/p&gt;
&lt;p&gt;Haptic feedback is only on the MX Master 4 and its Mac version. Per the official page, it vibrates the mouse for specific actions, shortcuts and notifications, and it needs the Logi Options+ app.&lt;/p&gt;
&lt;p&gt;If you don’t need the vibration cues or the receiver, the 3S Bluetooth Edition is lighter. Comfort isn’t judged.&lt;/p&gt;
&lt;p&gt;A Logi Bolt receiver comes with the MX Master 4 and MX Ergo S. The MX Vertical includes a Unifying receiver, Logitech’s older receiver type. The MX Anywhere 3S and Mac versions take a Logi Bolt receiver sold separately, and the MX Master 3S Bluetooth Edition has none.&lt;/p&gt;
&lt;p&gt;Logi Bolt is built for reliable connections where Wi-Fi and other wireless devices crowd the air. The MX Master 4 uses Bluetooth only on Windows 11 or later, so on Windows 10 connect it with the Logi Bolt receiver. If you’d rather skip the receiver, use Bluetooth.&lt;/p&gt;
&lt;p&gt;One Logi Bolt receiver pairs with up to 6 Logi Bolt products. The MX Vertical uses Unifying, not Logi Bolt, so a Bolt receiver can’t connect it.&lt;/p&gt;
&lt;h2 id=&quot;main-specs-compared&quot;&gt;Main specs compared&lt;/h2&gt;
&lt;p&gt;DPI is the cursor speed setting, in dots per inch.&lt;/p&gt;
&lt;p&gt;Per Logitech’s official pages, battery life is up to 70 days for the MX Master models and MX Anywhere 3S. The MX Ergo S is rated up to 120 days and the MX Vertical up to 4 months. These maximums vary with use, so they aren’t compared.&lt;/p&gt;
&lt;p&gt;The MX Ergo S weight below is without its metal plate. With the plate it’s 259 g.&lt;/p&gt;



























































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Model&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Weight&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Buttons (total)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Max devices&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Battery (maker’s maximum)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Quick charge (maker’s figure)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;DPI&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;MX Master 4&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;150 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 devices&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;up to 70 days&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 hours from a 1-minute charge&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;200–8,000 DPI&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;MX Master 3S Bluetooth Edition&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;141 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;7&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not found on the official page&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;up to 70 days&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 hours from a 1-minute charge&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;200–8,000 DPI&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;MX Anywhere 3S&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;99 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;6&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 devices&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;up to 70 days&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 hours from a 1-minute charge&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;200–8,000 DPI&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;MX Vertical&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;125 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Total not found (4 customizable)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 devices&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;up to 4 months&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 hours from a 1-minute charge&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;400–4,000 DPI&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;MX Ergo S&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;164 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 devices&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;up to 120 days&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;24 hours from a 1-minute charge&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;512–2,048 DPI&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Every current MX mouse lists quiet clicks except the MX Vertical and MX Master 4 for Mac, which don’t say.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-condition&quot;&gt;Picks by condition&lt;/h2&gt;
&lt;p&gt;One pick per condition, from Amazon.com:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sold new by Amazon.com&lt;/li&gt;
&lt;li&gt;At least 100 ratings and 4 stars or more&lt;/li&gt;
&lt;li&gt;A model that matches Logitech’s official product&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Prices vary, so check them on the retailer’s page.&lt;/p&gt;
&lt;h3 id=&quot;with-a-receiver-in-the-box-for-office-work-and-programming&quot;&gt;With a receiver in the box, for office work and programming&lt;/h3&gt;
&lt;p&gt;※ The Pale Gray version is a separate listing (B0FC5V3YVY, sold by a third party). Both pages show the same 2,118 ratings, so the count is pooled across colors.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Master 4&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61z3ENJubZL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Master 4&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FR8LPP2K?q=MX+Master+4&amp;amp;us=B0FC5SJNQX&amp;amp;l=en&quot; aria-label=&quot;View MX Master 4 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;without-haptic-feedback-for-office-work-and-programming&quot;&gt;Without haptic feedback, for office work and programming&lt;/h3&gt;
&lt;p&gt;It’s the previous generation, with no receiver in the box, and Logi Bolt support wasn’t found on the official page.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Master 3S Bluetooth Edition&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61oEwT0WpSL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Master 3S Bluetooth Edition&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FB21526X?q=MX+Master+3S+Bluetooth+Edition&amp;amp;us=B0FB21526X&amp;amp;l=en&quot; aria-label=&quot;View MX Master 3S Bluetooth Edition on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Whether the rating count is shared with other models on the listing wasn&amp;#39;t checked.&lt;/p&gt;
&lt;h3 id=&quot;carrying-this-articles-rule&quot;&gt;Carrying (this article’s rule&lt;/h3&gt;
&lt;p&gt;At 99 g, it clears 120 g by 21 g.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Anywhere 3S&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/51PZmLp6u+L._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Anywhere 3S&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C65MQZ65?q=MX+Anywhere+3S&amp;amp;us=B0BPY4ZQXG&amp;amp;l=en&quot; aria-label=&quot;View MX Anywhere 3S on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Rose and Pale Grey versions are separate listings (for example B0BPY51TZ3) showing the same 2,312 ratings, so the count is pooled across colors.&lt;/p&gt;
&lt;h3 id=&quot;for-mac-users-office-work-and-programming&quot;&gt;For Mac users, office work and programming&lt;/h3&gt;
&lt;p&gt;※ A White Silver listing (B0FC5C7VCJ, sold by Amazon) shows the same 578 ratings, so the count is pooled across colors. Logitech US lists only Space Black for this model.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Master 4 for Mac&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61-t8ez-qtL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Master 4 for Mac&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FC5X4F8G?q=MX+Master+4+for+Mac&amp;amp;us=B0FC5X4F8G&amp;amp;l=en&quot; aria-label=&quot;View MX Master 4 for Mac on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;for-mac-users-carrying&quot;&gt;For Mac users, carrying&lt;/h3&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Anywhere 3S for Mac&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Hotz8r3bL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Anywhere 3S for Mac&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CVFJ1YSX?q=MX+Anywhere+3S+for+Mac&amp;amp;us=B0CVFJ1YSX&amp;amp;l=en&quot; aria-label=&quot;View MX Anywhere 3S for Mac on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;vertical-mouse-whose-57-angle-logitech-says-reduces-wrist-pressure&quot;&gt;Vertical mouse, whose 57° angle Logitech says reduces wrist pressure&lt;/h3&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Vertical&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61iiZ-gDYEL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Vertical&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B07GPZBVZT?q=MX+Vertical&amp;amp;us=B07FNJB8TT&amp;amp;l=en&quot; aria-label=&quot;View MX Vertical on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;thumb-operated-trackball-whose-20-tilt-logitech-says-reduces-forearm-tension&quot;&gt;Thumb-operated trackball, whose 20° tilt Logitech says reduces forearm tension&lt;/h3&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MX Ergo S&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Xsc-lNsXL._AC_SX679_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MX Ergo S&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0D9Y1SNQT?q=MX+Ergo+S&amp;amp;us=B0D6PTR6MP&amp;amp;l=en&quot; aria-label=&quot;View MX Ergo S on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;which-mx-mouse-is-best-for-office-work-and-programming&quot;&gt;Which MX mouse is best for office work and programming?&lt;/h3&gt;
&lt;p&gt;Office work and programming need a thumb wheel. The MX Master 4, MX Master 4 for Mac and MX Master 3S Bluetooth Edition have one.&lt;/p&gt;
&lt;p&gt;If you want a USB receiver in the box and haptic feedback (vibration for chosen actions), pick the MX Master 4.&lt;/p&gt;
&lt;h3 id=&quot;mx-anywhere-3s-or-an-mx-master-for-carrying&quot;&gt;MX Anywhere 3S or an MX Master for carrying?&lt;/h3&gt;
&lt;p&gt;Carrying means 120 g or less, and the only current MX mouse that fits is the MX Anywhere 3S at 99 g. The Mac version weighs the same.&lt;/p&gt;
&lt;h3 id=&quot;vertical-mouse-or-trackball-for-wrist-strain&quot;&gt;Vertical mouse or trackball for wrist strain?&lt;/h3&gt;
&lt;p&gt;To move the whole mouse by hand, pick the MX Vertical; to roll a ball with your thumb, pick the MX Ergo S trackball. Logitech says the Vertical’s 57° angle reduces wrist pressure and the Ergo S’s 20° tilt reduces forearm muscle tension.&lt;/p&gt;
&lt;p&gt;Percentages aren’t quoted because test conditions weren’t confirmed.&lt;/p&gt;
&lt;h3 id=&quot;which-mx-mouse-works-best-across-several-computers&quot;&gt;Which MX mouse works best across several computers?&lt;/h3&gt;
&lt;p&gt;The MX Master 4, MX Anywhere 3S and MX Vertical each pair with up to 3 devices. For three devices that’s exactly their maximum, so it’s borderline.&lt;/p&gt;
&lt;p&gt;The MX Ergo S pairs with up to 2 devices. Per Logitech’s official pages as of October 2026, the MX Master 3S Bluetooth Edition and MX Master 4 for Mac listed no pairing count on the pages checked.&lt;/p&gt;
&lt;p&gt;They’re left out when you pick two or more devices.&lt;/p&gt;
&lt;h3 id=&quot;how-does-the-mx-master-4-differ-from-the-mx-master-3s-and-is-the-3s-still-sold&quot;&gt;How does the MX Master 4 differ from the MX Master 3S, and is the 3S still sold?&lt;/h3&gt;
&lt;p&gt;Yes, Amazon.com still lists the MX Master 3S Bluetooth Edition as new stock (checked October 2026). Per Logitech’s official pages as of October 2026, the MX Master 4 has haptic feedback and a Logi Bolt receiver in the box, which the 3S Bluetooth Edition lacks.&lt;/p&gt;
&lt;p&gt;It has 8 buttons to the 3S’s 7 and weighs 150 g to the 3S’s 141 g. The standard 3S edition comes with a Logi Bolt receiver, but its availability wasn’t confirmed, and the Bluetooth Edition is the 3S pick here.&lt;/p&gt;
&lt;p&gt;If you want a receiver in the box, pick the MX Master 4.&lt;/p&gt;
&lt;h3 id=&quot;do-mx-mice-work-on-a-glass-desk-and-is-the-dpi-cursor-speed-setting-the-same-on-all-of-them&quot;&gt;Do MX mice work on a glass desk, and is the DPI (cursor speed setting) the same on all of them?&lt;/h3&gt;
&lt;p&gt;Logitech says the MX Master 4, MX Master 3S Bluetooth Edition and MX Anywhere 3S track on glass. The minimum glass thickness is 4 mm for the MX Master 4 and, on the US page, for the MX Master 3S Bluetooth Edition.&lt;/p&gt;
&lt;p&gt;No thickness figure turned up for the MX Anywhere 3S. Most MX mice run 200–8,000 DPI, while the MX Vertical and MX Ergo S top out lower.&lt;/p&gt;
&lt;p&gt;The spec table’s DPI column lists each model. Whether that’s enough depends on your monitor and taste, so no cutoff is set.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;:&lt;/p&gt;&lt;p&gt;Sources: &lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4.910-007558&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;MX Master 4&lt;/a&gt; and &lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-3s.910-007500&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;MX Master 3S&lt;/a&gt; ／ &lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;MX Anywhere 3S&lt;/a&gt;, &lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;MX Vertical&lt;/a&gt; and &lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;MX Ergo S&lt;/a&gt; ／ &lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;MX Master 4 for Mac (Logitech US)&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Covers the MX mice listed on Logitech’s official US and Japanese stores on 2026-10-08: MX Master 4, MX Master 4 for Mac (US only), MX Master 3S Bluetooth Edition, MX Anywhere 3S and its for Mac version, MX Ergo S and MX Vertical. Specs are from each official product page; none were tested in hand.&lt;/li&gt;
&lt;li&gt;Office and programming = models with a thumb wheel for horizontal scrolling (this article’s condition). Carrying = 120 g or less (this article’s cutoff; the MX Anywhere 3S weighs 99 g and the next lightest, the MX Vertical, 125 g). Wrist strain = the shapes Logitech describes as easing strain: vertical (MX Vertical, 57 degrees) and trackball (MX Ergo S, 0–20° tilt). The maker’s strain-reduction percentages aren’t used because their test conditions weren’t confirmed.&lt;/li&gt;
&lt;li&gt;Devices = the official maximum pairing count (MX Master 4 3, MX Anywhere 3S 3, MX Vertical 3, MX Ergo S 2) is at least the number you use. The MX Master 3S Bluetooth Edition and MX Master 4 for Mac didn’t state a count and are left out for two or more. A count equal to the maximum (headroom under 10% of your count) is marked borderline.&lt;/li&gt;
&lt;li&gt;Receiver = one in the box (Logi Bolt for the MX Master 4 and MX Ergo S, Unifying for the MX Vertical). Use with Logi Bolt = models stated to support Logi Bolt, including sold-separately receivers (the MX Vertical isn’t Logi Bolt; the MX Master 3S Bluetooth Edition doesn’t say and is left out). One Logi Bolt receiver pairs with up to 6 Logi Bolt products.&lt;/li&gt;
&lt;li&gt;Quiet clicks, haptics and OS support follow the official pages. Specs that couldn’t be confirmed (quiet clicks on the MX Vertical and MX Master 4 for Mac) aren’t treated as missing; those models drop out only when you require the feature. The for Mac models list only macOS and iPadOS, so they drop out for Windows or both. Hand-size guidance exists only for the MX Vertical and MX Ergo S (medium to large); fit isn’t judged for the others.&lt;/li&gt;
&lt;li&gt;Battery figures are Logitech’s maximums (MX Master 4 70 days, MX Anywhere 3S 70 days, MX Ergo S 120 days, MX Vertical up to 4 months) and vary with use, so they aren’t compared. Picks are new listings sold by Amazon with 100+ ratings and 4+ stars whose model matches the official product, cheapest including shipping.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;






























































































































































































































































































































































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 height&lt;/td&gt;&lt;td&gt;128.15 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 width&lt;/td&gt;&lt;td&gt;88.35 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 depth&lt;/td&gt;&lt;td&gt;50.8 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 weight&lt;/td&gt;&lt;td&gt;150 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition height&lt;/td&gt;&lt;td&gt;124.9 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition width&lt;/td&gt;&lt;td&gt;84.3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition depth&lt;/td&gt;&lt;td&gt;51 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition weight&lt;/td&gt;&lt;td&gt;141 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S height&lt;/td&gt;&lt;td&gt;100.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S width&lt;/td&gt;&lt;td&gt;65 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S depth&lt;/td&gt;&lt;td&gt;34.4 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S weight&lt;/td&gt;&lt;td&gt;99 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac height&lt;/td&gt;&lt;td&gt;100.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac width&lt;/td&gt;&lt;td&gt;65 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac depth&lt;/td&gt;&lt;td&gt;34.4 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac weight&lt;/td&gt;&lt;td&gt;99 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical height&lt;/td&gt;&lt;td&gt;120 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical width&lt;/td&gt;&lt;td&gt;79 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical depth&lt;/td&gt;&lt;td&gt;78.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical weight&lt;/td&gt;&lt;td&gt;125 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 for Mac height&lt;/td&gt;&lt;td&gt;128.15 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; Logitech US official MX Master 4 for Mac page (specs / features): Height 5.05 in&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 for Mac width&lt;/td&gt;&lt;td&gt;88.35 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; Logitech US official MX Master 4 for Mac page (specs / features): Width 3.48 in&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 for Mac depth&lt;/td&gt;&lt;td&gt;50.8 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; Logitech US official MX Master 4 for Mac page (specs / features): Depth 2 in (50&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 for Mac weight&lt;/td&gt;&lt;td&gt;150 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; Logitech US official MX Master 4 for Mac page (specs / features): Weight 5.29 oz&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S height&lt;/td&gt;&lt;td&gt;132.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S width&lt;/td&gt;&lt;td&gt;99.8 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S depth&lt;/td&gt;&lt;td&gt;51.4 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S weight (without metal plate or receiver)&lt;/td&gt;&lt;td&gt;164 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S weight (with metal plate, without receiver)&lt;/td&gt;&lt;td&gt;259 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 sensor minimum DPI&lt;/td&gt;&lt;td&gt;200 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 sensor maximum DPI&lt;/td&gt;&lt;td&gt;8000 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 for Mac sensor minimum DPI&lt;/td&gt;&lt;td&gt;200 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; Logitech US official MX Master 4 for Mac page (specs / features): 200-8000 (incr&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 for Mac sensor maximum DPI&lt;/td&gt;&lt;td&gt;8000 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; Logitech US official MX Master 4 for Mac page (specs / features): 200-8000 (incr&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition sensor minimum DPI&lt;/td&gt;&lt;td&gt;200 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition sensor maximum DPI&lt;/td&gt;&lt;td&gt;8000 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S sensor minimum DPI&lt;/td&gt;&lt;td&gt;200 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S sensor maximum DPI&lt;/td&gt;&lt;td&gt;8000 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac sensor minimum DPI&lt;/td&gt;&lt;td&gt;200 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac sensor maximum DPI&lt;/td&gt;&lt;td&gt;8000 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S sensor minimum DPI&lt;/td&gt;&lt;td&gt;512 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S sensor maximum DPI&lt;/td&gt;&lt;td&gt;2048 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical sensor minimum DPI&lt;/td&gt;&lt;td&gt;400 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical sensor maximum DPI&lt;/td&gt;&lt;td&gt;4000 DPI&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 number of buttons&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 for Mac number of buttons&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; Logitech US official MX Master 4 for Mac page (specs / features): Number of Butt&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition number of buttons&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S number of buttons&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac number of buttons&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S number of buttons&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S number of customizable buttons&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical number of customizable buttons&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 scroll wheels&lt;/td&gt;&lt;td&gt;MagSpeed wheel with SmartShift; thumb wheel (horizontal scroll)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 for Mac scroll wheels&lt;/td&gt;&lt;td&gt;MagSpeed wheel with SmartShift; thumb wheel&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; Logitech US official MX Master 4 for Mac page (specs / features): Scroll Wheel:&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition scroll wheels&lt;/td&gt;&lt;td&gt;Scroll wheel with SmartShift (MagSpeed electromagnetic); thumb wheel&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S scroll wheel&lt;/td&gt;&lt;td&gt;MagSpeed scroll wheel with auto-shift; no thumb wheel (horizontal scroll: hold the side button and turn the wheel)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac scroll wheel&lt;/td&gt;&lt;td&gt;MagSpeed scroll wheel with auto-shift; no thumb wheel (horizontal scroll: hold the side button and turn the wheel)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S wheel and trackball&lt;/td&gt;&lt;td&gt;Scroll wheel with left/right tilt; thumb-operated trackball&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical scroll wheel&lt;/td&gt;&lt;td&gt;Precision wheel&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 number of devices that can be paired&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S number of devices that can be paired&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac number of devices that can be paired&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S number of devices that can be paired&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical number of devices that can be paired&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 battery life on a full charge (up to)&lt;/td&gt;&lt;td&gt;70 days&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 for Mac battery life on a full charge (up to)&lt;/td&gt;&lt;td&gt;70 days&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; Logitech US official MX Master 4 for Mac page (specs / features): Battery life:&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition battery life on a full charge&lt;/td&gt;&lt;td&gt;70 days&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S battery life on a full charge (up to)&lt;/td&gt;&lt;td&gt;70 days&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac battery life on a full charge (up to)&lt;/td&gt;&lt;td&gt;70 days&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S battery life on a full charge (up to)&lt;/td&gt;&lt;td&gt;120 days&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical battery life&lt;/td&gt;&lt;td&gt;up to 4 months on a full charge with daily use; 3 hours from a 1-minute charge&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 quick charge&lt;/td&gt;&lt;td&gt;3 hours of use from a 1-minute charge (USB-C; cable not included)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 connection&lt;/td&gt;&lt;td&gt;Bluetooth Low Energy 5.1, or the USB-C Logi Bolt receiver in the box (also works in USB-A ports)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 for Mac connection&lt;/td&gt;&lt;td&gt;Bluetooth Low Energy 5.1. Logi Bolt receiver supported but not included&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; Logitech US official MX Master 4 for Mac page (specs / features): Package: Mouse&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition connection&lt;/td&gt;&lt;td&gt;Bluetooth Low Energy (Bluetooth Edition, no receiver). The standard edition includes a Logi Bolt receiver&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S connection&lt;/td&gt;&lt;td&gt;Bluetooth Low Energy. Works with the Logi Bolt receiver (sold separately, not in the box)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac connection&lt;/td&gt;&lt;td&gt;Bluetooth Low Energy. Works with the Logi Bolt receiver (sold separately)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S connection&lt;/td&gt;&lt;td&gt;Bluetooth Low Energy, or the Logi Bolt USB receiver in the box&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical connection&lt;/td&gt;&lt;td&gt;Bluetooth Low Energy 4.2, or the Unifying USB receiver in the box (not Logi Bolt)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 supported OS&lt;/td&gt;&lt;td&gt;Bluetooth: Windows 11 or later, macOS 13 or later, Linux, ChromeOS, iPadOS 15 or later, Android 12 or later. Logi Bolt: Windows 10/11 or later, macOS 13 or later. Logi Options+ app is for Windows and macOS&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 for Mac supported OS&lt;/td&gt;&lt;td&gt;Bluetooth: macOS 13 or later, iPadOS 15 or later&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; Logitech US official MX Master 4 for Mac page (specs / features): Bluetooth: Req&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition supported OS&lt;/td&gt;&lt;td&gt;Windows 10/11 or later, macOS 10.15 or later, Linux, ChromeOS, iPadOS 14 or later, Android 8.0 or later (Bluetooth). Logi Options+ is for Windows and macOS&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S supported OS&lt;/td&gt;&lt;td&gt;Windows 10/11 or later, macOS 10.15 or later, Linux, ChromeOS, iPadOS 14 or later, Android 8.0 or later&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac supported OS&lt;/td&gt;&lt;td&gt;macOS 10.15 or later, iPadOS 14 or later&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S supported OS&lt;/td&gt;&lt;td&gt;Windows 10/11 or later, macOS 12 or later, Linux, ChromeOS. Over Bluetooth also iPadOS 15 or later and Android 12 or later&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical supported OS&lt;/td&gt;&lt;td&gt;Windows 10/11 or later, macOS 10.15 or later, ChromeOS, Linux. Over Bluetooth also iPadOS 13.4 or later (AssistiveTouch required)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 haptic feedback&lt;/td&gt;&lt;td&gt;Yes. Customizable haptic feedback on specific actions, shortcuts and notifications (needs Logi Options+; recent Windows and macOS only)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 for Mac haptic feedback&lt;/td&gt;&lt;td&gt;Yes (same wording on the product page)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; Logitech US official MX Master 4 for Mac page (specs / features): Haptic Sense P&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 quiet clicks&lt;/td&gt;&lt;td&gt;Yes. 90% lower sound output on left/right clicks compared with MX Master 3 (maker figure)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition quiet clicks&lt;/td&gt;&lt;td&gt;Yes (Quiet Clicks). 90% less sound power level on left/right click than MX Master 3, measured at 1 m (maker figure)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S quiet clicks&lt;/td&gt;&lt;td&gt;Yes (quieter clicks than MX Anywhere 3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac quiet clicks&lt;/td&gt;&lt;td&gt;Yes (quieter clicks than MX Anywhere 3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S quiet clicks&lt;/td&gt;&lt;td&gt;Yes (quiet clicks)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 tracking on glass&lt;/td&gt;&lt;td&gt;Tracks on glass (4 mm minimum glass thickness)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition tracking on glass&lt;/td&gt;&lt;td&gt;Tracks virtually anywhere, even on glass (4 mm minimum glass thickness)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S tracking on glass&lt;/td&gt;&lt;td&gt;Tracks on glass (minimum glass thickness not captured)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s.910-006941&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Anywhere 3S for Mac tracking on glass&lt;/td&gt;&lt;td&gt;Tracks on glass (minimum glass thickness not captured)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-anywhere-3s-for-mac.910-006955&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S left-handed version&lt;/td&gt;&lt;td&gt;No. Currently made for right-handed use only&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S hand size&lt;/td&gt;&lt;td&gt;Fits medium to large hands comfortably&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical hand size&lt;/td&gt;&lt;td&gt;Best for medium to large hands&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical vertical angle&lt;/td&gt;&lt;td&gt;57 degrees&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Ergo S tilt and the maker’s wrist/forearm statement&lt;/td&gt;&lt;td&gt;Adjustable hinge tilts the trackball between 0 and 20 degrees; the maker says the 20-degree tilt reduces forearm muscle strain&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-ergo-s-wireless-trackball-mouse&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 shape statement&lt;/td&gt;&lt;td&gt;The maker says the tilt angle is optimized for a natural posture (no angle figure captured)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Vertical left-handed version&lt;/td&gt;&lt;td&gt;not found on the product page&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-vertical-ergonomic-mouse.910-005452&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;number of Logi Bolt mice/keyboards one Logi Bolt receiver can pair&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://hub.sync.logitech.com/mx-anywhere-3/post/logi-bolt-mice-keyboards-and-combos-connection-and-security-information-JNL4B0y7w0M8TGV&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hub.sync.logitech.com&lt;/a&gt; Users can pair up to six Logi Bolt wireless mice and keyboards to a single Logi&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Logi Bolt connection security (maker statement)&lt;/td&gt;&lt;td&gt;Bluetooth Security Mode 1, Level 4 (Secure Connections Only), described by Logitech as FIPS compliant&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://hub.sync.logitech.com/mx-anywhere-3/post/logi-bolt-mice-keyboards-and-combos-connection-and-security-information-JNL4B0y7w0M8TGV&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hub.sync.logitech.com&lt;/a&gt; Bluetooth security mode 1, level 4 (also known as Secure Connections Only mode),&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;who a Logi Bolt receiver connects to&lt;/td&gt;&lt;td&gt;A Logi Bolt receiver emits an encrypted signal and connects only with Logi Bolt products; it cannot be paired with non-Logi Bolt devices&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://hub.sync.logitech.com/mx-anywhere-3/post/logi-bolt-mice-keyboards-and-combos-connection-and-security-information-JNL4B0y7w0M8TGV&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hub.sync.logitech.com&lt;/a&gt; A Logi Bolt receiver is emitting an encrypted signal that only connects with Log&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Logi Bolt wireless range (maker figure)&lt;/td&gt;&lt;td&gt;10 m&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/business/work-setups/logi-bolt-wireless-technology.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; up to 10 meters wireless range&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Logi Bolt and radio interference (maker statement)&lt;/td&gt;&lt;td&gt;Logitech says it is engineered for reliable connections even in wireless environments congested with interference from Wi-Fi access points or surrounding wireless devices&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logitech.com/en-us/business/work-setups/logi-bolt-wireless-technology.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logitech.com&lt;/a&gt; engineered for reliable connections, even in wireless environments congested wit&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 4 for Mac on Logitech’s Japanese site&lt;/td&gt;&lt;td&gt;Not found on Logitech’s Japanese site (the product page URL returns 404)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-4-mac.910-007575&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MX Master 3S Bluetooth Edition availability on Logitech’s Japanese site&lt;/td&gt;&lt;td&gt;The product page is on Logitech’s Japanese site and shows it in stock&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.logicool.co.jp/ja-jp/shop/p/mx-master-3s&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;logicool.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Find the MX mouse that fits your setup: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result and a matching product for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;










































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Office &amp;amp; programming, 1 device, Windows and Mac, Bluetooth is fine, Quiet clicks optional, Haptics optional&lt;/td&gt;&lt;td&gt;✓ Matches: MX Master 4, MX Master 3S Bluetooth Edition. Office and programming here means a thumb wheel for horizontal scrolling (this article’s condition). MX Master 4: 150 g, 8 buttons, Bluetooth, Logi Bolt receiver included. MX Master 3S Bluetooth Edition: 141 g, 7 buttons, Bluetooth (no receiver). The for Mac models list only macOS and iPadOS, so if you also use Windows, pick the standard version&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/?mx-mouse-finder-use=office&amp;amp;mx-mouse-finder-dev=1&amp;amp;mx-mouse-finder-os=both&amp;amp;mx-mouse-finder-recv=bt&amp;amp;mx-mouse-finder-quiet=any&amp;amp;mx-mouse-finder-haptic=any#mx-mouse-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Office &amp;amp; programming, 3 devices, Windows and Mac, Want a USB receiver, Quiet clicks optional, Haptics optional&lt;/td&gt;&lt;td&gt;△ MX Master 4 (device count is borderline). Office and programming here means a thumb wheel for horizontal scrolling (this article’s condition). MX Master 4: 150 g, 8 buttons, Bluetooth, Logi Bolt receiver included, up to 3 devices. Your device count is exactly the MX Master 4’s maximum, so it’s borderline&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/?mx-mouse-finder-use=office&amp;amp;mx-mouse-finder-dev=3&amp;amp;mx-mouse-finder-os=both&amp;amp;mx-mouse-finder-recv=bundled&amp;amp;mx-mouse-finder-quiet=any&amp;amp;mx-mouse-finder-haptic=any#mx-mouse-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Office &amp;amp; programming, 1 device, Mac, Bluetooth is fine, Quiet clicks optional, Want haptic feedback&lt;/td&gt;&lt;td&gt;✓ Matches: MX Master 4, MX Master 4 for Mac. Office and programming here means a thumb wheel for horizontal scrolling (this article’s condition). MX Master 4: 150 g, 8 buttons, Bluetooth, Logi Bolt receiver included. MX Master 4 for Mac: 150 g, 8 buttons, Bluetooth (Logi Bolt receiver sold separately). Haptic feedback needs Logi Options+ (recent Windows and macOS only)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/?mx-mouse-finder-use=office&amp;amp;mx-mouse-finder-dev=1&amp;amp;mx-mouse-finder-os=mac&amp;amp;mx-mouse-finder-recv=bt&amp;amp;mx-mouse-finder-quiet=any&amp;amp;mx-mouse-finder-haptic=yes#mx-mouse-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Office &amp;amp; programming, 2 devices, Windows, Bluetooth is fine, Want quiet clicks, Haptics optional&lt;/td&gt;&lt;td&gt;✓ Matches: MX Master 4. Office and programming here means a thumb wheel for horizontal scrolling (this article’s condition). MX Master 4: 150 g, 8 buttons, Bluetooth, Logi Bolt receiver included, up to 3 devices. Left out because the official page didn’t state it: MX Master 3S Bluetooth Edition (device count). Using the MX Master 4 over Bluetooth needs Windows 11 or later (Windows 10 works with the Logi Bolt receiver)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/?mx-mouse-finder-use=office&amp;amp;mx-mouse-finder-dev=2&amp;amp;mx-mouse-finder-os=win&amp;amp;mx-mouse-finder-recv=bt&amp;amp;mx-mouse-finder-quiet=yes&amp;amp;mx-mouse-finder-haptic=any#mx-mouse-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Office &amp;amp; programming, 1 device, Windows, Use with Logi Bolt, Quiet clicks optional, Haptics optional&lt;/td&gt;&lt;td&gt;✓ Matches: MX Master 4. Office and programming here means a thumb wheel for horizontal scrolling (this article’s condition). MX Master 4: 150 g, 8 buttons, Bluetooth, Logi Bolt receiver included. Left out because the official page didn’t state it: MX Master 3S Bluetooth Edition (Logi Bolt support). The for Mac models list only macOS and iPadOS, so if you also use Windows, pick the standard version. One Logi Bolt receiver pairs with up to 6 Logi Bolt products&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/?mx-mouse-finder-use=office&amp;amp;mx-mouse-finder-dev=1&amp;amp;mx-mouse-finder-os=win&amp;amp;mx-mouse-finder-recv=bolt&amp;amp;mx-mouse-finder-quiet=any&amp;amp;mx-mouse-finder-haptic=any#mx-mouse-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Office &amp;amp; programming, 3 devices, Mac, Bluetooth is fine, Want quiet clicks, Want haptic feedback&lt;/td&gt;&lt;td&gt;△ MX Master 4 (device count is borderline). Office and programming here means a thumb wheel for horizontal scrolling (this article’s condition). MX Master 4: 150 g, 8 buttons, Bluetooth, Logi Bolt receiver included, up to 3 devices. Your device count is exactly the MX Master 4’s maximum, so it’s borderline. Left out because the official page didn’t state it: MX Master 4 for Mac (device count, quiet clicks). Haptic feedback needs Logi Options+ (recent Windows and macOS only)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/?mx-mouse-finder-use=office&amp;amp;mx-mouse-finder-dev=3&amp;amp;mx-mouse-finder-os=mac&amp;amp;mx-mouse-finder-recv=bt&amp;amp;mx-mouse-finder-quiet=yes&amp;amp;mx-mouse-finder-haptic=yes#mx-mouse-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Carrying, 1 device, Windows and Mac, Bluetooth is fine, Quiet clicks optional, Haptics optional&lt;/td&gt;&lt;td&gt;✓ Matches: MX Anywhere 3S. Carrying here means 120 g or less (this article’s cutoff). MX Anywhere 3S: 99 g, 6 buttons, Bluetooth (Logi Bolt receiver sold separately). The for Mac models list only macOS and iPadOS, so if you also use Windows, pick the standard version&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/?mx-mouse-finder-use=carry&amp;amp;mx-mouse-finder-dev=1&amp;amp;mx-mouse-finder-os=both&amp;amp;mx-mouse-finder-recv=bt&amp;amp;mx-mouse-finder-quiet=any&amp;amp;mx-mouse-finder-haptic=any#mx-mouse-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Carrying, 3 devices, Mac, Use with Logi Bolt, Want quiet clicks, Haptics optional&lt;/td&gt;&lt;td&gt;△ MX Anywhere 3S, MX Anywhere 3S for Mac (device count is borderline). Carrying here means 120 g or less (this article’s cutoff). MX Anywhere 3S: 99 g, 6 buttons, Bluetooth (Logi Bolt receiver sold separately), up to 3 devices. Your device count is exactly the MX Anywhere 3S’s maximum, so it’s borderline. MX Anywhere 3S for Mac: 99 g, 6 buttons, Bluetooth (Logi Bolt receiver sold separately), up to 3 devices. Your device count is exactly the MX Anywhere 3S for Mac’s maximum, so it’s borderline. One Logi Bolt receiver pairs with up to 6 Logi Bolt products&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/?mx-mouse-finder-use=carry&amp;amp;mx-mouse-finder-dev=3&amp;amp;mx-mouse-finder-os=mac&amp;amp;mx-mouse-finder-recv=bolt&amp;amp;mx-mouse-finder-quiet=yes&amp;amp;mx-mouse-finder-haptic=any#mx-mouse-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Carrying, 1 device, Windows, Want a USB receiver, Quiet clicks optional, Haptics optional&lt;/td&gt;&lt;td&gt;✕ No model fits. Carrying here means 120 g or less (this article’s cutoff)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/?mx-mouse-finder-use=carry&amp;amp;mx-mouse-finder-dev=1&amp;amp;mx-mouse-finder-os=win&amp;amp;mx-mouse-finder-recv=bundled&amp;amp;mx-mouse-finder-quiet=any&amp;amp;mx-mouse-finder-haptic=any#mx-mouse-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ease wrist strain, Vertical, 1 device, Windows, Want a USB receiver, Quiet clicks optional, Haptics optional&lt;/td&gt;&lt;td&gt;✓ Matches: MX Vertical. Logitech says the MX Vertical’s 57° vertical angle reduces wrist pressure. The maker’s percentages aren’t quoted because their test conditions weren’t confirmed. MX Vertical: 125 g, 4 customizable buttons, Bluetooth, Unifying receiver included (not Logi Bolt). Logitech rates the MX Vertical for medium to large hands&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/?mx-mouse-finder-use=wrist&amp;amp;mx-mouse-finder-shape=vertical&amp;amp;mx-mouse-finder-dev=1&amp;amp;mx-mouse-finder-os=win&amp;amp;mx-mouse-finder-recv=bundled&amp;amp;mx-mouse-finder-quiet=any&amp;amp;mx-mouse-finder-haptic=any#mx-mouse-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ease wrist strain, Trackball, 2 devices, Windows and Mac, Want a USB receiver, Want quiet clicks, Haptics optional&lt;/td&gt;&lt;td&gt;△ MX Ergo S (device count is borderline). Logitech says the MX Ergo S’s 20° tilt reduces forearm muscle strain. The maker’s percentages aren’t quoted because their test conditions weren’t confirmed. MX Ergo S: 164 g, 8 buttons, Bluetooth, Logi Bolt receiver included, up to 2 devices. Your device count is exactly the MX Ergo S’s maximum, so it’s borderline. Logitech rates the MX Ergo S for medium to large hands&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/?mx-mouse-finder-use=wrist&amp;amp;mx-mouse-finder-shape=trackball&amp;amp;mx-mouse-finder-dev=2&amp;amp;mx-mouse-finder-os=both&amp;amp;mx-mouse-finder-recv=bundled&amp;amp;mx-mouse-finder-quiet=yes&amp;amp;mx-mouse-finder-haptic=any#mx-mouse-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ease wrist strain, Either, 3 devices, Windows and Mac, Bluetooth is fine, Quiet clicks optional, Haptics optional&lt;/td&gt;&lt;td&gt;△ MX Vertical (device count is borderline). Logitech says the MX Vertical’s 57° vertical angle reduces wrist pressure. Logitech says the MX Ergo S’s 20° tilt reduces forearm muscle strain. The maker’s percentages aren’t quoted because their test conditions weren’t confirmed. MX Vertical: 125 g, 4 customizable buttons, Bluetooth, Unifying receiver included (not Logi Bolt), up to 3 devices. Your device count is exactly the MX Vertical’s maximum, so it’s borderline. Logitech rates the MX Vertical for medium to large hands. Pairs with fewer devices than you need: MX Ergo S (up to 2)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/?mx-mouse-finder-use=wrist&amp;amp;mx-mouse-finder-shape=any&amp;amp;mx-mouse-finder-dev=3&amp;amp;mx-mouse-finder-os=both&amp;amp;mx-mouse-finder-recv=bt&amp;amp;mx-mouse-finder-quiet=any&amp;amp;mx-mouse-finder-haptic=any#mx-mouse-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ease wrist strain, Trackball, 3 devices, Windows, Bluetooth is fine, Quiet clicks optional, Haptics optional&lt;/td&gt;&lt;td&gt;✕ No model fits. Logitech says the MX Ergo S’s 20° tilt reduces forearm muscle strain. The maker’s percentages aren’t quoted because their test conditions weren’t confirmed. Pairs with fewer devices than you need: MX Ergo S (up to 2)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-07-logitech-mouse-comparison/?mx-mouse-finder-use=wrist&amp;amp;mx-mouse-finder-shape=trackball&amp;amp;mx-mouse-finder-dev=3&amp;amp;mx-mouse-finder-os=win&amp;amp;mx-mouse-finder-recv=bt&amp;amp;mx-mouse-finder-quiet=any&amp;amp;mx-mouse-finder-haptic=any#mx-mouse-finder&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>mouse</category></item><item><title>Is the iPad mini Enough? Screen Size vs Paper Size</title><link>https://aulvem.com/blog/2021-04-05-ipad-mini/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-05-ipad-mini/</guid><description>For reading, notes and pressure-sensitive handwriting with pages up to A6 shown at actual size, the smallest and lightest current 8.3 in model is enough. Among current iPads, a whole A5 page at actual size needs a 10.86 in or larger screen, and 10.86 in and 11.1 in are borderline. That compares the whole screen with the page, not the app&apos;s drawing area after toolbars. Worked out from Apple&apos;s specs and CLIP STUDIO PAINT&apos;s official requirements, for the iPads Apple sells as of October 2026.</description><pubDate>Mon, 05 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;For reading, notes and pressure-sensitive handwriting with pages up to A6 shown at actual size, the smallest and lightest current 8.3 in model is enough. Among current iPads, a whole A5 page at actual size needs a 10.86 in or larger screen, and 10.86 in and 11.1 in are borderline. That compares the whole screen with the page, not the app’s drawing area after toolbars.&lt;/p&gt;
&lt;p&gt;This compares the iPads Apple sells now, checked as of October 2026 against Apple’s spec pages and CLIP STUDIO PAINT’s official requirements. Nothing was tested on a real iPad, so speed and comfort aren’t judged. “Fits” means a page shown whole at actual size, so an A5 PDF can still be read zoomed or scrolled.&lt;/p&gt;
&lt;h2 id=&quot;how-to-compare-screen-size-and-paper-size&quot;&gt;How to compare screen size and paper size&lt;/h2&gt;
&lt;p&gt;The iPad mini’s screen is about 176 × 116 mm. Compared as the whole screen before app toolbars, A6 fits at actual size, but A5 doesn’t. The real display area has rounded corners and is slightly smaller.&lt;/p&gt;
&lt;p&gt;Apple doesn’t publish screen dimensions, so these are calculated from the diagonal and resolution.&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Paper size&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;iPad mini&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Base iPad (A16 chip)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;11-inch iPad Air&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;A6 (105 × 148 mm)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits whole at actual size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits whole at actual size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits whole at actual size&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;A5 (148 × 210 mm)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Doesn’t fit whole at actual size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits (borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits (borderline)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;A4 (210 × 297 mm)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Doesn’t fit whole at actual size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Doesn’t fit whole at actual size&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Doesn’t fit whole at actual size&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;“Borderline” means the spare room is under 10% of the paper’s side.&lt;/p&gt;
&lt;p&gt;The fit compares the whole screen with the page, not the app’s drawing area after toolbars. Calculated from Apple’s diagonal and resolution, no current iPad shows a whole A4 page at actual size. Even the 13-inch screens have a short side of about 198 mm, short of A4’s 210 mm.&lt;/p&gt;
&lt;p&gt;Pick a use and the weight you’ll carry, and the tool shows the first model that fits.&lt;/p&gt;
&lt;section id=&quot;ipad-mini-fit-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;ipad-mini-fit-calc-title&quot;&gt; &lt;h3 id=&quot;ipad-mini-fit-calc-title&quot;&gt;Is the iPad mini enough for your use?&lt;/h3&gt; &lt;p&gt;Pick your use, how much weight you&amp;#39;ll carry and a paper size. It checks whether the iPad mini meets Apple&amp;#39;s specs and CLIP STUDIO PAINT&amp;#39;s official requirements, and shows the first model that fits (checking iPad mini, iPad, iPad Air, iPad Pro in that order), plus one iPad you can buy that fits.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;ipad_mini_128gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro), 128GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Tix2-t7iL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro), 128GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK46C5SG?q=iPad+mini+%28A17+Pro%29%2C+128GB&amp;amp;us=B0DK3W6TV6&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro), 128GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;iPad mini (A17 Pro) 128GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro), 128GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Tix2-t7iL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro), 128GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK46C5SG?q=iPad+mini+%28A17+Pro%29%2C+128GB&amp;amp;us=B0DK3W6TV6&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro), 128GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_mini_256gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro), 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61yOm9qrcVL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro), 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK44HSQW?q=iPad+mini+%28A17+Pro%29%2C+256GB&amp;amp;us=B0DK3XZ1CH&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro), 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;iPad mini (A17 Pro) 256GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro), 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61yOm9qrcVL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro), 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK44HSQW?q=iPad+mini+%28A17+Pro%29%2C+256GB&amp;amp;us=B0DK3XZ1CH&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro), 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_mini_512gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro), 512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71ZWTs-KXBL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro), 512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK43JC5Y?q=iPad+mini+%28A17+Pro%29%2C+512GB&amp;amp;us=B0DK3XNKJ2&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro), 512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;iPad mini (A17 Pro) 512GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro), 512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71ZWTs-KXBL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro), 512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK43JC5Y?q=iPad+mini+%28A17+Pro%29%2C+512GB&amp;amp;us=B0DK3XNKJ2&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro), 512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_ipad_128gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16), 128GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16), 128GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8HV6RT?q=iPad+%28A16%29%2C+128GB&amp;amp;us=B0DZ77D5HL&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16), 128GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;iPad (A16) 128GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16), 128GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16), 128GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8HV6RT?q=iPad+%28A16%29%2C+128GB&amp;amp;us=B0DZ77D5HL&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16), 128GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_ipad_256gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16), 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61TKpa5A6EL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16), 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8BQ2PB?q=iPad+%28A16%29%2C+256GB&amp;amp;us=B0DZ77TPPD&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16), 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;iPad (A16) 256GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16), 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61TKpa5A6EL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16), 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8BQ2PB?q=iPad+%28A16%29%2C+256GB&amp;amp;us=B0DZ77TPPD&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16), 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_ipad_512gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16), 512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16), 512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8FXFPG?q=iPad+%28A16%29%2C+512GB&amp;amp;us=B0DZ75HDQ4&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16), 512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;iPad (A16) 512GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16), 512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16), 512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8FXFPG?q=iPad+%28A16%29%2C+512GB&amp;amp;us=B0DZ75HDQ4&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16), 512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air11_128gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4), 128GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71oepHm9ALL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4), 128GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWJCR4K?q=11-inch+iPad+Air+%28M4%29%2C+128GB&amp;amp;us=B0GQVPX1PJ&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4), 128GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Air (M4) 128GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4), 128GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71oepHm9ALL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4), 128GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWJCR4K?q=11-inch+iPad+Air+%28M4%29%2C+128GB&amp;amp;us=B0GQVPX1PJ&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4), 128GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air11_256gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4), 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71hEv3IJm4L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4), 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWWWH1T?q=11-inch+iPad+Air+%28M4%29%2C+256GB&amp;amp;us=B0GQV9ZGKL&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4), 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Air (M4) 256GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4), 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71hEv3IJm4L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4), 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWWWH1T?q=11-inch+iPad+Air+%28M4%29%2C+256GB&amp;amp;us=B0GQV9ZGKL&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4), 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air11_512gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4), 512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71Ux4BkTYKL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4), 512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQX1MR9M?q=11-inch+iPad+Air+%28M4%29%2C+512GB&amp;amp;us=B0GQVG81NP&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4), 512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Air (M4) 512GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4), 512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71Ux4BkTYKL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4), 512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQX1MR9M?q=11-inch+iPad+Air+%28M4%29%2C+512GB&amp;amp;us=B0GQVG81NP&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4), 512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air11_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4), 1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71Uk80XwJhL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4), 1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWKGNFD?q=11-inch+iPad+Air+%28M4%29%2C+1TB&amp;amp;us=B0GQVBDHBD&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4), 1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Air (M4) 1TB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4), 1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71Uk80XwJhL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4), 1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWKGNFD?q=11-inch+iPad+Air+%28M4%29%2C+1TB&amp;amp;us=B0GQVBDHBD&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4), 1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air13_128gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4), 128GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4), 128GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVDGCD2?q=13-inch+iPad+Air+%28M4%29%2C+128GB&amp;amp;us=B0GQVDGCD2&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4), 128GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Air (M4) 128GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4), 128GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4), 128GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVDGCD2?q=13-inch+iPad+Air+%28M4%29%2C+128GB&amp;amp;us=B0GQVDGCD2&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4), 128GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air13_256gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4), 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4), 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVBYBDK?q=13-inch+iPad+Air+%28M4%29%2C+256GB&amp;amp;us=B0GQVBYBDK&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4), 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Air (M4) 256GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4), 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4), 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVBYBDK?q=13-inch+iPad+Air+%28M4%29%2C+256GB&amp;amp;us=B0GQVBYBDK&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4), 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air13_512gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4), 512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4), 512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVKG9TN?q=13-inch+iPad+Air+%28M4%29%2C+512GB&amp;amp;us=B0GQVKG9TN&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4), 512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Air (M4) 512GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4), 512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4), 512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVKG9TN?q=13-inch+iPad+Air+%28M4%29%2C+512GB&amp;amp;us=B0GQVKG9TN&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4), 512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_air13_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4), 1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4), 1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVHZ64B?q=13-inch+iPad+Air+%28M4%29%2C+1TB&amp;amp;us=B0GQVHZ64B&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4), 1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Air (M4) 1TB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Air (M4), 1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Air (M4), 1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQVHZ64B?q=13-inch+iPad+Air+%28M4%29%2C+1TB&amp;amp;us=B0GQVHZ64B&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Air (M4), 1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro11_256gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5), 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61OExjvn1+L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5), 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1K669?q=11-inch+iPad+Pro+%28M5%29%2C+256GB&amp;amp;us=B0FWD1K669&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5), 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Pro (M5) 256GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5), 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61OExjvn1+L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5), 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1K669?q=11-inch+iPad+Pro+%28M5%29%2C+256GB&amp;amp;us=B0FWD1K669&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5), 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro11_512gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5), 512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5), 512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1LZBB?q=11-inch+iPad+Pro+%28M5%29%2C+512GB&amp;amp;us=B0FWD1LZBB&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5), 512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Pro (M5) 512GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5), 512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5), 512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1LZBB?q=11-inch+iPad+Pro+%28M5%29%2C+512GB&amp;amp;us=B0FWD1LZBB&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5), 512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro11_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5), 1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5), 1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1LX4C?q=11-inch+iPad+Pro+%28M5%29%2C+1TB&amp;amp;us=B0FWD1LX4C&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5), 1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Pro (M5) 1TB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5), 1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5), 1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1LX4C?q=11-inch+iPad+Pro+%28M5%29%2C+1TB&amp;amp;us=B0FWD1LX4C&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5), 1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro11_2tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5), 2TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5), 2TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD7Q88T?q=11-inch+iPad+Pro+%28M5%29%2C+2TB&amp;amp;us=B0FWD7Q88T&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5), 2TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;11-inch iPad Pro (M5) 2TB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Pro (M5), 2TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Pro (M5), 2TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD7Q88T?q=11-inch+iPad+Pro+%28M5%29%2C+2TB&amp;amp;us=B0FWD7Q88T&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Pro (M5), 2TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro13_256gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5), 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5), 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1MT5D?q=13-inch+iPad+Pro+%28M5%29%2C+256GB&amp;amp;us=B0FWD1MT5D&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5), 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Pro (M5) 256GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5), 256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5), 256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD1MT5D?q=13-inch+iPad+Pro+%28M5%29%2C+256GB&amp;amp;us=B0FWD1MT5D&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5), 256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro13_512gb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5), 512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5), 512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD464T4?q=13-inch+iPad+Pro+%28M5%29%2C+512GB&amp;amp;us=B0FWD464T4&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5), 512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Pro (M5) 512GB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5), 512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5), 512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD464T4?q=13-inch+iPad+Pro+%28M5%29%2C+512GB&amp;amp;us=B0FWD464T4&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5), 512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro13_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5), 1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5), 1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD6SPL8?q=13-inch+iPad+Pro+%28M5%29%2C+1TB&amp;amp;us=B0FWD6SPL8&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5), 1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Pro (M5) 1TB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5), 1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5), 1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD6SPL8?q=13-inch+iPad+Pro+%28M5%29%2C+1TB&amp;amp;us=B0FWD6SPL8&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5), 1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ipad_pro13_2tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5), 2TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5), 2TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWCXMK75?q=13-inch+iPad+Pro+%28M5%29%2C+2TB&amp;amp;us=B0FWCXMK75&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5), 2TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;13-inch iPad Pro (M5) 2TB Wi-Fi&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch iPad Pro (M5), 2TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch iPad Pro (M5), 2TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWCXMK75?q=13-inch+iPad+Pro+%28M5%29%2C+2TB&amp;amp;us=B0FWCXMK75&amp;amp;l=en&quot; aria-label=&quot;View 13-inch iPad Pro (M5), 2TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;models&quot;:{&quot;mini&quot;:{&quot;ja&quot;:&quot;iPad mini（A17 Pro）&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro)&quot;,&quot;diag&quot;:8.3,&quot;res&quot;:[2266,1488],&quot;ppi&quot;:326,&quot;w&quot;:293,&quot;wc&quot;:297,&quot;body&quot;:[195.4,134.8,6.3],&quot;chip&quot;:&quot;A17 Pro&quot;,&quot;tiers&quot;:[128,256,512],&quot;mem&quot;:null,&quot;pencilPro&quot;:true,&quot;pencilUsbc&quot;:true,&quot;pencilGen1&quot;:false,&quot;hover&quot;:true,&quot;cspList&quot;:&quot;std&quot;,&quot;cspPen&quot;:true},&quot;ipad&quot;:{&quot;ja&quot;:&quot;iPad（A16）&quot;,&quot;en&quot;:&quot;iPad (A16)&quot;,&quot;diag&quot;:10.86,&quot;res&quot;:[2360,1640],&quot;ppi&quot;:264,&quot;w&quot;:477,&quot;wc&quot;:481,&quot;body&quot;:[248.6,179.5,7],&quot;chip&quot;:&quot;A16&quot;,&quot;tiers&quot;:[128,256,512],&quot;mem&quot;:null,&quot;pencilPro&quot;:false,&quot;pencilUsbc&quot;:true,&quot;pencilGen1&quot;:true,&quot;hover&quot;:false,&quot;cspList&quot;:&quot;std&quot;,&quot;cspPen&quot;:true},&quot;air11&quot;:{&quot;ja&quot;:&quot;11インチiPad Air（M4）&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4)&quot;,&quot;diag&quot;:10.86,&quot;res&quot;:[2360,1640],&quot;ppi&quot;:264,&quot;w&quot;:464,&quot;wc&quot;:465,&quot;body&quot;:[247.6,178.5,6.1],&quot;chip&quot;:&quot;M4&quot;,&quot;tiers&quot;:[128,256,512,1024],&quot;mem&quot;:12,&quot;pencilPro&quot;:true,&quot;pencilUsbc&quot;:true,&quot;pencilGen1&quot;:false,&quot;hover&quot;:true,&quot;cspList&quot;:null,&quot;cspPen&quot;:true},&quot;air13&quot;:{&quot;ja&quot;:&quot;13インチiPad Air（M4）&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4)&quot;,&quot;diag&quot;:12.9,&quot;res&quot;:[2732,2048],&quot;ppi&quot;:264,&quot;w&quot;:616,&quot;wc&quot;:617,&quot;body&quot;:[280.6,214.9,6.1],&quot;chip&quot;:&quot;M4&quot;,&quot;tiers&quot;:[128,256,512,1024],&quot;mem&quot;:12,&quot;pencilPro&quot;:true,&quot;pencilUsbc&quot;:true,&quot;pencilGen1&quot;:false,&quot;hover&quot;:true,&quot;cspList&quot;:null,&quot;cspPen&quot;:true},&quot;pro11&quot;:{&quot;ja&quot;:&quot;11インチiPad Pro（M5）&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5)&quot;,&quot;diag&quot;:11.1,&quot;res&quot;:[2420,1668],&quot;ppi&quot;:264,&quot;w&quot;:444,&quot;wc&quot;:446,&quot;body&quot;:[249.7,177.5,5.3],&quot;chip&quot;:&quot;M5&quot;,&quot;tiers&quot;:[256,512,1024,2048],&quot;mem&quot;:12,&quot;pencilPro&quot;:true,&quot;pencilUsbc&quot;:true,&quot;pencilGen1&quot;:false,&quot;hover&quot;:true,&quot;cspList&quot;:&quot;hires&quot;,&quot;cspPen&quot;:true},&quot;pro13&quot;:{&quot;ja&quot;:&quot;13インチiPad Pro（M5）&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5)&quot;,&quot;diag&quot;:13,&quot;res&quot;:[2752,2064],&quot;ppi&quot;:264,&quot;w&quot;:579,&quot;wc&quot;:582,&quot;body&quot;:[281.6,215.5,5.1],&quot;chip&quot;:&quot;M5&quot;,&quot;tiers&quot;:[256,512,1024,2048],&quot;mem&quot;:12,&quot;pencilPro&quot;:true,&quot;pencilUsbc&quot;:true,&quot;pencilGen1&quot;:false,&quot;hover&quot;:true,&quot;cspList&quot;:&quot;hires&quot;,&quot;cspPen&quot;:true}},&quot;order&quot;:[&quot;mini&quot;,&quot;ipad&quot;,&quot;air11&quot;,&quot;air13&quot;,&quot;pro11&quot;,&quot;pro13&quot;],&quot;tightRatio&quot;:0.1,&quot;weights&quot;:{&quot;w350&quot;:350,&quot;w500&quot;:500,&quot;any&quot;:9999},&quot;papers&quot;:{&quot;a6&quot;:{&quot;long&quot;:148,&quot;short&quot;:105,&quot;name&quot;:&quot;A6&quot;},&quot;a5&quot;:{&quot;long&quot;:210,&quot;short&quot;:148,&quot;name&quot;:&quot;A5&quot;},&quot;a4&quot;:{&quot;long&quot;:297,&quot;short&quot;:210,&quot;name&quot;:&quot;A4&quot;}},&quot;csp&quot;:{&quot;memReq&quot;:3,&quot;memRec&quot;:4,&quot;memHires&quot;:6,&quot;dispRec&quot;:10.5,&quot;freeGb&quot;:6},&quot;uses&quot;:[&quot;read&quot;,&quot;pressure&quot;,&quot;csp&quot;],&quot;paperKeys&quot;:[&quot;none&quot;,&quot;a6&quot;,&quot;a5&quot;,&quot;a4&quot;],&quot;products&quot;:{&quot;ipad_mini_128gb&quot;:{&quot;fam&quot;:&quot;mini&quot;,&quot;gb&quot;:128},&quot;ipad_mini_256gb&quot;:{&quot;fam&quot;:&quot;mini&quot;,&quot;gb&quot;:256},&quot;ipad_mini_512gb&quot;:{&quot;fam&quot;:&quot;mini&quot;,&quot;gb&quot;:512},&quot;ipad_ipad_128gb&quot;:{&quot;fam&quot;:&quot;ipad&quot;,&quot;gb&quot;:128},&quot;ipad_ipad_256gb&quot;:{&quot;fam&quot;:&quot;ipad&quot;,&quot;gb&quot;:256},&quot;ipad_ipad_512gb&quot;:{&quot;fam&quot;:&quot;ipad&quot;,&quot;gb&quot;:512},&quot;ipad_air11_128gb&quot;:{&quot;fam&quot;:&quot;air11&quot;,&quot;gb&quot;:128},&quot;ipad_air11_256gb&quot;:{&quot;fam&quot;:&quot;air11&quot;,&quot;gb&quot;:256},&quot;ipad_air11_512gb&quot;:{&quot;fam&quot;:&quot;air11&quot;,&quot;gb&quot;:512},&quot;ipad_air11_1tb&quot;:{&quot;fam&quot;:&quot;air11&quot;,&quot;gb&quot;:1024},&quot;ipad_air13_128gb&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;gb&quot;:128},&quot;ipad_air13_256gb&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;gb&quot;:256},&quot;ipad_air13_512gb&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;gb&quot;:512},&quot;ipad_air13_1tb&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;gb&quot;:1024},&quot;ipad_pro11_256gb&quot;:{&quot;fam&quot;:&quot;pro11&quot;,&quot;gb&quot;:256},&quot;ipad_pro11_512gb&quot;:{&quot;fam&quot;:&quot;pro11&quot;,&quot;gb&quot;:512},&quot;ipad_pro11_1tb&quot;:{&quot;fam&quot;:&quot;pro11&quot;,&quot;gb&quot;:1024},&quot;ipad_pro11_2tb&quot;:{&quot;fam&quot;:&quot;pro11&quot;,&quot;gb&quot;:2048},&quot;ipad_pro13_256gb&quot;:{&quot;fam&quot;:&quot;pro13&quot;,&quot;gb&quot;:256},&quot;ipad_pro13_512gb&quot;:{&quot;fam&quot;:&quot;pro13&quot;,&quot;gb&quot;:512},&quot;ipad_pro13_1tb&quot;:{&quot;fam&quot;:&quot;pro13&quot;,&quot;gb&quot;:1024},&quot;ipad_pro13_2tb&quot;:{&quot;fam&quot;:&quot;pro13&quot;,&quot;gb&quot;:2048}},&quot;slotIds&quot;:{&quot;mini&quot;:[&quot;ipad_mini_128gb&quot;,&quot;ipad_mini_256gb&quot;,&quot;ipad_mini_512gb&quot;],&quot;ipad_a5&quot;:[&quot;ipad_ipad_128gb&quot;,&quot;ipad_ipad_256gb&quot;,&quot;ipad_ipad_512gb&quot;],&quot;air11_a5&quot;:[&quot;ipad_air11_128gb&quot;,&quot;ipad_air11_256gb&quot;,&quot;ipad_air11_512gb&quot;,&quot;ipad_air11_1tb&quot;]},&quot;buy&quot;:{&quot;ipad_mini_128gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad mini（A17 Pro）128GB&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro), 128GB&quot;,&quot;jp&quot;:&quot;B0DK46C5SG&quot;,&quot;us&quot;:&quot;B0DK3W6TV6&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DK46C5SG&quot;,&quot;asinUS&quot;:&quot;B0DK3W6TV6&quot;,&quot;title&quot;:&quot;iPad mini（A17 Pro）128GB&quot;,&quot;searchQuery&quot;:&quot;iPad mini（A17 Pro）128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tFtJQGAeL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995526509&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DK46C5SG&quot;,&quot;asinUS&quot;:&quot;B0DK3W6TV6&quot;,&quot;title&quot;:&quot;iPad mini (A17 Pro), 128GB&quot;,&quot;searchQuery&quot;:&quot;iPad mini (A17 Pro), 128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Tix2-t7iL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:2,&quot;rank_us&quot;:2},&quot;iPad mini (A17 Pro) 128GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad mini（A17 Pro）128GB&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro), 128GB&quot;,&quot;jp&quot;:&quot;B0DK46C5SG&quot;,&quot;us&quot;:&quot;B0DK3W6TV6&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DK46C5SG&quot;,&quot;asinUS&quot;:&quot;B0DK3W6TV6&quot;,&quot;title&quot;:&quot;iPad mini（A17 Pro）128GB&quot;,&quot;searchQuery&quot;:&quot;iPad mini（A17 Pro）128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tFtJQGAeL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995526509&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DK46C5SG&quot;,&quot;asinUS&quot;:&quot;B0DK3W6TV6&quot;,&quot;title&quot;:&quot;iPad mini (A17 Pro), 128GB&quot;,&quot;searchQuery&quot;:&quot;iPad mini (A17 Pro), 128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Tix2-t7iL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:2,&quot;rank_us&quot;:2},&quot;ipad_mini_256gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad mini（A17 Pro）256GB&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro), 256GB&quot;,&quot;jp&quot;:&quot;B0DK44HSQW&quot;,&quot;us&quot;:&quot;B0DK3XZ1CH&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DK44HSQW&quot;,&quot;asinUS&quot;:&quot;B0DK3XZ1CH&quot;,&quot;title&quot;:&quot;iPad mini（A17 Pro）256GB&quot;,&quot;searchQuery&quot;:&quot;iPad mini（A17 Pro）256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tFtJQGAeL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995526547&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DK44HSQW&quot;,&quot;asinUS&quot;:&quot;B0DK3XZ1CH&quot;,&quot;title&quot;:&quot;iPad mini (A17 Pro), 256GB&quot;,&quot;searchQuery&quot;:&quot;iPad mini (A17 Pro), 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61yOm9qrcVL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:3,&quot;rank_us&quot;:4},&quot;iPad mini (A17 Pro) 256GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad mini（A17 Pro）256GB&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro), 256GB&quot;,&quot;jp&quot;:&quot;B0DK44HSQW&quot;,&quot;us&quot;:&quot;B0DK3XZ1CH&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DK44HSQW&quot;,&quot;asinUS&quot;:&quot;B0DK3XZ1CH&quot;,&quot;title&quot;:&quot;iPad mini（A17 Pro）256GB&quot;,&quot;searchQuery&quot;:&quot;iPad mini（A17 Pro）256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tFtJQGAeL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995526547&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DK44HSQW&quot;,&quot;asinUS&quot;:&quot;B0DK3XZ1CH&quot;,&quot;title&quot;:&quot;iPad mini (A17 Pro), 256GB&quot;,&quot;searchQuery&quot;:&quot;iPad mini (A17 Pro), 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61yOm9qrcVL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:3,&quot;rank_us&quot;:4},&quot;ipad_mini_512gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad mini（A17 Pro）512GB&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro), 512GB&quot;,&quot;jp&quot;:&quot;B0DK43JC5Y&quot;,&quot;us&quot;:&quot;B0DK3XNKJ2&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DK43JC5Y&quot;,&quot;asinUS&quot;:&quot;B0DK3XNKJ2&quot;,&quot;title&quot;:&quot;iPad mini（A17 Pro）512GB&quot;,&quot;searchQuery&quot;:&quot;iPad mini（A17 Pro）512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tFtJQGAeL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995530551&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DK43JC5Y&quot;,&quot;asinUS&quot;:&quot;B0DK3XNKJ2&quot;,&quot;title&quot;:&quot;iPad mini (A17 Pro), 512GB&quot;,&quot;searchQuery&quot;:&quot;iPad mini (A17 Pro), 512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ZWTs-KXBL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:7,&quot;rank_us&quot;:8},&quot;iPad mini (A17 Pro) 512GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad mini（A17 Pro）512GB&quot;,&quot;en&quot;:&quot;iPad mini (A17 Pro), 512GB&quot;,&quot;jp&quot;:&quot;B0DK43JC5Y&quot;,&quot;us&quot;:&quot;B0DK3XNKJ2&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DK43JC5Y&quot;,&quot;asinUS&quot;:&quot;B0DK3XNKJ2&quot;,&quot;title&quot;:&quot;iPad mini（A17 Pro）512GB&quot;,&quot;searchQuery&quot;:&quot;iPad mini（A17 Pro）512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tFtJQGAeL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995530551&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DK43JC5Y&quot;,&quot;asinUS&quot;:&quot;B0DK3XNKJ2&quot;,&quot;title&quot;:&quot;iPad mini (A17 Pro), 512GB&quot;,&quot;searchQuery&quot;:&quot;iPad mini (A17 Pro), 512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ZWTs-KXBL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:7,&quot;rank_us&quot;:8},&quot;ipad_ipad_128gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad（A16）128GB&quot;,&quot;en&quot;:&quot;iPad (A16), 128GB&quot;,&quot;jp&quot;:&quot;B0DZ8HV6RT&quot;,&quot;us&quot;:&quot;B0DZ77D5HL&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DZ8HV6RT&quot;,&quot;asinUS&quot;:&quot;B0DZ77D5HL&quot;,&quot;title&quot;:&quot;iPad（A16）128GB&quot;,&quot;searchQuery&quot;:&quot;iPad（A16）128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61opXmF-vsL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995560091&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DZ8HV6RT&quot;,&quot;asinUS&quot;:&quot;B0DZ77D5HL&quot;,&quot;title&quot;:&quot;iPad (A16), 128GB&quot;,&quot;searchQuery&quot;:&quot;iPad (A16), 128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:0,&quot;rank_us&quot;:0},&quot;iPad (A16) 128GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad（A16）128GB&quot;,&quot;en&quot;:&quot;iPad (A16), 128GB&quot;,&quot;jp&quot;:&quot;B0DZ8HV6RT&quot;,&quot;us&quot;:&quot;B0DZ77D5HL&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DZ8HV6RT&quot;,&quot;asinUS&quot;:&quot;B0DZ77D5HL&quot;,&quot;title&quot;:&quot;iPad（A16）128GB&quot;,&quot;searchQuery&quot;:&quot;iPad（A16）128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61opXmF-vsL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995560091&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DZ8HV6RT&quot;,&quot;asinUS&quot;:&quot;B0DZ77D5HL&quot;,&quot;title&quot;:&quot;iPad (A16), 128GB&quot;,&quot;searchQuery&quot;:&quot;iPad (A16), 128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:0,&quot;rank_us&quot;:0},&quot;ipad_ipad_256gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad（A16）256GB&quot;,&quot;en&quot;:&quot;iPad (A16), 256GB&quot;,&quot;jp&quot;:&quot;B0DZ8BQ2PB&quot;,&quot;us&quot;:&quot;B0DZ77TPPD&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DZ8BQ2PB&quot;,&quot;asinUS&quot;:&quot;B0DZ77TPPD&quot;,&quot;title&quot;:&quot;iPad（A16）256GB&quot;,&quot;searchQuery&quot;:&quot;iPad（A16）256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/616z23YvqML._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995560121&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DZ8BQ2PB&quot;,&quot;asinUS&quot;:&quot;B0DZ77TPPD&quot;,&quot;title&quot;:&quot;iPad (A16), 256GB&quot;,&quot;searchQuery&quot;:&quot;iPad (A16), 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61TKpa5A6EL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:1},&quot;iPad (A16) 256GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad（A16）256GB&quot;,&quot;en&quot;:&quot;iPad (A16), 256GB&quot;,&quot;jp&quot;:&quot;B0DZ8BQ2PB&quot;,&quot;us&quot;:&quot;B0DZ77TPPD&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DZ8BQ2PB&quot;,&quot;asinUS&quot;:&quot;B0DZ77TPPD&quot;,&quot;title&quot;:&quot;iPad（A16）256GB&quot;,&quot;searchQuery&quot;:&quot;iPad（A16）256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/616z23YvqML._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995560121&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DZ8BQ2PB&quot;,&quot;asinUS&quot;:&quot;B0DZ77TPPD&quot;,&quot;title&quot;:&quot;iPad (A16), 256GB&quot;,&quot;searchQuery&quot;:&quot;iPad (A16), 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61TKpa5A6EL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:1},&quot;ipad_ipad_512gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad（A16）512GB&quot;,&quot;en&quot;:&quot;iPad (A16), 512GB&quot;,&quot;jp&quot;:&quot;B0DZ8FXFPG&quot;,&quot;us&quot;:&quot;B0DZ75HDQ4&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DZ8FXFPG&quot;,&quot;asinUS&quot;:&quot;B0DZ75HDQ4&quot;,&quot;title&quot;:&quot;iPad（A16）512GB&quot;,&quot;searchQuery&quot;:&quot;iPad（A16）512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/616z23YvqML._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995560169&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DZ8FXFPG&quot;,&quot;asinUS&quot;:&quot;B0DZ75HDQ4&quot;,&quot;title&quot;:&quot;iPad (A16), 512GB&quot;,&quot;searchQuery&quot;:&quot;iPad (A16), 512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:4,&quot;rank_us&quot;:5},&quot;iPad (A16) 512GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;iPad（A16）512GB&quot;,&quot;en&quot;:&quot;iPad (A16), 512GB&quot;,&quot;jp&quot;:&quot;B0DZ8FXFPG&quot;,&quot;us&quot;:&quot;B0DZ75HDQ4&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DZ8FXFPG&quot;,&quot;asinUS&quot;:&quot;B0DZ75HDQ4&quot;,&quot;title&quot;:&quot;iPad（A16）512GB&quot;,&quot;searchQuery&quot;:&quot;iPad（A16）512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/616z23YvqML._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995560169&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0DZ8FXFPG&quot;,&quot;asinUS&quot;:&quot;B0DZ75HDQ4&quot;,&quot;title&quot;:&quot;iPad (A16), 512GB&quot;,&quot;searchQuery&quot;:&quot;iPad (A16), 512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:4,&quot;rank_us&quot;:5},&quot;ipad_air11_128gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4）128GB&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4), 128GB&quot;,&quot;jp&quot;:&quot;B0GQWJCR4K&quot;,&quot;us&quot;:&quot;B0GQVPX1PJ&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQWJCR4K&quot;,&quot;asinUS&quot;:&quot;B0GQVPX1PJ&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4）128GB&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4）128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71cEd-F5hgL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995661996&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQWJCR4K&quot;,&quot;asinUS&quot;:&quot;B0GQVPX1PJ&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4), 128GB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4), 128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71oepHm9ALL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:5,&quot;rank_us&quot;:3},&quot;11-inch iPad Air (M4) 128GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4）128GB&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4), 128GB&quot;,&quot;jp&quot;:&quot;B0GQWJCR4K&quot;,&quot;us&quot;:&quot;B0GQVPX1PJ&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQWJCR4K&quot;,&quot;asinUS&quot;:&quot;B0GQVPX1PJ&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4）128GB&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4）128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71cEd-F5hgL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995661996&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQWJCR4K&quot;,&quot;asinUS&quot;:&quot;B0GQVPX1PJ&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4), 128GB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4), 128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71oepHm9ALL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:5,&quot;rank_us&quot;:3},&quot;ipad_air11_256gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4）256GB&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4), 256GB&quot;,&quot;jp&quot;:&quot;B0GQWWWH1T&quot;,&quot;us&quot;:&quot;B0GQV9ZGKL&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQWWWH1T&quot;,&quot;asinUS&quot;:&quot;B0GQV9ZGKL&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4）256GB&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4）256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71cEd-F5hgL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995662030&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQWWWH1T&quot;,&quot;asinUS&quot;:&quot;B0GQV9ZGKL&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4), 256GB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4), 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71hEv3IJm4L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:6,&quot;rank_us&quot;:6},&quot;11-inch iPad Air (M4) 256GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4）256GB&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4), 256GB&quot;,&quot;jp&quot;:&quot;B0GQWWWH1T&quot;,&quot;us&quot;:&quot;B0GQV9ZGKL&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQWWWH1T&quot;,&quot;asinUS&quot;:&quot;B0GQV9ZGKL&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4）256GB&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4）256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71cEd-F5hgL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995662030&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQWWWH1T&quot;,&quot;asinUS&quot;:&quot;B0GQV9ZGKL&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4), 256GB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4), 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71hEv3IJm4L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:6,&quot;rank_us&quot;:6},&quot;ipad_air11_512gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4）512GB&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4), 512GB&quot;,&quot;jp&quot;:&quot;B0GQX1MR9M&quot;,&quot;us&quot;:&quot;B0GQVG81NP&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQX1MR9M&quot;,&quot;asinUS&quot;:&quot;B0GQVG81NP&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4）512GB&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4）512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71b4TVQkO3L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995662092&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQX1MR9M&quot;,&quot;asinUS&quot;:&quot;B0GQVG81NP&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4), 512GB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4), 512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71Ux4BkTYKL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:8,&quot;rank_us&quot;:9},&quot;11-inch iPad Air (M4) 512GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4）512GB&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4), 512GB&quot;,&quot;jp&quot;:&quot;B0GQX1MR9M&quot;,&quot;us&quot;:&quot;B0GQVG81NP&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQX1MR9M&quot;,&quot;asinUS&quot;:&quot;B0GQVG81NP&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4）512GB&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4）512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71b4TVQkO3L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995662092&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQX1MR9M&quot;,&quot;asinUS&quot;:&quot;B0GQVG81NP&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4), 512GB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4), 512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71Ux4BkTYKL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:8,&quot;rank_us&quot;:9},&quot;ipad_air11_1tb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4）1TB&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4), 1TB&quot;,&quot;jp&quot;:&quot;B0GQWKGNFD&quot;,&quot;us&quot;:&quot;B0GQVBDHBD&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQWKGNFD&quot;,&quot;asinUS&quot;:&quot;B0GQVBDHBD&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4）1TB&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4）1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/713iOnE9UGL._AC_SL320_.jpg&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQWKGNFD&quot;,&quot;asinUS&quot;:&quot;B0GQVBDHBD&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4), 1TB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4), 1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71Uk80XwJhL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:9,&quot;rank_us&quot;:14},&quot;11-inch iPad Air (M4) 1TB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Air（M4）1TB&quot;,&quot;en&quot;:&quot;11-inch iPad Air (M4), 1TB&quot;,&quot;jp&quot;:&quot;B0GQWKGNFD&quot;,&quot;us&quot;:&quot;B0GQVBDHBD&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GQWKGNFD&quot;,&quot;asinUS&quot;:&quot;B0GQVBDHBD&quot;,&quot;title&quot;:&quot;11インチiPad Air（M4）1TB&quot;,&quot;searchQuery&quot;:&quot;11インチiPad Air（M4）1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/713iOnE9UGL._AC_SL320_.jpg&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQWKGNFD&quot;,&quot;asinUS&quot;:&quot;B0GQVBDHBD&quot;,&quot;title&quot;:&quot;11-inch iPad Air (M4), 1TB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Air (M4), 1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71Uk80XwJhL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:9,&quot;rank_us&quot;:14},&quot;ipad_air13_128gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4）128GB&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4), 128GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVDGCD2&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVDGCD2&quot;,&quot;asinUS&quot;:&quot;B0GQVDGCD2&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4), 128GB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4), 128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:7},&quot;13-inch iPad Air (M4) 128GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4）128GB&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4), 128GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVDGCD2&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVDGCD2&quot;,&quot;asinUS&quot;:&quot;B0GQVDGCD2&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4), 128GB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4), 128GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:7},&quot;ipad_air13_256gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4）256GB&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4), 256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVBYBDK&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVBYBDK&quot;,&quot;asinUS&quot;:&quot;B0GQVBYBDK&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4), 256GB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4), 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:10},&quot;13-inch iPad Air (M4) 256GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4）256GB&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4), 256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVBYBDK&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVBYBDK&quot;,&quot;asinUS&quot;:&quot;B0GQVBYBDK&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4), 256GB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4), 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:10},&quot;ipad_air13_512gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4）512GB&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4), 512GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVKG9TN&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVKG9TN&quot;,&quot;asinUS&quot;:&quot;B0GQVKG9TN&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4), 512GB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4), 512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:12},&quot;13-inch iPad Air (M4) 512GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4）512GB&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4), 512GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVKG9TN&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVKG9TN&quot;,&quot;asinUS&quot;:&quot;B0GQVKG9TN&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4), 512GB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4), 512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71aBVV+i+nL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:12},&quot;ipad_air13_1tb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4）1TB&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4), 1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVHZ64B&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVHZ64B&quot;,&quot;asinUS&quot;:&quot;B0GQVHZ64B&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4), 1TB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4), 1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:16},&quot;13-inch iPad Air (M4) 1TB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Air（M4）1TB&quot;,&quot;en&quot;:&quot;13-inch iPad Air (M4), 1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GQVHZ64B&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GQVHZ64B&quot;,&quot;asinUS&quot;:&quot;B0GQVHZ64B&quot;,&quot;title&quot;:&quot;13-inch iPad Air (M4), 1TB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Air (M4), 1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71DU8xyt5mL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:16},&quot;ipad_pro11_256gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5）256GB&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5), 256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1K669&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1K669&quot;,&quot;asinUS&quot;:&quot;B0FWD1K669&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5), 256GB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5), 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61OExjvn1+L._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:11},&quot;11-inch iPad Pro (M5) 256GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5）256GB&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5), 256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1K669&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1K669&quot;,&quot;asinUS&quot;:&quot;B0FWD1K669&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5), 256GB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5), 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61OExjvn1+L._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:11},&quot;ipad_pro11_512gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5）512GB&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5), 512GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1LZBB&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1LZBB&quot;,&quot;asinUS&quot;:&quot;B0FWD1LZBB&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5), 512GB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5), 512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:13},&quot;11-inch iPad Pro (M5) 512GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5）512GB&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5), 512GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1LZBB&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1LZBB&quot;,&quot;asinUS&quot;:&quot;B0FWD1LZBB&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5), 512GB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5), 512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:13},&quot;ipad_pro11_1tb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5）1TB&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5), 1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1LX4C&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1LX4C&quot;,&quot;asinUS&quot;:&quot;B0FWD1LX4C&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5), 1TB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5), 1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:18},&quot;11-inch iPad Pro (M5) 1TB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5）1TB&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5), 1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1LX4C&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1LX4C&quot;,&quot;asinUS&quot;:&quot;B0FWD1LX4C&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5), 1TB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5), 1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:18},&quot;ipad_pro11_2tb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5）2TB&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5), 2TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD7Q88T&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD7Q88T&quot;,&quot;asinUS&quot;:&quot;B0FWD7Q88T&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5), 2TB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5), 2TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:20},&quot;11-inch iPad Pro (M5) 2TB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;11インチiPad Pro（M5）2TB&quot;,&quot;en&quot;:&quot;11-inch iPad Pro (M5), 2TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD7Q88T&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD7Q88T&quot;,&quot;asinUS&quot;:&quot;B0FWD7Q88T&quot;,&quot;title&quot;:&quot;11-inch iPad Pro (M5), 2TB&quot;,&quot;searchQuery&quot;:&quot;11-inch iPad Pro (M5), 2TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61sP8Xzu-JL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:20},&quot;ipad_pro13_256gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5）256GB&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5), 256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1MT5D&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1MT5D&quot;,&quot;asinUS&quot;:&quot;B0FWD1MT5D&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5), 256GB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5), 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:15},&quot;13-inch iPad Pro (M5) 256GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5）256GB&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5), 256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD1MT5D&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD1MT5D&quot;,&quot;asinUS&quot;:&quot;B0FWD1MT5D&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5), 256GB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5), 256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:15},&quot;ipad_pro13_512gb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5）512GB&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5), 512GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD464T4&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD464T4&quot;,&quot;asinUS&quot;:&quot;B0FWD464T4&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5), 512GB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5), 512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:17},&quot;13-inch iPad Pro (M5) 512GB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5）512GB&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5), 512GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD464T4&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD464T4&quot;,&quot;asinUS&quot;:&quot;B0FWD464T4&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5), 512GB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5), 512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:17},&quot;ipad_pro13_1tb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5）1TB&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5), 1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD6SPL8&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD6SPL8&quot;,&quot;asinUS&quot;:&quot;B0FWD6SPL8&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5), 1TB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5), 1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:19},&quot;13-inch iPad Pro (M5) 1TB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5）1TB&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5), 1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD6SPL8&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD6SPL8&quot;,&quot;asinUS&quot;:&quot;B0FWD6SPL8&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5), 1TB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5), 1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:19},&quot;ipad_pro13_2tb&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5）2TB&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5), 2TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWCXMK75&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWCXMK75&quot;,&quot;asinUS&quot;:&quot;B0FWCXMK75&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5), 2TB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5), 2TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:21},&quot;13-inch iPad Pro (M5) 2TB Wi-Fi&quot;:{&quot;type&quot;:&quot;tablet&quot;,&quot;ja&quot;:&quot;13インチiPad Pro（M5）2TB&quot;,&quot;en&quot;:&quot;13-inch iPad Pro (M5), 2TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWCXMK75&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWCXMK75&quot;,&quot;asinUS&quot;:&quot;B0FWCXMK75&quot;,&quot;title&quot;:&quot;13-inch iPad Pro (M5), 2TB&quot;,&quot;searchQuery&quot;:&quot;13-inch iPad Pro (M5), 2TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BDVQlkkmL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:21}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;tablet&quot;:&quot;ipad_mini_128gb&quot;},&quot;en&quot;:{&quot;tablet&quot;:&quot;ipad_mini_128gb&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;ipad-mini-fit-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 値（Apple の仕様・Apple Pencil の対応・CLIP STUDIO PAINT の要件・紙の寸法）は calc.mjs が data.json の facts から M に入れて渡す。
//
// 1. 画面の寸法: Apple の対角（長方形として測った値、インチ）× 25.4 を、解像度の縦横比で長辺・短辺に分ける。
//    長辺 = 対角mm × 横px ÷ √(横px² + 縦px²)、短辺 = 対角mm × 縦px ÷ √(横px² + 縦px²)。
//    実際の表示領域は四隅が丸く、これより小さい（Apple の注記）。
// 2. 紙が等倍で丸ごと入るか: 紙の長辺 ≤ 画面の長辺 かつ 紙の短辺 ≤ 画面の短辺。余裕 = 画面 − 紙（辺ごと）。
//    余裕が紙の辺の tightRatio 未満なら「ぎりぎり」。
// 3. 用途の条件（公式の資料に書いてあることだけ）:
//    read     = 条件なし（Apple Pencil を使わない読書・メモ）
//    pressure = Apple Pencil Pro に対応（Apple のページで筆圧（圧力）検知は Pro のみ）
//    csp      = CLIP STUDIO PAINT の対応端末のページに載る・同社の筆圧対応ペンの一覧のペンが使える（必須として判定）
//               ＋ 10.5インチ以上の推奨（rec）。メモリ 3GB 必須は Apple が記載した機種だけ判定し、記載の無い機種は判定しない
// 4. 機種の並び（M.order）: mini → iPad → Air 11 → Air 13 → Pro 11 → Pro 13（小さいラインから。価格の比較ではない）。
//    first = 条件を満たす最初の機種。lighter = first より軽く、同じ条件を満たす機種（いちばん軽いもの）

function screenMm(m) {
  const d = m.diag * 25.4;
  const h = Math.hypot(m.res[0], m.res[1]);
  return { long: (d * Math.max(...m.res)) / h, short: (d * Math.min(...m.res)) / h };
}

// 紙（{ long, short } mm）が等倍で丸ごと入るか
function paperFit(m, paper, tightRatio) {
  const s = screenMm(m);
  const mLong = s.long - paper.long, mShort = s.short - paper.short;
  const ok = mLong &gt;= 0 &amp;&amp; mShort &gt;= 0;
  const tight = ok &amp;&amp; (mLong / paper.long &lt; tightRatio || mShort / paper.short &lt; tightRatio);
  return { ok, tight, mLong, mShort, long: s.long, short: s.short };
}

// 1機種の判定。use = read / pressure / csp、paper = M.papers のキーか &quot;none&quot;、wmax = 重さの上限（g）
function judge(M, id, use, paper, wmax) {
  const m = M.models[id];
  const r = { id, weightOk: m.w &lt;= wmax + 1e-9, useOk: true, rec: null, recTight: false, memJudged: null, memOk: null, paper: null };
  if (use === &quot;pressure&quot;) r.useOk = !!m.pencilPro;
  if (use === &quot;csp&quot;) {
    r.listed = !!m.cspList;
    r.pen = !!m.cspPen;
    r.useOk = r.listed &amp;&amp; r.pen;
    r.rec = m.diag &gt;= M.csp.dispRec - 1e-9;
    r.recTight = r.rec &amp;&amp; (m.diag - M.csp.dispRec) / M.csp.dispRec &lt; M.tightRatio;
    r.memJudged = m.mem != null;
    r.memOk = r.memJudged ? m.mem &gt;= M.csp.memReq : null;
  }
  if (paper &amp;&amp; paper !== &quot;none&quot;) r.paper = paperFit(m, M.papers[paper], M.tightRatio);
  r.paperOk = !r.paper || r.paper.ok;
  r.ok = r.weightOk &amp;&amp; r.useOk &amp;&amp; r.paperOk &amp;&amp; r.memOk !== false;
  return r;
}

// 条件を満たす機種。first = 並びで最初、firstRec = CLIP STUDIO PAINT の画面の推奨も満たす最初、
// firstMem = さらにメモリも Apple の記載で判定できる最初、lighter = first より軽い機種のうちいちばん軽いもの
function minimumModel(M, use, paper, wkey) {
  const wmax = M.weights[wkey];
  const all = M.order.map((id) =&gt; judge(M, id, use, paper, wmax));
  const ok = all.filter((r) =&gt; r.ok);
  const first = ok[0] || null;
  const firstRec = use === &quot;csp&quot; ? ok.find((r) =&gt; r.rec) || null : null;
  const firstMem = use === &quot;csp&quot; ? ok.find((r) =&gt; r.rec &amp;&amp; r.memJudged) || null : null;
  const base = use === &quot;csp&quot; ? firstRec : first;
  const lighterAll = base ? ok.filter((r) =&gt; (use !== &quot;csp&quot; || r.rec) &amp;&amp; M.models[r.id].w &lt; M.models[base.id].w) : [];
  const lighter = lighterAll.sort((a, b) =&gt; M.models[a.id].w - M.models[b.id].w)[0] || null;
  const mini = all.find((r) =&gt; r.id === &quot;mini&quot;);
  return { all, ok, first, firstRec, firstMem, lighter, mini };
}

// 機種 fam の商品（products.json の構成。M.products[pid] = { fam, gb }）
function productOf(M, fam) {
  return Object.keys(M.products).filter((pid) =&gt; M.products[pid].fam === fam);
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（用途・持ち歩く重さ・紙のサイズ）。機種は選ばせず、iPad mini が公式の仕様・要件を満たすかと、
// 満たす最初の機種（mini → iPad → Air → Pro の並び）と、買える商品を1つ出す。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    use: &quot;用途&quot;, w: &quot;持ち歩き&quot;, paper: &quot;紙のサイズ&quot;,
    read: &quot;読書・メモ（筆圧なし）&quot;, pressure: &quot;手書き（筆圧あり）&quot;, csp: &quot;CLIP STUDIOで描く&quot;,
    w350: &quot;350g以下&quot;, w500: &quot;500g以下&quot;, any: &quot;気にしない&quot;,
    none: &quot;指定なし&quot;, a6: &quot;A6&quot;, a5: &quot;A5&quot;, a4: &quot;A4&quot;,
    reqRead: &quot;条件: 筆圧が要らないので、画面と重さだけで判定します&quot;,
    reqPressure: &quot;条件: Apple Pencil Pro に対応（Apple の比較表（Pro と USB-C 版を比べた表）では、筆圧を検知するのは Pro で、USB-C 版は非対応）&quot;,
    reqCsp: &quot;条件: CLIP STUDIO PAINT の対応端末のページに載り、同社の筆圧対応ペンの一覧（Apple Pencil 第1世代・第2世代・Pro）のペンが使えること。画面は10.5インチ以上が推奨&quot;,
    paperL: (p, l, s) =&gt; `紙: ${p}（${s}×${l}mm）を等倍で丸ごと表示`,
    miniOk: &quot;iPad mini はこの条件を満たします&quot;,
    miniPaper: (p) =&gt; `iPad mini の画面（約176×116mm）には ${p} が等倍で丸ごと入りません`,
    miniCsp: &quot;iPad mini は対応端末の標準的なサイズ向けの一覧に載り（高解像度向けの一覧にはありません）、Apple Pencil Pro も筆圧対応ペンに挙がっています。ただし画面は推奨の10.5インチ未満です&quot;,
    memNo: &quot;iPad mini と iPad（A16）は Apple がメモリを記載していないので、CLIP STUDIO PAINT の必須 3GB を満たすかは判定できません&quot;,
    first: (name, w, d) =&gt; `条件を満たす最初の機種: ${name}（${w}g・画面の対角 ${d}インチ）`,
    firstRec: (name, w, d) =&gt; `推奨の画面サイズも満たす最初の機種: ${name}（${w}g・${d}インチ）`,
    recTight: &quot;画面の推奨 10.5インチに対する余裕が10%未満で、ぎりぎりです&quot;,
    firstMem: (name, gb) =&gt; `メモリも Apple の記載で確かめられる最初の機種: ${name}（${gb}GB。必須 3GB、高解像度向けの推奨 6GB を上回ります）`,
    paperTight: (p, mm) =&gt; `${p} の余裕は約${mm}mm（紙の辺の10%未満）で、ぎりぎりです。実際の表示領域は四隅が丸く、計算の値より小さくなります`,
    paperOk: (p, mm) =&gt; `${p} の余裕は約${mm}mm です（計算は長方形として測った対角から。実際の表示領域は四隅が丸く、これより小さくなります）`,
    lighter: (name, w) =&gt; `より軽く、同じ条件を満たす機種: ${name}（${w}g）`,
    sto: (name, list) =&gt; `${name}の容量の選択肢: ${list}。使い方ごとの必要量は Apple の目安が無く、計算していません`,
    hover: &quot;Apple Pencil のホバーにも対応しています&quot;,
    cspAir: &quot;iPad Air（M4）は CLIP STUDIO PAINT の対応端末のページに載っていないので、判定していません&quot;,
    cspOs: &quot;CLIP STUDIO PAINT の対応 OS は iPadOS 18 / 26 で、現行の iPadOS 27 は記載がありません&quot;,
    gen1: &quot;iPad（A16）はアダプタで Apple Pencil（第1世代）が使え、これは CLIP STUDIO PAINT の筆圧対応ペンの一覧にあります（Apple Pencil（USB-C）は一覧になく、筆圧を使うには第1世代とアダプタが要ります）&quot;,
    noneA4: &quot;A4 は現行のどの iPad にも等倍では丸ごと入りません（いちばん大きい13インチでも画面の短辺は約198mm）&quot;,
    noneW: &quot;この重さの範囲に、条件を満たす機種がありません。持ち歩きを「気にしない」にすると出ます&quot;,
    noneAll: &quot;この条件をすべて満たす機種はありません&quot;,
    vMini: &quot;○ iPad mini で条件を満たします&quot;, vMiniCsp: &quot;△ iPad mini は対応端末に載るが、画面は推奨未満&quot;,
    vOther: (name) =&gt; `○ ${name}で条件を満たします`, vTight: (name) =&gt; `△ ${name}でぎりぎり満たします`, vNg: &quot;✕ 条件に合う機種がありません&quot;,
    note: &quot;結果は Apple の仕様ページ・Apple Pencil のページと、CLIP STUDIO PAINT の公式の動作環境・対応端末のページ（2026年10月の確認）から出しています。画面の寸法は、Apple の対角（長方形として測った値）を解像度の縦横比で分けた計算です。速さや使い心地は実機で試しておらず、判定していません。&quot;,
  },
  en: {
    use: &quot;Use&quot;, w: &quot;Carry weight&quot;, paper: &quot;Paper size&quot;,
    read: &quot;Reading / notes (no pressure needed)&quot;, pressure: &quot;Handwriting with pressure&quot;, csp: &quot;Drawing in CLIP STUDIO&quot;,
    w350: &quot;350 g or less&quot;, w500: &quot;500 g or less&quot;, any: &quot;Doesn&apos;t matter&quot;,
    none: &quot;Not set&quot;, a6: &quot;A6&quot;, a5: &quot;A5&quot;, a4: &quot;A4&quot;,
    reqRead: &quot;Condition: no pressure sensing needed, so only screen and weight are checked&quot;,
    reqPressure: &quot;Condition: Apple Pencil Pro support (in Apple&apos;s comparison table of the Pro and the USB-C version, pressure sensing is on the Pro; the USB-C version doesn&apos;t have it)&quot;,
    reqCsp: &quot;Condition: listed on CLIP STUDIO PAINT&apos;s supported-device page and able to use a pen from its pressure-pen list (Apple Pencil 1st gen, 2nd gen, Pro). A 10.5-inch or larger screen is recommended&quot;,
    paperL: (p, l, s) =&gt; `Paper: a whole ${p} page (${s} × ${l} mm) at actual size`,
    miniOk: &quot;The iPad mini meets these conditions&quot;,
    miniPaper: (p) =&gt; `A whole ${p} page doesn&apos;t fit at actual size on the iPad mini&apos;s screen (about 176 × 116 mm)`,
    miniCsp: &quot;The iPad mini is on the supported-device list (standard-size work) and Apple Pencil Pro is a listed pressure pen, but its screen is below the recommended 10.5 inches&quot;,
    memNo: &quot;Apple doesn&apos;t state memory for the iPad mini or the iPad (A16), so whether they meet CLIP STUDIO PAINT&apos;s required 3 GB can&apos;t be judged&quot;,
    first: (name, w, d) =&gt; `First model that fits: ${name} (${w} g, ${d}-inch diagonal)`,
    firstRec: (name, w, d) =&gt; `First model that also meets the recommended screen size: ${name} (${w} g, ${d} in)`,
    recTight: &quot;Under 10% to spare against the recommended 10.5 inches, so it&apos;s borderline&quot;,
    firstMem: (name, gb) =&gt; `First model whose memory Apple also states: ${name} (${gb} GB, above the required 3 GB and the 6 GB recommended for high-resolution work)`,
    paperTight: (p, mm) =&gt; `About ${mm} mm to spare for ${p} (under 10% of the paper side), so it&apos;s borderline. The real display area has rounded corners and is smaller than calculated`,
    paperOk: (p, mm) =&gt; `About ${mm} mm to spare for ${p} (calculated from the diagonal measured as a rectangle; the real display area has rounded corners and is smaller)`,
    lighter: (name, w) =&gt; `Lighter model that also fits: ${name} (${w} g)`,
    sto: (name, list) =&gt; `Storage options for the ${name}: ${list}. Apple gives no guide to how much each use needs, so it isn&apos;t calculated`,
    hover: &quot;It also supports Apple Pencil hover&quot;,
    cspAir: &quot;The iPad Air (M4) isn&apos;t on CLIP STUDIO PAINT&apos;s supported-device page, so it isn&apos;t judged&quot;,
    cspOs: &quot;CLIP STUDIO PAINT lists iPadOS 18 / 26; the current iPadOS 27 isn&apos;t mentioned&quot;,
    gen1: &quot;The iPad (A16) can use the Apple Pencil (1st generation) with an adapter, and that pen is on CLIP STUDIO PAINT&apos;s pressure-pen list&quot;,
    noneA4: &quot;No current iPad shows a whole A4 page at actual size (even the 13-inch screens have a short side of about 198 mm)&quot;,
    noneW: &quot;No model in this weight range fits. Set carry weight to \&quot;Doesn&apos;t matter\&quot; to see one&quot;,
    noneAll: &quot;No model meets all of these conditions&quot;,
    vMini: &quot;✓ The iPad mini fits&quot;, vMiniCsp: &quot;△ The iPad mini is listed, but its screen is below the recommendation&quot;,
    vOther: (name) =&gt; `✓ The ${name} fits`, vTight: (name) =&gt; `△ The ${name} just fits`, vNg: &quot;✕ No model fits&quot;,
    note: &quot;Results come from Apple&apos;s spec and Apple Pencil pages and CLIP STUDIO PAINT&apos;s official requirements and supported-device page (checked October 2026). Screen dimensions split Apple&apos;s diagonal (measured as a rectangle) by the resolution&apos;s aspect ratio. Speed and feel weren&apos;t tested on real devices and aren&apos;t judged.&quot;,
  },
};

const stoL_ = (gb, lang) =&gt; { const sp = lang === &quot;en&quot; ? &quot; &quot; : &quot;&quot;; return gb &gt;= 1024 ? `${gb / 1024}${sp}TB` : `${gb}${sp}GB`; };

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;use&quot;, type: &quot;select&quot;, label: t.use, value: &quot;read&quot;, options: M.uses.map((x) =&gt; ({ value: x, label: t[x] })) },
    { name: &quot;w&quot;, type: &quot;select&quot;, label: t.w, value: &quot;any&quot;, options: Object.keys(M.weights).map((x) =&gt; ({ value: x, label: t[x] })) },
    { name: &quot;paper&quot;, type: &quot;select&quot;, label: t.paper, value: &quot;none&quot;, options: M.paperKeys.map((x) =&gt; ({ value: x, label: t[x] })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  if (!M.uses.includes(v.use) || !(v.w in M.weights) || !M.paperKeys.includes(v.paper)) return { status: &quot;error&quot;, lines: [] };
  const r = minimumModel(M, v.use, v.paper, v.w);
  const nm = (id) =&gt; M.models[id][lang];
  const lines = [];
  lines.push(v.use === &quot;read&quot; ? t.reqRead : v.use === &quot;pressure&quot; ? t.reqPressure : t.reqCsp);
  if (v.paper !== &quot;none&quot;) { const p = M.papers[v.paper]; lines.push(t.paperL(p.name, p.long, p.short)); }
  // iPad mini の判定
  const mini = r.mini;
  if (v.paper !== &quot;none&quot; &amp;&amp; mini.paper &amp;&amp; !mini.paper.ok) lines.push(t.miniPaper(M.papers[v.paper].name));
  else if (v.use === &quot;csp&quot;) { lines.push(t.miniCsp); lines.push(t.memNo); }
  else if (mini.ok) lines.push(t.miniOk);
  if (v.paper === &quot;a4&quot;) lines.push(t.noneA4);
  const base = v.use === &quot;csp&quot; ? (r.firstRec || r.first) : r.first;
  if (!base) {
    const anyW = minimumModel(M, v.use, v.paper, &quot;any&quot;);
    if (v.paper !== &quot;a4&quot;) lines.push((v.use === &quot;csp&quot; ? anyW.firstRec : anyW.first) ? t.noneW : t.noneAll);
    return { status: &quot;ng&quot;, verdict: t.vNg, lines, picks: [] };
  }
  const m = M.models[base.id];
  lines.push(v.use === &quot;csp&quot; &amp;&amp; r.firstRec ? t.firstRec(nm(base.id), m.w, m.diag) : t.first(nm(base.id), m.w, m.diag));
  const recTight = v.use === &quot;csp&quot; &amp;&amp; r.firstRec &amp;&amp; base.recTight;
  if (recTight) lines.push(t.recTight);
  if (v.use === &quot;csp&quot; &amp;&amp; r.firstRec &amp;&amp; !base.memJudged &amp;&amp; base.id !== &quot;mini&quot;) lines.push(t.memNo);
  if (v.use === &quot;csp&quot; &amp;&amp; base.id === &quot;ipad&quot;) lines.push(t.gen1);
  if (v.use === &quot;csp&quot; &amp;&amp; r.firstMem &amp;&amp; r.firstMem.id !== base.id) lines.push(t.firstMem(nm(r.firstMem.id), M.models[r.firstMem.id].mem));
  const pTight = base.paper &amp;&amp; base.paper.tight;
  if (base.paper) {
    const p = M.papers[v.paper].name;
    const mm = Math.round(Math.min(base.paper.mLong, base.paper.mShort));
    lines.push(pTight ? t.paperTight(p, mm) : t.paperOk(p, mm));
  }
  if (r.lighter &amp;&amp; !(v.use === &quot;csp&quot; &amp;&amp; r.firstMem &amp;&amp; r.firstMem.id === r.lighter.id)) lines.push(t.lighter(nm(r.lighter.id), M.models[r.lighter.id].w));
  if (v.use !== &quot;read&quot; &amp;&amp; m.hover) lines.push(t.hover);
  lines.push(t.sto(nm(base.id), m.tiers.map((x) =&gt; stoL_(x, lang)).join(lang === &quot;ja&quot; ? &quot;・&quot; : &quot;, &quot;)));
  if (v.use === &quot;csp&quot;) { lines.push(t.cspAir); lines.push(t.cspOs); }
  const cond = recTight || pTight || (v.use === &quot;csp&quot; &amp;&amp; (!r.firstRec || !base.memJudged));
  const status = cond ? &quot;cond&quot; : &quot;ok&quot;;
  let verdict;
  if (base.id === &quot;mini&quot;) verdict = v.use === &quot;csp&quot; ? t.vMiniCsp : t.vMini;
  else verdict = cond ? t.vTight(nm(base.id)) : t.vOther(nm(base.id));
  // 候補: その機種の容量違い。lib が条件に合う中で安い順の1位を出す
  const picks = productOf(M, base.id);
  let meter;
  if (base.paper) {
    const p = M.papers[v.paper];
    const max = Math.max(base.paper.short, p.short) * 1.2;
    meter = { min: 0, max, value: Math.round(base.paper.short), ok: [p.short, max], unit: &quot;mm&quot;, valueLabel: lang === &quot;ja&quot; ? `画面の短辺 約${Math.round(base.paper.short)}mm` : `Screen short side ~${Math.round(base.paper.short)} mm`, okLabel: lang === &quot;ja&quot; ? `${p.name} の短辺 ${p.short}mm` : `${p.name} short side ${p.short} mm` };
  }
  return { status, verdict, lines: [...new Set(lines)], picks, ...(meter ? { meter } : {}) };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（用途 × 紙 × 持ち歩き）
function presets() {
  const P = (use, paper = &quot;none&quot;, w = &quot;any&quot;) =&gt; ({ use, w, paper });
  return [
    P(&quot;read&quot;), P(&quot;read&quot;, &quot;none&quot;, &quot;w350&quot;), P(&quot;read&quot;, &quot;a6&quot;), P(&quot;read&quot;, &quot;a5&quot;), P(&quot;read&quot;, &quot;a4&quot;),
    P(&quot;pressure&quot;), P(&quot;pressure&quot;, &quot;none&quot;, &quot;w350&quot;), P(&quot;pressure&quot;, &quot;a5&quot;), P(&quot;pressure&quot;, &quot;a5&quot;, &quot;w350&quot;), P(&quot;pressure&quot;, &quot;a5&quot;, &quot;w500&quot;),
    P(&quot;csp&quot;), P(&quot;csp&quot;, &quot;none&quot;, &quot;w350&quot;), P(&quot;csp&quot;, &quot;none&quot;, &quot;w500&quot;), P(&quot;csp&quot;, &quot;a5&quot;),
  ];
}

// カードに出す仕様（その商品の構成のうち、この計算で使った値）
function pickSpecs(id, v, M, lang) {
  const p = M.products[id];
  if (!p) return [];
  const m = M.models[p.fam];
  const ja = lang === &quot;ja&quot;;
  return [
    ja ? `容量 ${stoL_(p.gb, lang)}・Wi-Fi モデル` : `${stoL_(p.gb, lang)}, Wi-Fi`,
    ja ? `画面の対角 ${m.diag}インチ・重さ ${m.w}g` : `${m.diag}-inch diagonal, ${m.w} g`,
    m.pencilPro ? (ja ? &quot;Apple Pencil Pro 対応&quot; : &quot;Apple Pencil Pro support&quot;) : (ja ? &quot;Apple Pencil（USB-C）・第1世代（アダプタ）対応&quot; : &quot;Apple Pencil (USB-C) and 1st gen (adapter)&quot;),
  ];
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;pills&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;apple-pencil-pressure-and-hover&quot;&gt;Apple Pencil pressure and hover&lt;/h2&gt;
&lt;p&gt;In Apple’s comparison table (Pro vs. USB-C), pressure sensing is on Apple Pencil Pro, not on the USB-C model. The iPad mini supports the Pro, but the base iPad (A16 chip) doesn’t.&lt;/p&gt;
&lt;p&gt;Per Apple’s Apple Pencil pages, the iPad mini supports Apple Pencil hover. No hover support was found for the base iPad (A16 chip) on Apple’s pages.&lt;/p&gt;
&lt;p&gt;Only the base iPad (A16 chip) can use the Apple Pencil 1st generation, with an adapter. The iPad mini can’t use the 1st or 2nd generation. Apple’s table doesn’t cover the 1st generation, so its pressure support isn’t judged there, but CLIP STUDIO PAINT’s list includes it as a pressure pen.&lt;/p&gt;
&lt;h2 id=&quot;when-the-base-ipad-or-the-11-inch-ipad-air-makes-sense&quot;&gt;When the base iPad or the 11-inch iPad Air makes sense&lt;/h2&gt;
&lt;p&gt;Among current iPads, a whole A5 page at actual size needs 10.86 in diagonal or more, judged on the whole screen, not the app’s drawing area. At 10.86 in and 11.1 in the margin is under 10%, so it’s borderline. From 12.9 in up there’s room.&lt;/p&gt;
&lt;p&gt;For pressure-sensitive handwriting with A5 at actual size, the 11-inch iPad Air just fits, so it’s borderline. Without pressure sensing, the base iPad (A16 chip) also just fits.&lt;/p&gt;
&lt;h2 id=&quot;clip-studio-paint-notes&quot;&gt;CLIP STUDIO PAINT notes&lt;/h2&gt;
&lt;p&gt;Per CLIP STUDIO PAINT’s official requirements, the iPad mini is on the supported-device list for standard-size work, not the high-resolution list. The listed pressure pens include Apple Pencil Pro. The screen is below the recommended 10.5 in, and the required 3 GB of memory can’t be judged from Apple’s specs.&lt;/p&gt;
&lt;p&gt;The iPad Air (M4) isn’t on the supported-device page, so this article doesn’t judge it.&lt;/p&gt;
&lt;p&gt;Apple Pencil (USB-C) isn’t in the list of pressure-sensitive pens.&lt;/p&gt;
&lt;p&gt;The listed OS versions are iPadOS 18 and iPadOS 26; the current iPadOS 27 wasn’t found there.&lt;/p&gt;
&lt;h2 id=&quot;main-specs-compared-weight-storage-apple-pencil-memory&quot;&gt;Main specs compared (weight, storage, Apple Pencil, memory)&lt;/h2&gt;
&lt;p&gt;Comparing Apple’s current iPads on its spec pages (October 2026), the iPad mini is the smallest and lightest model at 293 g, 171 g lighter than the 11-inch iPad Air.&lt;/p&gt;





































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Model&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Screen diagonal&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Weight&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Storage&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Apple Pencil&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Memory&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;iPad mini&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8.3 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;293 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;128 GB, 256 GB, 512 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Pro, USB-C&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not stated by Apple&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Base iPad (A16 chip)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;10.86 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;477 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;128 GB, 256 GB, 512 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;USB-C, 1st gen (adapter)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Not stated by Apple&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;11-inch iPad Air&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;10.86 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;464 g&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;128 GB, 256 GB, 512 GB, 1 TB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Pro, USB-C&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;12 GB&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Weights are for the Wi-Fi models. The iPad mini with Wi-Fi + Cellular weighs 297 g.&lt;/li&gt;
&lt;li&gt;Apple’s tests put battery life at up to 10 hours. That’s Wi-Fi web browsing and video playback, not time spent drawing.&lt;/li&gt;
&lt;li&gt;Comparing Apple’s current iPads on its spec pages (October 2026), ProMotion is listed only for the iPad Pro; it wasn’t found for the iPad mini.&lt;/li&gt;
&lt;li&gt;The iPad mini can connect an external display over USB-C. Apple’s spec page lists native DisplayPort output over USB-C, and VGA, HDMI and DVI output with adapters (sold separately).&lt;/li&gt;
&lt;li&gt;Per Apple’s spec pages, memory for the iPad mini and the base iPad (A16 chip) wasn’t found. It is listed for the iPad Air and the iPad Pro.&lt;/li&gt;
&lt;li&gt;Per Apple’s spec pages, this article judges only official specs and requirements; speed and feel weren’t tested on real devices and aren’t judged.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;picks-by-condition&quot;&gt;Picks by condition&lt;/h2&gt;
&lt;p&gt;One pick per condition, from Amazon.com:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sold new by Amazon.com, with a configuration that matches Apple’s spec&lt;/li&gt;
&lt;li&gt;At least 100 ratings and 4 stars or more&lt;/li&gt;
&lt;li&gt;If several listings qualify, the cheapest of those checked&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Prices vary, so check them on the retailer’s page.&lt;/p&gt;
&lt;h3 id=&quot;reading-and-notes-without-pressure-sensing-or-pressure-sensitive-handwriting-with-apple-pencil-pro-350-g-or-less-pages-up-to-a6-at-actual-size&quot;&gt;Reading and notes without pressure sensing, or pressure-sensitive handwriting with Apple Pencil Pro, 350 g or less, pages up to A6 at actual size&lt;/h3&gt;
&lt;p&gt;Calculated from diagonal and resolution, the screen is about 176 × 116 mm, so A5 doesn’t fit.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad mini (A17 Pro), 128GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Tix2-t7iL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad mini (A17 Pro), 128GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK46C5SG?q=iPad+mini+%28A17+Pro%29%2C+128GB&amp;amp;us=B0DK3W6TV6&amp;amp;l=en&quot; aria-label=&quot;View iPad mini (A17 Pro), 128GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Color variants are listed; price may vary by color. The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h3 id=&quot;a5-paper-without-pressure-sensing-or-a-screen-at-or-above-clip-studio-paints-recommended-105-in&quot;&gt;A5 paper without pressure sensing, or a screen at or above CLIP STUDIO PAINT’s recommended 10.5 in&lt;/h3&gt;
&lt;p&gt;The A5 margin is under 10% of the paper’s side, so it’s borderline. Per CLIP STUDIO PAINT’s official requirements, this model is on the standard-size list, and its screen meets the recommended 10.5 in by a small margin, so it’s borderline. The required 3 GB of memory can’t be judged from Apple’s specs. The pressure pen is the 1st generation with an adapter, and Apple Pencil (USB-C) isn’t on the pressure-pen list.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for iPad (A16), 128GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61Q-vahOT9L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;iPad (A16), 128GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DZ8HV6RT?q=iPad+%28A16%29%2C+128GB&amp;amp;us=B0DZ77D5HL&amp;amp;l=en&quot; aria-label=&quot;View iPad (A16), 128GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h3 id=&quot;pressure-sensitive-handwriting-with-a5-at-actual-size&quot;&gt;Pressure-sensitive handwriting with A5 at actual size&lt;/h3&gt;
&lt;p&gt;The A5 margin is small here too, so it’s borderline.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 11-inch iPad Air (M4), 128GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71oepHm9ALL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;11-inch iPad Air (M4), 128GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GQWJCR4K?q=11-inch+iPad+Air+%28M4%29%2C+128GB&amp;amp;us=B0GQVPX1PJ&amp;amp;l=en&quot; aria-label=&quot;View 11-inch iPad Air (M4), 128GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;should-you-buy-the-ipad-mini&quot;&gt;Should you buy the iPad mini?&lt;/h3&gt;
&lt;p&gt;For reading, notes and pressure-sensitive handwriting with pages up to A6 shown at actual size, the smallest and lightest current 8.3 in model is enough. Among current iPads, a whole A5 page at actual size needs a 10.86 in or larger screen, and 10.86 in and 11.1 in are borderline.&lt;/p&gt;
&lt;p&gt;That compares the whole screen with the page, not the app’s drawing area after toolbars.&lt;/p&gt;
&lt;h3 id=&quot;whats-the-difference-between-the-ipad-air-and-the-ipad-mini&quot;&gt;What’s the difference between the iPad Air and the iPad mini?&lt;/h3&gt;
&lt;p&gt;The current model with an 8.3 in screen is the smaller, lighter one at 293 g. The current 11-inch model with the M4 chip is 10.86 in diagonal and 464 g, with 12 GB of memory per Apple’s specs.&lt;/p&gt;
&lt;p&gt;No memory figure was found for the 8.3 in model. Which is which is in the main specs table.&lt;/p&gt;
&lt;h3 id=&quot;base-ipad-or-ipad-mini&quot;&gt;Base iPad or iPad mini?&lt;/h3&gt;
&lt;p&gt;Among current iPads, for pressure-sensitive handwriting with pages up to A6 at actual size, pick the 8.3 in model. For A5 at actual size with pressure, pick the 11-inch model with the M4 chip, which just fits; without pressure sensing, the A16-chip model also just fits.&lt;/p&gt;
&lt;p&gt;Per Apple’s Apple Pencil pages, the current model with an 8.3 in screen supports Apple Pencil hover. No hover support was found for the current A16-chip model on Apple’s pages.&lt;/p&gt;
&lt;p&gt;The models are in the main specs table.&lt;/p&gt;
&lt;h3 id=&quot;how-much-storage-should-you-get-on-the-ipad-mini&quot;&gt;How much storage should you get on the iPad mini?&lt;/h3&gt;
&lt;p&gt;Storage on the current model with an 8.3 in screen comes in three sizes: 128 GB, 256 GB, 512 GB. Every option exceeds CLIP STUDIO PAINT’s 6 GB free-space requirement, but Apple gives no guide to how much each use needs, so that isn’t calculated.&lt;/p&gt;
&lt;h3 id=&quot;which-apple-pencil-works-with-the-ipad-mini&quot;&gt;Which Apple Pencil works with the iPad mini?&lt;/h3&gt;
&lt;p&gt;Apple Pencil Pro and Apple Pencil (USB-C) both work with the current model with an 8.3 in screen, but the 1st and 2nd generations don’t. Only the Pro senses pressure, per Apple’s comparison table (Pro vs. USB-C), so the USB-C model is enough without it.&lt;/p&gt;
&lt;h3 id=&quot;is-the-ipad-minis-screen-too-small-can-you-draw-on-it&quot;&gt;Is the iPad mini’s screen too small? Can you draw on it?&lt;/h3&gt;
&lt;p&gt;Calculated from Apple’s diagonal and resolution, an 8.3 in diagonal screen works out to about 176 × 116 mm. Compared as the whole screen before app toolbars, A6 fits at actual size, but A5 doesn’t.&lt;/p&gt;
&lt;p&gt;The real display area has rounded corners and is slightly smaller. Per CLIP STUDIO PAINT’s official requirements, the current model with an 8.3 in screen is on the supported-device list for standard-size work, not the high-resolution list.&lt;/p&gt;
&lt;p&gt;The listed pressure pens include Apple Pencil Pro. The screen is below the recommended 10.5 in, and the required 3 GB of memory can’t be judged from Apple’s specs.&lt;/p&gt;
&lt;p&gt;Nothing was tested on a real iPad, so comfort isn’t judged.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;:&lt;/p&gt;&lt;p&gt;Sources: Apple specs for &lt;a href=&quot;https://www.apple.com/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;iPad mini&lt;/a&gt;, &lt;a href=&quot;https://www.apple.com/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;iPad (A16)&lt;/a&gt; and &lt;a href=&quot;https://www.apple.com/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;iPad Air&lt;/a&gt;, and &lt;a href=&quot;https://www.apple.com/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Compare iPad&lt;/a&gt; ／ &lt;a href=&quot;https://www.apple.com/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Apple Pencil&lt;/a&gt; and &lt;a href=&quot;https://support.apple.com/en-us/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Apple Pencil compatibility&lt;/a&gt; ／ &lt;a href=&quot;https://www.clipstudio.net/en/dl/system/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;CLIP STUDIO PAINT system requirements&lt;/a&gt;, &lt;a href=&quot;https://support.clip-studio.com/en-us/faq/articles/20200153&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;supported-device FAQ&lt;/a&gt; and &lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;the ISO 216 table (University of Cambridge)&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Current lineup: the six models in ‘Current iPad models’ on Apple’s compare page: 13- and 11-inch iPad Pro (M5), 13- and 11-inch iPad Air (M4), iPad (A16) and iPad mini (A17 Pro). Older models are not covered.&lt;/li&gt;
&lt;li&gt;Specs: Apple’s spec page for each model (Japan and US) and the compare page. Memory is quoted only where Apple states it (iPad Pro and iPad Air); otherwise ‘not stated’ and no figure is guessed.&lt;/li&gt;
&lt;li&gt;Battery life is Apple’s test figure on pre-production units, not drawing time.&lt;/li&gt;
&lt;li&gt;Apple Pencil support: Apple’s ‘Apple Pencil compatibility’ page (published 2026-03-31) and the Apple Pencil page. The page states pressure sensing is on Apple Pencil Pro but not Apple Pencil (USB-C).&lt;/li&gt;
&lt;li&gt;App requirements: Procreate 5.4.14 (current per its Help Center) needs iPadOS 16.3 or later; CLIP STUDIO PAINT for iPad per its official requirements (iPadOS 18 / 26, 3GB required, 4GB recommended, 6GB for high-resolution work) and its supported-device FAQ.&lt;/li&gt;
&lt;li&gt;Screen dimensions: Apple’s diagonal (measured as a rectangle, in inches) × 25.4, split into long and short sides by the resolution’s aspect ratio. Long = diagonal mm × horizontal px ÷ √(h px² + v px²); short = diagonal mm × vertical px ÷ √(h px² + v px²). Example: the iPad mini’s 8.3 × 25.4 = 210.8 mm split by 2266:1488 gives about 176 × 116 mm. The long side matches resolution ÷ ppi within 1.5 mm. As Apple notes, the real display area has rounded corners and is smaller.&lt;/li&gt;
&lt;li&gt;Whole page at actual size: the paper’s long and short sides (ISO 216: A6 105 × 148 mm, A5 148 × 210 mm, A4 210 × 297 mm) compared with the screen’s. If the margin (screen − paper) is under 10% of that paper side, it’s borderline.&lt;/li&gt;
&lt;li&gt;Use conditions: reading/notes without Apple Pencil has none. Pressure-sensitive handwriting needs Apple Pencil Pro support (Apple’s Apple Pencil comparison covers Pro and USB-C, and only Pro has pressure sensing). Pressure on the Apple Pencil (1st generation) isn’t in that table, so it isn’t judged.&lt;/li&gt;
&lt;li&gt;CLIP STUDIO PAINT: being on its supported-device page and able to use a pen from its pressure-pen list (Apple Pencil 1st gen, 2nd gen, Pro) are checked as required; a 10.5 in or larger screen is checked separately as a recommendation (borderline if Apple’s diagonal exceeds it by under 10%). Memory (3 GB required) is judged only where Apple states it (iPad Air, iPad Pro); for the iPad mini and iPad (A16) it can’t be judged. The iPad Air (M4), absent from the supported-device page, is treated as not listed, not as unsupported.&lt;/li&gt;
&lt;li&gt;Calculator order: it looks for the first model that fits in the order iPad mini → iPad (A16) → 11-inch iPad Air → 13-inch iPad Air → 11-inch iPad Pro → 13-inch iPad Pro (smaller lines first). This is not a price comparison. Carry-weight limits (350 g, 500 g) use Wi-Fi weights; the Cellular models fall in the same bands.&lt;/li&gt;
&lt;li&gt;Products: new Wi-Fi models with standard glass on Amazon.co.jp and Amazon.com. A candidate needs 100+ ratings, 4.0+ stars, Amazon as seller, a configuration matching Apple’s spec, and (Japan) no strong sakura warning.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;


































































































































































































































































































































































































































































































































































































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): screen diagonal (measured as a rectangle)&lt;/td&gt;&lt;td&gt;13 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): resolution (long side)&lt;/td&gt;&lt;td&gt;2752 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): resolution (short side)&lt;/td&gt;&lt;td&gt;2064 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): pixel density&lt;/td&gt;&lt;td&gt;264 ppi&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): weight (Wi-Fi model)&lt;/td&gt;&lt;td&gt;579 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): weight (Wi-Fi + Cellular model)&lt;/td&gt;&lt;td&gt;582 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): body height&lt;/td&gt;&lt;td&gt;281.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): body width&lt;/td&gt;&lt;td&gt;215.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): body thickness&lt;/td&gt;&lt;td&gt;5.1 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): chip&lt;/td&gt;&lt;td&gt;M5 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): storage options&lt;/td&gt;&lt;td&gt;256GB, 512GB, 1TB, 2TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): memory&lt;/td&gt;&lt;td&gt;12GB on 256GB/512GB models, 16GB on 1TB/2TB models (unified memory)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): port&lt;/td&gt;&lt;td&gt;Thunderbolt / USB 4 port (USB-C connector). USB 4 (up to 40Gb/s)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): battery capacity&lt;/td&gt;&lt;td&gt;38.99 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): battery life (Apple test figure, web browsing and video over Wi-Fi)&lt;/td&gt;&lt;td&gt;up to 10 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): refresh rate&lt;/td&gt;&lt;td&gt;ProMotion technology with an adaptive refresh rate of 10Hz to 120Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): display type, lamination and color gamut&lt;/td&gt;&lt;td&gt;Ultra Retina XDR (tandem OLED). Fully laminated. Wide color (P3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): Nano-texture glass&lt;/td&gt;&lt;td&gt;Nano-texture display glass is an option on 1TB and 2TB models&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): supported Apple Pencil&lt;/td&gt;&lt;td&gt;Apple Pencil Pro, Apple Pencil (USB-C)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Pro (M5): Apple Pencil hover&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): screen diagonal (measured as a rectangle)&lt;/td&gt;&lt;td&gt;11.1 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): resolution (long side)&lt;/td&gt;&lt;td&gt;2420 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): resolution (short side)&lt;/td&gt;&lt;td&gt;1668 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): pixel density&lt;/td&gt;&lt;td&gt;264 ppi&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): weight (Wi-Fi model)&lt;/td&gt;&lt;td&gt;444 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): weight (Wi-Fi + Cellular model)&lt;/td&gt;&lt;td&gt;446 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): body height&lt;/td&gt;&lt;td&gt;249.7 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): body width&lt;/td&gt;&lt;td&gt;177.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): body thickness&lt;/td&gt;&lt;td&gt;5.3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): chip&lt;/td&gt;&lt;td&gt;M5 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): storage options&lt;/td&gt;&lt;td&gt;256GB, 512GB, 1TB, 2TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): memory&lt;/td&gt;&lt;td&gt;12GB on 256GB/512GB models, 16GB on 1TB/2TB models (unified memory)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): port&lt;/td&gt;&lt;td&gt;Thunderbolt / USB 4 port (USB-C connector). USB 4 (up to 40Gb/s)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): battery capacity&lt;/td&gt;&lt;td&gt;31.29 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): battery life (Apple test figure, web browsing and video over Wi-Fi)&lt;/td&gt;&lt;td&gt;up to 10 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): refresh rate&lt;/td&gt;&lt;td&gt;ProMotion technology with an adaptive refresh rate of 10Hz to 120Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): display type, lamination and color gamut&lt;/td&gt;&lt;td&gt;Ultra Retina XDR (tandem OLED). Fully laminated. Wide color (P3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): Nano-texture glass&lt;/td&gt;&lt;td&gt;Nano-texture display glass is an option on 1TB and 2TB models&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): supported Apple Pencil&lt;/td&gt;&lt;td&gt;Apple Pencil Pro, Apple Pencil (USB-C)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Pro (M5): Apple Pencil hover&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): screen diagonal (measured as a rectangle)&lt;/td&gt;&lt;td&gt;12.9 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): resolution (long side)&lt;/td&gt;&lt;td&gt;2732 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): resolution (short side)&lt;/td&gt;&lt;td&gt;2048 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): pixel density&lt;/td&gt;&lt;td&gt;264 ppi&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): weight (Wi-Fi model)&lt;/td&gt;&lt;td&gt;616 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): weight (Wi-Fi + Cellular model)&lt;/td&gt;&lt;td&gt;617 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): body height&lt;/td&gt;&lt;td&gt;280.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): body width&lt;/td&gt;&lt;td&gt;214.9 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): body thickness&lt;/td&gt;&lt;td&gt;6.1 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): chip&lt;/td&gt;&lt;td&gt;M4 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): storage options&lt;/td&gt;&lt;td&gt;128GB, 256GB, 512GB, 1TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): memory&lt;/td&gt;&lt;td&gt;12GB (unified memory)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): port&lt;/td&gt;&lt;td&gt;USB-C port. USB 3 (up to 10Gb/s)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): battery capacity&lt;/td&gt;&lt;td&gt;36.59 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): battery life (Apple test figure, web browsing and video over Wi-Fi)&lt;/td&gt;&lt;td&gt;up to 10 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): refresh rate (not stated by Apple)&lt;/td&gt;&lt;td&gt;No ProMotion or refresh-rate figure stated by Apple&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): display type, lamination and color gamut&lt;/td&gt;&lt;td&gt;Liquid Retina (IPS). Fully laminated. Wide color (P3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): supported Apple Pencil&lt;/td&gt;&lt;td&gt;Apple Pencil Pro, Apple Pencil (USB-C)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13-inch iPad Air (M4): Apple Pencil hover&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): screen diagonal (measured as a rectangle)&lt;/td&gt;&lt;td&gt;10.86 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): resolution (long side)&lt;/td&gt;&lt;td&gt;2360 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): resolution (short side)&lt;/td&gt;&lt;td&gt;1640 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): pixel density&lt;/td&gt;&lt;td&gt;264 ppi&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): weight (Wi-Fi model)&lt;/td&gt;&lt;td&gt;464 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): weight (Wi-Fi + Cellular model)&lt;/td&gt;&lt;td&gt;465 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): body height&lt;/td&gt;&lt;td&gt;247.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): body width&lt;/td&gt;&lt;td&gt;178.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): body thickness&lt;/td&gt;&lt;td&gt;6.1 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): chip&lt;/td&gt;&lt;td&gt;M4 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): storage options&lt;/td&gt;&lt;td&gt;128GB, 256GB, 512GB, 1TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): memory&lt;/td&gt;&lt;td&gt;12GB (unified memory)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): port&lt;/td&gt;&lt;td&gt;USB-C port. USB 3 (up to 10Gb/s)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): battery capacity&lt;/td&gt;&lt;td&gt;28.93 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): battery life (Apple test figure, web browsing and video over Wi-Fi)&lt;/td&gt;&lt;td&gt;up to 10 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): refresh rate (not stated by Apple)&lt;/td&gt;&lt;td&gt;No ProMotion or refresh-rate figure stated by Apple&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): display type, lamination and color gamut&lt;/td&gt;&lt;td&gt;Liquid Retina (IPS). Fully laminated. Wide color (P3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): supported Apple Pencil&lt;/td&gt;&lt;td&gt;Apple Pencil Pro, Apple Pencil (USB-C)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11-inch iPad Air (M4): Apple Pencil hover&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): screen diagonal (measured as a rectangle)&lt;/td&gt;&lt;td&gt;10.86 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): resolution (long side)&lt;/td&gt;&lt;td&gt;2360 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): resolution (short side)&lt;/td&gt;&lt;td&gt;1640 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): pixel density&lt;/td&gt;&lt;td&gt;264 ppi&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): weight (Wi-Fi model)&lt;/td&gt;&lt;td&gt;477 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): weight (Wi-Fi + Cellular model)&lt;/td&gt;&lt;td&gt;481 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): body height&lt;/td&gt;&lt;td&gt;248.6 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): body width&lt;/td&gt;&lt;td&gt;179.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): body thickness&lt;/td&gt;&lt;td&gt;7 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): chip&lt;/td&gt;&lt;td&gt;A16 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): storage options&lt;/td&gt;&lt;td&gt;128GB, 256GB, 512GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): memory (not stated by Apple)&lt;/td&gt;&lt;td&gt;not stated by Apple&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): port&lt;/td&gt;&lt;td&gt;USB-C port. USB 2.0 (up to 480Mb/s)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): battery capacity&lt;/td&gt;&lt;td&gt;28.93 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): battery life (Apple test figure, web browsing and video over Wi-Fi)&lt;/td&gt;&lt;td&gt;up to 10 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): refresh rate (not stated by Apple)&lt;/td&gt;&lt;td&gt;No ProMotion or refresh-rate figure stated by Apple&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): display type, lamination and color gamut&lt;/td&gt;&lt;td&gt;Liquid Retina (IPS). No full lamination stated. sRGB color (no P3 stated)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-11/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): supported Apple Pencil&lt;/td&gt;&lt;td&gt;Apple Pencil (USB-C), Apple Pencil (1st generation) (needs the USB-C to Apple Pencil Adapter)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16): Apple Pencil hover&lt;/td&gt;&lt;td&gt;Not listed as supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): screen diagonal (measured as a rectangle)&lt;/td&gt;&lt;td&gt;8.3 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): resolution (long side)&lt;/td&gt;&lt;td&gt;2266 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): resolution (short side)&lt;/td&gt;&lt;td&gt;1488 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): pixel density&lt;/td&gt;&lt;td&gt;326 ppi&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): weight (Wi-Fi model)&lt;/td&gt;&lt;td&gt;293 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): weight (Wi-Fi + Cellular model)&lt;/td&gt;&lt;td&gt;297 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): body height&lt;/td&gt;&lt;td&gt;195.4 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): body width&lt;/td&gt;&lt;td&gt;134.8 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): body thickness&lt;/td&gt;&lt;td&gt;6.3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): chip&lt;/td&gt;&lt;td&gt;A17 Pro text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): storage options&lt;/td&gt;&lt;td&gt;128GB, 256GB, 512GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): memory (not stated by Apple)&lt;/td&gt;&lt;td&gt;not stated by Apple&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): port&lt;/td&gt;&lt;td&gt;USB-C port. USB 3 (up to 10Gb/s)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): battery capacity&lt;/td&gt;&lt;td&gt;19.3 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): battery life (Apple test figure, web browsing and video over Wi-Fi)&lt;/td&gt;&lt;td&gt;up to 10 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): refresh rate (not stated by Apple)&lt;/td&gt;&lt;td&gt;No ProMotion or refresh-rate figure stated by Apple&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): display type, lamination and color gamut&lt;/td&gt;&lt;td&gt;Liquid Retina (IPS). Fully laminated. Wide color (P3)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): supported Apple Pencil&lt;/td&gt;&lt;td&gt;Apple Pencil Pro, Apple Pencil (USB-C)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): Apple Pencil hover&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Apple Pencil Pro: pressure sensing&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Apple Pencil (USB-C): pressure sensing&lt;/td&gt;&lt;td&gt;Not supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Apple Pencil Pro: tilt sensing&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Apple Pencil (USB-C): tilt sensing&lt;/td&gt;&lt;td&gt;Supported&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Features only Apple Pencil Pro has&lt;/td&gt;&lt;td&gt;Squeeze, barrel roll, haptic feedback, double tap and Find My (not on Apple Pencil (USB-C))&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad models with Apple Pencil hover&lt;/td&gt;&lt;td&gt;Supported on iPad Pro (M4, M5), iPad Air (M2, M3, M4) and iPad mini (A17 Pro), among others; iPad (A16) is not listed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPadOS needed for Apple Pencil (USB-C)&lt;/td&gt;&lt;td&gt;iPadOS 17.1.1 or later&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad (A16) and Apple Pencil (1st generation)&lt;/td&gt;&lt;td&gt;iPad (A16) also works with Apple Pencil (1st generation) when paired and charged through the USB-C to Apple Pencil Adapter&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Apple Pencil (2nd generation) support&lt;/td&gt;&lt;td&gt;None of the six current iPads supports Apple Pencil (2nd generation)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/ja-jp/108937&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad models Apple currently sells&lt;/td&gt;&lt;td&gt;13-inch iPad Pro (M5), 11-inch iPad Pro (M5), 13-inch iPad Air (M4), 11-inch iPad Air (M4), iPad (A16), iPad mini (A17 Pro)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Latest iPadOS version on Apple’s iPadOS page&lt;/td&gt;&lt;td&gt;iPadOS 27 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipados/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Procreate for iPad: current version&lt;/td&gt;&lt;td&gt;5.4.14 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://help.procreate.com/articles/dbgjal-procreate-faq&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;help.procreate.com&lt;/a&gt; Procreate FAQ: The current version of Procreate for iPad is 5.4.14&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPadOS required by Procreate 5.4.14 (or later)&lt;/td&gt;&lt;td&gt;16.3 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://help.procreate.com/articles/dbgjal-procreate-faq&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;help.procreate.com&lt;/a&gt; Procreate FAQ: Procreate 5.4.14 requires an iPad running iPadOS 16.3 or newer&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Procreate: current iPads that qualify&lt;/td&gt;&lt;td&gt;Procreate lists no model names, only iPadOS 16.3 or later. All six current iPads run iPadOS 27, so all meet it&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://help.procreate.com/articles/dbgjal-procreate-faq&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;help.procreate.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Procreate: maximum canvas by device&lt;/td&gt;&lt;td&gt;134 megapixels (11,585px x 11,585px) on iPad Pro (M4, M5) and iPad Air (M2, M3); 67 megapixels (8,192px x 8,192px) on iPad mini (6th and 7th generation). iPad (A16) and iPad Air (M4) are not listed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://help.procreate.com/articles/dabqrn-maximum-canvas-size&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;help.procreate.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT for iPad: App Store version&lt;/td&gt;&lt;td&gt;5.1.4 text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://apps.apple.com/jp/app/clip-studio-paint/id1262985592&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apps.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT for iPad: OS in the official requirements&lt;/td&gt;&lt;td&gt;iPadOS 18 / iPadOS 26 (iPadOS 27 is not mentioned)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.clipstudio.net/ja/dl/system/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;clipstudio.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT for iPad: memory requirement&lt;/td&gt;&lt;td&gt;3GB or more required, 4GB or more recommended; 6GB or more recommended for high-resolution illustration and manga&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.clipstudio.net/ja/dl/system/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;clipstudio.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT for iPad: recommended display size&lt;/td&gt;&lt;td&gt;A display of 10.5 inches or larger is recommended&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.clipstudio.net/ja/dl/system/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;clipstudio.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT for iPad: free storage&lt;/td&gt;&lt;td&gt;6GB or more of free storage&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.clipstudio.net/ja/dl/system/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;clipstudio.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT for iPad: pressure-sensitive pens in the official requirements&lt;/td&gt;&lt;td&gt;Apple Pencil (1st generation), Apple Pencil (2nd generation), Apple Pencil Pro (Apple Pencil (USB-C) is not listed)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.clipstudio.net/ja/dl/system/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;clipstudio.net&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT supported devices: high-resolution list&lt;/td&gt;&lt;td&gt;High-resolution illustration and manga list: 13- and 11-inch iPad Pro (M5), (M4), 13- and 11-inch iPad Air (M3, M2) and others. iPad Air (M4) is not on the page&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.clip-studio.com/ja-jp/faq/articles/20200153&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.clip-studio.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CLIP STUDIO PAINT supported devices: standard-size list&lt;/td&gt;&lt;td&gt;Standard-size illustration and web manga list: iPad (A16), iPad mini (A17 Pro) and others&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.clip-studio.com/ja-jp/faq/articles/20200153&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.clip-studio.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad Air (M4) and CLIP STUDIO PAINT&lt;/td&gt;&lt;td&gt;iPad Air (M4) is not on CLIP STUDIO PAINT’s supported-device page (FAQ updated 2025-12-02)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.clip-studio.com/ja-jp/faq/articles/20200153&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.clip-studio.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A6 paper short side&lt;/td&gt;&lt;td&gt;105 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A6 paper long side&lt;/td&gt;&lt;td&gt;148 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5 paper short side&lt;/td&gt;&lt;td&gt;148 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5 paper long side&lt;/td&gt;&lt;td&gt;210 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A4 paper short side&lt;/td&gt;&lt;td&gt;210 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A4 paper long side&lt;/td&gt;&lt;td&gt;297 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Models in the feature comparison on Apple’s Apple Pencil page&lt;/td&gt;&lt;td&gt;The feature comparison covers only Apple Pencil Pro and Apple Pencil (USB-C); pressure for the 1st and 2nd generation is not in that table&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/apple-pencil/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iPad mini (A17 Pro): video output&lt;/td&gt;&lt;td&gt;native DisplayPort output over USB-C, and VGA, HDMI and DVI output with adapters (sold separately)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/ipad-mini/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Is the iPad mini enough for your use?: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result and a matching product for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;















































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Reading / notes (no pressure needed), Doesn’t matter, Not set&lt;/td&gt;&lt;td&gt;✓ The iPad mini fits. Condition: no pressure sensing needed, so only screen and weight are checked. The iPad mini meets these conditions. First model that fits: iPad mini (A17 Pro) (293 g, 8.3-inch diagonal). Storage options for the iPad mini (A17 Pro): 128 GB, 256 GB, 512 GB. Apple gives no guide to how much each use needs, so it isn’t calculated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=read&amp;amp;ipad-mini-fit-calc-w=any&amp;amp;ipad-mini-fit-calc-paper=none#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Reading / notes (no pressure needed), 350 g or less, Not set&lt;/td&gt;&lt;td&gt;✓ The iPad mini fits. Condition: no pressure sensing needed, so only screen and weight are checked. The iPad mini meets these conditions. First model that fits: iPad mini (A17 Pro) (293 g, 8.3-inch diagonal). Storage options for the iPad mini (A17 Pro): 128 GB, 256 GB, 512 GB. Apple gives no guide to how much each use needs, so it isn’t calculated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=read&amp;amp;ipad-mini-fit-calc-w=w350&amp;amp;ipad-mini-fit-calc-paper=none#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Reading / notes (no pressure needed), Doesn’t matter, A6&lt;/td&gt;&lt;td&gt;✓ The iPad mini fits. Condition: no pressure sensing needed, so only screen and weight are checked. Paper: a whole A6 page (105 × 148 mm) at actual size. The iPad mini meets these conditions. First model that fits: iPad mini (A17 Pro) (293 g, 8.3-inch diagonal). About 11 mm to spare for A6 (calculated from the diagonal measured as a rectangle; the real display area has rounded corners and is smaller). Storage options for the iPad mini (A17 Pro): 128 GB, 256 GB, 512 GB. Apple gives no guide to how much each use needs, so it isn’t calculated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=read&amp;amp;ipad-mini-fit-calc-w=any&amp;amp;ipad-mini-fit-calc-paper=a6#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Reading / notes (no pressure needed), Doesn’t matter, A5&lt;/td&gt;&lt;td&gt;△ The iPad (A16) just fits. Condition: no pressure sensing needed, so only screen and weight are checked. Paper: a whole A5 page (148 × 210 mm) at actual size. A whole A5 page doesn’t fit at actual size on the iPad mini’s screen (about 176 × 116 mm). First model that fits: iPad (A16) (477 g, 10.86-inch diagonal). About 9 mm to spare for A5 (under 10% of the paper side), so it’s borderline. The real display area has rounded corners and is smaller than calculated. Lighter model that also fits: 11-inch iPad Pro (M5) (444 g). Storage options for the iPad (A16): 128 GB, 256 GB, 512 GB. Apple gives no guide to how much each use needs, so it isn’t calculated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=read&amp;amp;ipad-mini-fit-calc-w=any&amp;amp;ipad-mini-fit-calc-paper=a5#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Reading / notes (no pressure needed), Doesn’t matter, A4&lt;/td&gt;&lt;td&gt;✕ No model fits. Condition: no pressure sensing needed, so only screen and weight are checked. Paper: a whole A4 page (210 × 297 mm) at actual size. A whole A4 page doesn’t fit at actual size on the iPad mini’s screen (about 176 × 116 mm). No current iPad shows a whole A4 page at actual size (even the 13-inch screens have a short side of about 198 mm)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=read&amp;amp;ipad-mini-fit-calc-w=any&amp;amp;ipad-mini-fit-calc-paper=a4#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Handwriting with pressure, Doesn’t matter, Not set&lt;/td&gt;&lt;td&gt;✓ The iPad mini fits. Condition: Apple Pencil Pro support (in Apple’s comparison table of the Pro and the USB-C version, pressure sensing is on the Pro; the USB-C version doesn’t have it). The iPad mini meets these conditions. First model that fits: iPad mini (A17 Pro) (293 g, 8.3-inch diagonal). It also supports Apple Pencil hover. Storage options for the iPad mini (A17 Pro): 128 GB, 256 GB, 512 GB. Apple gives no guide to how much each use needs, so it isn’t calculated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=pressure&amp;amp;ipad-mini-fit-calc-w=any&amp;amp;ipad-mini-fit-calc-paper=none#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Handwriting with pressure, 350 g or less, Not set&lt;/td&gt;&lt;td&gt;✓ The iPad mini fits. Condition: Apple Pencil Pro support (in Apple’s comparison table of the Pro and the USB-C version, pressure sensing is on the Pro; the USB-C version doesn’t have it). The iPad mini meets these conditions. First model that fits: iPad mini (A17 Pro) (293 g, 8.3-inch diagonal). It also supports Apple Pencil hover. Storage options for the iPad mini (A17 Pro): 128 GB, 256 GB, 512 GB. Apple gives no guide to how much each use needs, so it isn’t calculated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=pressure&amp;amp;ipad-mini-fit-calc-w=w350&amp;amp;ipad-mini-fit-calc-paper=none#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Handwriting with pressure, Doesn’t matter, A5&lt;/td&gt;&lt;td&gt;△ The 11-inch iPad Air (M4) just fits. Condition: Apple Pencil Pro support (in Apple’s comparison table of the Pro and the USB-C version, pressure sensing is on the Pro; the USB-C version doesn’t have it). Paper: a whole A5 page (148 × 210 mm) at actual size. A whole A5 page doesn’t fit at actual size on the iPad mini’s screen (about 176 × 116 mm). First model that fits: 11-inch iPad Air (M4) (464 g, 10.86-inch diagonal). About 9 mm to spare for A5 (under 10% of the paper side), so it’s borderline. The real display area has rounded corners and is smaller than calculated. Lighter model that also fits: 11-inch iPad Pro (M5) (444 g). It also supports Apple Pencil hover. Storage options for the 11-inch iPad Air (M4): 128 GB, 256 GB, 512 GB, 1 TB. Apple gives no guide to how much each use needs, so it isn’t calculated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=pressure&amp;amp;ipad-mini-fit-calc-w=any&amp;amp;ipad-mini-fit-calc-paper=a5#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Handwriting with pressure, 350 g or less, A5&lt;/td&gt;&lt;td&gt;✕ No model fits. Condition: Apple Pencil Pro support (in Apple’s comparison table of the Pro and the USB-C version, pressure sensing is on the Pro; the USB-C version doesn’t have it). Paper: a whole A5 page (148 × 210 mm) at actual size. A whole A5 page doesn’t fit at actual size on the iPad mini’s screen (about 176 × 116 mm). No model in this weight range fits. Set carry weight to “Doesn’t matter” to see one&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=pressure&amp;amp;ipad-mini-fit-calc-w=w350&amp;amp;ipad-mini-fit-calc-paper=a5#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Handwriting with pressure, 500 g or less, A5&lt;/td&gt;&lt;td&gt;△ The 11-inch iPad Air (M4) just fits. Condition: Apple Pencil Pro support (in Apple’s comparison table of the Pro and the USB-C version, pressure sensing is on the Pro; the USB-C version doesn’t have it). Paper: a whole A5 page (148 × 210 mm) at actual size. A whole A5 page doesn’t fit at actual size on the iPad mini’s screen (about 176 × 116 mm). First model that fits: 11-inch iPad Air (M4) (464 g, 10.86-inch diagonal). About 9 mm to spare for A5 (under 10% of the paper side), so it’s borderline. The real display area has rounded corners and is smaller than calculated. Lighter model that also fits: 11-inch iPad Pro (M5) (444 g). It also supports Apple Pencil hover. Storage options for the 11-inch iPad Air (M4): 128 GB, 256 GB, 512 GB, 1 TB. Apple gives no guide to how much each use needs, so it isn’t calculated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=pressure&amp;amp;ipad-mini-fit-calc-w=w500&amp;amp;ipad-mini-fit-calc-paper=a5#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drawing in CLIP STUDIO, Doesn’t matter, Not set&lt;/td&gt;&lt;td&gt;△ The iPad (A16) just fits. Condition: listed on CLIP STUDIO PAINT’s supported-device page and able to use a pen from its pressure-pen list (Apple Pencil 1st gen, 2nd gen, Pro). A 10.5-inch or larger screen is recommended. The iPad mini is on the supported-device list (standard-size work) and Apple Pencil Pro is a listed pressure pen, but its screen is below the recommended 10.5 inches. Apple doesn’t state memory for the iPad mini or the iPad (A16), so whether they meet CLIP STUDIO PAINT’s required 3 GB can’t be judged. First model that also meets the recommended screen size: iPad (A16) (477 g, 10.86 in). Under 10% to spare against the recommended 10.5 inches, so it’s borderline. The iPad (A16) can use the Apple Pencil (1st generation) with an adapter, and that pen is on CLIP STUDIO PAINT’s pressure-pen list. First model whose memory Apple also states: 11-inch iPad Pro (M5) (12 GB, above the required 3 GB and the 6 GB recommended for high-resolution work). Storage options for the iPad (A16): 128 GB, 256 GB, 512 GB. Apple gives no guide to how much each use needs, so it isn’t calculated. The iPad Air (M4) isn’t on CLIP STUDIO PAINT’s supported-device page, so it isn’t judged. CLIP STUDIO PAINT lists iPadOS 18 / 26; the current iPadOS 27 isn’t mentioned&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=csp&amp;amp;ipad-mini-fit-calc-w=any&amp;amp;ipad-mini-fit-calc-paper=none#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drawing in CLIP STUDIO, 350 g or less, Not set&lt;/td&gt;&lt;td&gt;△ The iPad mini is listed, but its screen is below the recommendation. Condition: listed on CLIP STUDIO PAINT’s supported-device page and able to use a pen from its pressure-pen list (Apple Pencil 1st gen, 2nd gen, Pro). A 10.5-inch or larger screen is recommended. The iPad mini is on the supported-device list (standard-size work) and Apple Pencil Pro is a listed pressure pen, but its screen is below the recommended 10.5 inches. Apple doesn’t state memory for the iPad mini or the iPad (A16), so whether they meet CLIP STUDIO PAINT’s required 3 GB can’t be judged. First model that fits: iPad mini (A17 Pro) (293 g, 8.3-inch diagonal). It also supports Apple Pencil hover. Storage options for the iPad mini (A17 Pro): 128 GB, 256 GB, 512 GB. Apple gives no guide to how much each use needs, so it isn’t calculated. The iPad Air (M4) isn’t on CLIP STUDIO PAINT’s supported-device page, so it isn’t judged. CLIP STUDIO PAINT lists iPadOS 18 / 26; the current iPadOS 27 isn’t mentioned&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=csp&amp;amp;ipad-mini-fit-calc-w=w350&amp;amp;ipad-mini-fit-calc-paper=none#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drawing in CLIP STUDIO, 500 g or less, Not set&lt;/td&gt;&lt;td&gt;△ The iPad (A16) just fits. Condition: listed on CLIP STUDIO PAINT’s supported-device page and able to use a pen from its pressure-pen list (Apple Pencil 1st gen, 2nd gen, Pro). A 10.5-inch or larger screen is recommended. The iPad mini is on the supported-device list (standard-size work) and Apple Pencil Pro is a listed pressure pen, but its screen is below the recommended 10.5 inches. Apple doesn’t state memory for the iPad mini or the iPad (A16), so whether they meet CLIP STUDIO PAINT’s required 3 GB can’t be judged. First model that also meets the recommended screen size: iPad (A16) (477 g, 10.86 in). Under 10% to spare against the recommended 10.5 inches, so it’s borderline. The iPad (A16) can use the Apple Pencil (1st generation) with an adapter, and that pen is on CLIP STUDIO PAINT’s pressure-pen list. First model whose memory Apple also states: 11-inch iPad Pro (M5) (12 GB, above the required 3 GB and the 6 GB recommended for high-resolution work). Storage options for the iPad (A16): 128 GB, 256 GB, 512 GB. Apple gives no guide to how much each use needs, so it isn’t calculated. The iPad Air (M4) isn’t on CLIP STUDIO PAINT’s supported-device page, so it isn’t judged. CLIP STUDIO PAINT lists iPadOS 18 / 26; the current iPadOS 27 isn’t mentioned&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=csp&amp;amp;ipad-mini-fit-calc-w=w500&amp;amp;ipad-mini-fit-calc-paper=none#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drawing in CLIP STUDIO, Doesn’t matter, A5&lt;/td&gt;&lt;td&gt;△ The iPad (A16) just fits. Condition: listed on CLIP STUDIO PAINT’s supported-device page and able to use a pen from its pressure-pen list (Apple Pencil 1st gen, 2nd gen, Pro). A 10.5-inch or larger screen is recommended. Paper: a whole A5 page (148 × 210 mm) at actual size. A whole A5 page doesn’t fit at actual size on the iPad mini’s screen (about 176 × 116 mm). First model that also meets the recommended screen size: iPad (A16) (477 g, 10.86 in). Under 10% to spare against the recommended 10.5 inches, so it’s borderline. Apple doesn’t state memory for the iPad mini or the iPad (A16), so whether they meet CLIP STUDIO PAINT’s required 3 GB can’t be judged. The iPad (A16) can use the Apple Pencil (1st generation) with an adapter, and that pen is on CLIP STUDIO PAINT’s pressure-pen list. First model whose memory Apple also states: 11-inch iPad Pro (M5) (12 GB, above the required 3 GB and the 6 GB recommended for high-resolution work). About 9 mm to spare for A5 (under 10% of the paper side), so it’s borderline. The real display area has rounded corners and is smaller than calculated. Storage options for the iPad (A16): 128 GB, 256 GB, 512 GB. Apple gives no guide to how much each use needs, so it isn’t calculated. The iPad Air (M4) isn’t on CLIP STUDIO PAINT’s supported-device page, so it isn’t judged. CLIP STUDIO PAINT lists iPadOS 18 / 26; the current iPadOS 27 isn’t mentioned&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-05-ipad-mini/?ipad-mini-fit-calc-use=csp&amp;amp;ipad-mini-fit-calc-w=any&amp;amp;ipad-mini-fit-calc-paper=a5#ipad-mini-fit-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>ipad</category></item><item><title>Logitech MX MASTER 3 review — the natural sequel to the 2S, with USB Type-C and a MagSpeed wheel</title><link>https://aulvem.com/blog/2021-04-03-logicool-mx-master-3/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-03-logicool-mx-master-3/</guid><description>A year-plus with the Logitech MX MASTER 3 at work and at home. Focused on the deltas from the 2S — USB Type-C charging, the MagSpeed wheel, and the redesigned thumb wheel.</description><pubDate>Sat, 03 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported and revised from the old VuePress blog. The MX MASTER 3 itself is an older model in 2026 — the current line is the MX Master 3S (higher sensor resolution and quieter clicks). The review angles in this piece (charging port, MagSpeed wheel, thumb wheel) carry over to the 3S, so it should still be useful whether you are looking at the 3 or the 3S. The screenshots in this article are from Logicool Options at the time of writing; today it has been replaced by Logi Options+.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I used the Logitech MX MASTER 3 for over a year at work and at home. This is the write-up from that time.&lt;/p&gt;
&lt;p&gt;I covered the previous model in a separate post: &lt;a href=&quot;https://aulvem.com/blog/2021-03-09-logicool-mx-master-2s/&quot;&gt;the MX MASTER 2S review&lt;/a&gt;. This is the sibling piece — focused on &lt;strong&gt;what changed and what did not&lt;/strong&gt; between the 2S and the 3. If you are deciding between the 3, the 2S, and the 3S for a new purchase, the comparison should give you enough to choose.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--if-you-do-not-already-own-a-2s-get-the-3-or-the-3s&quot;&gt;The verdict — if you do not already own a 2S, get the 3 (or the 3S)&lt;/h2&gt;
&lt;p&gt;Short answer: the move to USB Type-C alone is reason enough to upgrade from a 2S. Add the MagSpeed wheel and the wider thumb wheel, and two-axis scrolling in Excel, code editors, and Figma gets visibly smoother.&lt;/p&gt;
&lt;p&gt;The three main deltas from the 2S:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Charging port: &lt;strong&gt;micro-USB → USB Type-C&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Main wheel: &lt;strong&gt;mechanical → MagSpeed (electromagnetic)&lt;/strong&gt;, which switches between ratcheted and free-spin automatically based on how hard you flick it&lt;/li&gt;
&lt;li&gt;Thumb wheel (horizontal scroll): larger, easier to roll with the pad of your thumb&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What did &lt;strong&gt;not&lt;/strong&gt; change is the size lineup (full-size only) and the distinctive sculpted shape. For smaller hands it is still a large mouse, and that stays true on the 3S too.&lt;/p&gt;
&lt;h2 id=&quot;build-and-feel&quot;&gt;Build and feel&lt;/h2&gt;
&lt;p&gt;Short answer: lined up next to a 2S, the 3 reads as a more angular sibling. USB Type-C is on the front, and the enlarged thumb wheel is on the left flank.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logitech MX MASTER 3, top view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-03-logicool-mx-master-3/2021-04-03-Logicool-MX-MASTER-3-center.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;A Logicool logo sits on the left click. Directly above the main wheel is the scroll-mode toggle (ratcheted / free-spin). On the thumb side is the gesture button.&lt;/p&gt;
&lt;p&gt;Connection is over Bluetooth or the USB receiver that succeeded Unifying. The receiver is included (the first run of the MX MASTER 3 shipped with the receiver; some 3S configurations sell it separately).&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logitech MX MASTER 3, underside&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-03-logicool-mx-master-3/2021-04-03-Logicool-MX-MASTER-3-back.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The underside carries the power switch and a device-pair toggle (up to three devices). The sensor is rated 1000 dpi (the 3S raises this to 8000 dpi).&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logitech MX MASTER 3, front USB Type-C port&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-03-logicool-mx-master-3/2021-04-03-Logicool-MX-MASTER-3-front.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;USB Type-C lives on the front. This is the single biggest change from the 2S’s micro-USB Type-B, and the day-to-day payoff — one cable type across the whole desk — is bigger than it sounds.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logitech MX MASTER 3, rear view showing the waist&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-03-logicool-mx-master-3/2021-04-03-Logicool-MX-MASTER-3-rear.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;From behind, the body has a clear waist through the middle. You grip it with the thumb on one side of the waist and the pinky on the other — the same hold as the 2S.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logitech MX MASTER 3, left side with the thumb wheel&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-03-logicool-mx-master-3/2021-04-03-Logicool-MX-MASTER-3-left.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The left flank carries two side buttons (back/forward) and the horizontal thumb wheel. The thumb wheel is now nearly the size of the main wheel — easier to roll than the narrow strip on the 2S. A short green indicator blinks when you turn the mouse on.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logitech MX MASTER 3, right side&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-03-logicool-mx-master-3/2021-04-03-Logicool-MX-MASTER-3-right.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The right side is plain — no buttons.&lt;/p&gt;
&lt;h2 id=&quot;what-worked&quot;&gt;What worked&lt;/h2&gt;
&lt;p&gt;Short answer: the “it just switches” feel of the MagSpeed wheel, the wider thumb wheel, and USB Type-C charging.&lt;/p&gt;
&lt;h3 id=&quot;magspeed--ratcheted-and-free-spin-switched-automatically&quot;&gt;MagSpeed — ratcheted and free-spin, switched automatically&lt;/h3&gt;
&lt;p&gt;This is the headline feature of the MX MASTER 3. Roll the wheel a little and you get the familiar ratcheted clicks; flick it hard and it shifts into free-spin mode, flying to the bottom of the page in one motion.&lt;/p&gt;
&lt;p&gt;The switch happens automatically based on rotation speed. If you want to lock one mode, the button above the wheel toggles between ratcheted and free-spin explicitly.&lt;/p&gt;
&lt;p&gt;The place this pays off most is moving up and down long files — code, long articles, deep spreadsheets. On the 2S I worked around it by holding Shift and tapping a button, or by keeping a second mouse on the desk for free-spinning. On the 3, one wheel covers both jobs.&lt;/p&gt;
&lt;h3 id=&quot;a-thumb-wheel-you-can-actually-roll&quot;&gt;A thumb wheel you can actually roll&lt;/h3&gt;
&lt;p&gt;Functionally it is the same “dedicated horizontal-scroll wheel” as on the 2S, but the larger shape lets the pad of the thumb sit on it comfortably.&lt;/p&gt;
&lt;p&gt;Horizontal pans in Excel, canvas panning in Figma, scrubbing a video timeline — already comfortable on the 2S, now resolved with even less finger travel. &lt;strong&gt;Rolling the main wheel and the thumb wheel at the same time gives you simultaneous two-axis scrolling&lt;/strong&gt;, and that is hard to go back from once it sinks in.&lt;/p&gt;
&lt;h3 id=&quot;charging-is-usb-type-c&quot;&gt;Charging is USB Type-C&lt;/h3&gt;
&lt;p&gt;The single biggest weak point of the 2S, gone. I almost wrote “charging only happens every two or three months, so it does not really matter” and then deleted it — being able to keep a single cable type on the desk turns out to matter more than the charge interval would suggest.&lt;/p&gt;
&lt;h3 id=&quot;battery-life&quot;&gt;Battery life&lt;/h3&gt;
&lt;p&gt;Logitech lists 70 days. In actual use, charging every two or three months has been enough. After a full charge it feels the same as a freshly charged 2S.&lt;/p&gt;
&lt;h2 id=&quot;what-didnt&quot;&gt;What didn’t&lt;/h2&gt;
&lt;p&gt;Short answer: still full-size only, still on the expensive side, and the gesture button is “somewhat better” than the 2S rather than “fixed”.&lt;/p&gt;
&lt;h3 id=&quot;no-size-options&quot;&gt;No size options&lt;/h3&gt;
&lt;p&gt;The 3, like the 2S, comes in a single full size. For smaller hands it is still a large mouse.&lt;/p&gt;
&lt;p&gt;If a smaller body matters more than the thumb wheel, the &lt;strong&gt;MX Anywhere 3&lt;/strong&gt; is the other Logicool option. The Anywhere 3 has the MagSpeed main wheel but no thumb wheel — so the “horizontal scrolling is great” part of this review does not apply.&lt;/p&gt;
&lt;h3 id=&quot;price-stayed-high&quot;&gt;Price stayed high&lt;/h3&gt;
&lt;p&gt;Around 13,000 yen at the time of writing. Whether the deltas from the 2S — Type-C, MagSpeed, the larger thumb wheel — justify that depends almost entirely on how much horizontal scrolling you do in a day.&lt;/p&gt;
&lt;p&gt;For someone in Excel, Figma, or a video editor every day, the payback comes quickly. For browsing-heavy use, a used 2S or waiting for the 3S below is often the more satisfying buy.&lt;/p&gt;
&lt;h3 id=&quot;the-gesture-button-is-still-the-soft-spot&quot;&gt;The gesture button is still the soft spot&lt;/h3&gt;
&lt;p&gt;In the &lt;a href=&quot;https://aulvem.com/blog/2021-03-09-logicool-mx-master-2s/&quot;&gt;2S review&lt;/a&gt;, I wrote about the gesture button sticking in the pressed state after a hard press mid-game. The same structure carries into the 3, and the same risk exists for users who hammer it during long gaming sessions (my own unit has not reproduced it).&lt;/p&gt;
&lt;p&gt;For gaming, a dedicated gaming mouse is still the honest recommendation.&lt;/p&gt;
&lt;h2 id=&quot;comparison-mx-master-2s-vs-3-vs-3s&quot;&gt;Comparison: MX MASTER 2S vs 3 vs 3S&lt;/h2&gt;
&lt;p&gt;The three siblings, side by side.&lt;/p&gt;

































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;MX MASTER 2S&lt;/th&gt;&lt;th&gt;MX MASTER 3&lt;/th&gt;&lt;th&gt;MX Master 3S&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Charging&lt;/td&gt;&lt;td&gt;micro-USB Type-B&lt;/td&gt;&lt;td&gt;USB Type-C&lt;/td&gt;&lt;td&gt;USB Type-C&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Main wheel&lt;/td&gt;&lt;td&gt;Mechanical (ratcheted)&lt;/td&gt;&lt;td&gt;MagSpeed (electromagnetic, auto switch)&lt;/td&gt;&lt;td&gt;MagSpeed (electromagnetic, auto switch)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Thumb wheel&lt;/td&gt;&lt;td&gt;Yes (narrow)&lt;/td&gt;&lt;td&gt;Yes (larger)&lt;/td&gt;&lt;td&gt;Yes (larger, same as the 3)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sensor resolution&lt;/td&gt;&lt;td&gt;4000 dpi (rated)&lt;/td&gt;&lt;td&gt;1000 dpi (rated)&lt;/td&gt;&lt;td&gt;8000 dpi (rated)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Click acoustics&lt;/td&gt;&lt;td&gt;Standard&lt;/td&gt;&lt;td&gt;Standard&lt;/td&gt;&lt;td&gt;Quiet click&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Battery (rated)&lt;/td&gt;&lt;td&gt;70 days&lt;/td&gt;&lt;td&gt;70 days&lt;/td&gt;&lt;td&gt;70 days&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sizes&lt;/td&gt;&lt;td&gt;Full-size only&lt;/td&gt;&lt;td&gt;Full-size only&lt;/td&gt;&lt;td&gt;Full-size only&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Software&lt;/td&gt;&lt;td&gt;Logicool Options&lt;/td&gt;&lt;td&gt;Logicool Options / Options+&lt;/td&gt;&lt;td&gt;Logi Options+&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Released&lt;/td&gt;&lt;td&gt;2017&lt;/td&gt;&lt;td&gt;2019&lt;/td&gt;&lt;td&gt;2022&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;For a fresh purchase, the &lt;strong&gt;3S&lt;/strong&gt; is the easiest recommendation. If the price gap is large enough on a clearance 3, the &lt;strong&gt;3&lt;/strong&gt; still holds up. The &lt;strong&gt;2S&lt;/strong&gt; is hard to find new in 2026; if you want USB Type-C, skip it.&lt;/p&gt;
&lt;h2 id=&quot;the-software-logicool-options--logi-options&quot;&gt;The software (Logicool Options / Logi Options+)&lt;/h2&gt;
&lt;p&gt;The companion app remaps every button and tunes wheel sensitivity. At the time of writing it was Logicool Options; in 2026 it has been replaced by &lt;strong&gt;Logi Options+&lt;/strong&gt;.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logicool Options mouse configuration&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-03-logicool-mx-master-3/2021-04-03-Logicool-MX-MASTER-3-mousel.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The mouse view changes each button’s action. The thumb wheel accepts horizontal scroll, next/previous, volume, tab switching, and more.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logicool Options gesture configuration&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-03-logicool-mx-master-3/2021-04-03-Logicool-MX-MASTER-3-gesture.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The gesture button can carry four directional actions on top of its press. I do not use it heavily, so mine is set to Enter.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logicool Options point and scroll configuration&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-03-logicool-mx-master-3/2021-04-03-Logicool-MX-MASTER-3-point-scroll.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Pointer speed, thumb-wheel sensitivity, and scroll direction are all tunable in fine steps. Per-app tuning works too — for example, dialling down the scroll distance just for Excel.&lt;/p&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Logitech MX MASTER 3 (MX2200sGR)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-03-logicool-mx-master-3/2021-04-03-Logicool-MX-MASTER-3.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Logitech MX MASTER 3 (MX2200sGR)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B07XQ6XD8J?q=Logitech+MX+MASTER+3+%28MX2200sGR%29&amp;amp;l=en&quot; aria-label=&quot;View Logitech MX MASTER 3 (MX2200sGR) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Does it work with a Mac?&lt;/strong&gt;
A. Yes. Logi Options+ has a Mac build. It pairs over Bluetooth or the USB receiver, and macOS-specific gestures (Mission Control and similar) can be assigned.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Is it worth upgrading from the MX MASTER 2S?&lt;/strong&gt;
A. The two big wins are USB Type-C charging and the MagSpeed wheel’s free-spin. If you do a lot of horizontal scrolling, the upgrade is worth it. If you mostly browse and the micro-USB port on the 2S does not bother you, there is no urgency.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Now that the MX Master 3S exists, is there a reason to buy the 3?&lt;/strong&gt;
A. If the street-price gap is clearly in the 3’s favor, yes. The 3S’s main improvements are sensor resolution (1000 → 8000 dpi) and quieter clicks; the horizontal-scrolling and thumb-wheel feel are the same as on the 3. Pick the 3S if quiet offices or late-night sessions matter to you. Pick the 3 if price matters more.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How usable are the gestures?&lt;/strong&gt;
A. Holding the thumb gesture button while flicking the mouse up, down, left, or right triggers a configurable action in each direction. It is genuinely handy for Mission Control and virtual-desktop switching, but the press feel is unusual and it took me a few days to get used to. In the end I drifted away from gestures and settled on a single-press action (Enter).&lt;/p&gt;
&lt;h2 id=&quot;verdict--pays-off-if-you-do-horizontal-scrolling-every-day&quot;&gt;Verdict — pays off if you do horizontal scrolling every day&lt;/h2&gt;
&lt;p&gt;Short answer: the natural sequel to the 2S. USB Type-C closes the most painful gap, and the main wheel jumps a tier with MagSpeed. For a new purchase, lean 3S; for a price-led decision, the 3 is still a fine pick.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logitech MX MASTER 3, summary shot&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-04-03-logicool-mx-master-3/2021-04-03-Logicool-MX-MASTER-3-summary.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;If you live in Excel, Figma, or a code editor and move around the screen on both axes, the price comes back in saved time within a few months. If you mostly browse, have smaller hands, or care most about quiet clicks — pick whichever of those applies and look at the 3S or the Anywhere 3 instead.&lt;/p&gt;
&lt;p&gt;For the sibling review, see &lt;a href=&quot;https://aulvem.com/blog/2021-03-09-logicool-mx-master-2s/&quot;&gt;the MX MASTER 2S&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>reviews</category><category>mouse</category><category>logicool</category><category>pc-peripherals</category></item><item><title>Vue.js basics — a working engineer&apos;s guide to the file structure and lifecycle</title><link>https://aulvem.com/blog/2021-04-02-vue-base/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-04-02-vue-base/</guid><description>A working Vue.js engineer walks through the single-file component layout (template / script / style), the basics of data, methods, and the component lifecycle — when to use created vs mounted — with example code for people new to Vue.</description><pubDate>Fri, 02 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026-05-16 update&lt;/strong&gt;: This post is a few years old. It’s written against Vue 2 + the Options API — the &lt;code&gt;data() { return ... }&lt;/code&gt; + &lt;code&gt;methods: {}&lt;/code&gt; style. The current mainstream in 2026 is Vue 3 + the Composition API (&lt;code&gt;&amp;lt;script setup&amp;gt;&lt;/code&gt; with &lt;code&gt;ref&lt;/code&gt; / &lt;code&gt;reactive&lt;/code&gt; / &lt;code&gt;computed&lt;/code&gt;), and lifecycle hooks are functions like &lt;code&gt;onMounted&lt;/code&gt; / &lt;code&gt;onUnmounted&lt;/code&gt;. The skeleton — the three-block structure and the created-vs-mounted distinction — still holds, but the code itself isn’t something you’d drop into a new project as-is.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I’ve been working with Vue.js for over a year now. This post is the &lt;strong&gt;bare-bones basics of Vue.js&lt;/strong&gt;, with a bit of working experience folded in.&lt;/p&gt;
&lt;h2 id=&quot;the-takeaway&quot;&gt;The takeaway&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A Vue file puts &lt;strong&gt;HTML, JavaScript, and CSS in a single file&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;The three-block structure — &lt;code&gt;template&lt;/code&gt; / &lt;code&gt;script&lt;/code&gt; / &lt;code&gt;style&lt;/code&gt; — is enough to get started&lt;/li&gt;
&lt;li&gt;In the &lt;code&gt;script&lt;/code&gt; block, the first thing to learn is &lt;strong&gt;&lt;code&gt;data&lt;/code&gt;, &lt;code&gt;methods&lt;/code&gt;, and the lifecycle&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;For the lifecycle, mainly learn the distinction between &lt;strong&gt;&lt;code&gt;created&lt;/code&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;code&gt;mounted&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;understand-the-structure-of-a-vue-file&quot;&gt;Understand the structure of a Vue file&lt;/h2&gt;
&lt;p&gt;The first thing to understand the structure of a Vue file. A Vue file holds &lt;strong&gt;all three languages&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;JavaScript&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It looks like this:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;vue&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    html記述&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    name: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;XXX&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;    data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        xxx: yyy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; lang&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;css&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Each language can be split out into its own file, but I’ll skip that here.&lt;br/&gt;
The &lt;code&gt;script&lt;/code&gt; and &lt;code&gt;style&lt;/code&gt; blocks can &lt;strong&gt;be swapped for other languages&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I usually go with &lt;strong&gt;TypeScript for &lt;code&gt;script&lt;/code&gt;&lt;/strong&gt; and &lt;strong&gt;SCSS or Stylus for &lt;code&gt;style&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;write-html-in-the-template-block&quot;&gt;Write HTML in the template block&lt;/h2&gt;
&lt;p&gt;This is where you write HTML in the template block.&lt;/p&gt;
&lt;p&gt;It’s mostly the same as plain HTML, with a few &lt;strong&gt;Vue-specific additions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I’ll cover the Vue-specific bits in a separate post.&lt;/p&gt;
&lt;h2 id=&quot;write-data-and-methods-in-the-script-block&quot;&gt;Write data and methods in the script block&lt;/h2&gt;
&lt;p&gt;This is where the JavaScript side lives. The entry point is to &lt;strong&gt;write data and methods in the script block&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I’ll use plain JavaScript for the examples here.&lt;/p&gt;
&lt;p&gt;The base shape:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;javascript&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      xxx: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;yyy&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  methods: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;    hogeMethod&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; str&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;    hugaMethod&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      let&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; test &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; this&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.xxx;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      test &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; this&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;hogeMethod&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(test);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;      return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; test;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;data&lt;/code&gt;&lt;/strong&gt; is where you declare and initialise &lt;strong&gt;variables&lt;/strong&gt; that are available inside the Vue file.&lt;br/&gt;
It’s used a lot when you want to render processed data into the HTML.&lt;/p&gt;
&lt;p&gt;Note: you’re returning an object literal here.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;methods&lt;/code&gt;&lt;/strong&gt; is just a place for regular functions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To reference a variable or function defined in the same file, prefix it with &lt;code&gt;this.&lt;/code&gt;&lt;/strong&gt;&lt;br/&gt;
Local variables inside the same function don’t need &lt;code&gt;this.&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The relevant part:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;javascript&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;hugaMethod&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  let&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; test &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; this&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.xxx;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  test &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; this&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;hogeMethod&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(test);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; test;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;use-lifecycle-hooks-to-control-timing&quot;&gt;Use lifecycle hooks to control timing&lt;/h3&gt;
&lt;p&gt;The lifecycle is the trickiest part of this post. Read it with this in mind: &lt;strong&gt;use lifecycle hooks to control timing&lt;/strong&gt;.&lt;br/&gt;
The official reference is here:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://jp.vuejs.org/v2/guide/instance.html#%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B5%E3%82%A4%E3%82%AF%E3%83%AB%E3%83%80%E3%82%A4%E3%82%A2%E3%82%B0%E3%83%A9%E3%83%A0&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Vue.js docs: lifecycle diagram&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The lifetime of a Vue file — from load to teardown — is divided into 8 points&lt;/strong&gt;, and &lt;strong&gt;you can hook JavaScript into each one&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The eight points:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;beforeCreate&lt;/strong&gt; — before instance creation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;created&lt;/strong&gt; — after instance creation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;beforeMount&lt;/strong&gt; — before mount&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;mounted&lt;/strong&gt; — after mount&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;beforeUpdate&lt;/strong&gt; — before update&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;updated&lt;/strong&gt; — after update&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;beforeDestroy&lt;/strong&gt; — before teardown&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;destroyed&lt;/strong&gt; — after teardown&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In code:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;javascript&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  data&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  beforeCreate&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  created&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  beforeMount&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  mounted&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  beforeUpdate&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  updated&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  beforeDestroy&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  destroyed&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() {},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  methods: {}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The two you’ll actually use most are &lt;strong&gt;&lt;code&gt;created&lt;/code&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;code&gt;mounted&lt;/code&gt;&lt;/strong&gt;.&lt;br/&gt;
The difference between them is &lt;strong&gt;when the DOM is loaded&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;created&lt;/code&gt;&lt;/strong&gt; runs &lt;strong&gt;before&lt;/strong&gt; the DOM is loaded&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;mounted&lt;/code&gt;&lt;/strong&gt; runs &lt;strong&gt;after&lt;/strong&gt; the DOM is loaded&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The rough rule: use &lt;strong&gt;&lt;code&gt;created&lt;/code&gt; for script-side initialisation&lt;/strong&gt; and &lt;strong&gt;&lt;code&gt;mounted&lt;/code&gt; for anything that touches the HTML&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;write-css-in-the-style-block&quot;&gt;Write CSS in the style block&lt;/h2&gt;
&lt;p&gt;The CSS lives here — write CSS in the style block.&lt;br/&gt;
The syntax is plain CSS, so there’s nothing new to learn.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;css&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;.display-flex&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  display&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;flex&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;closing&quot;&gt;Closing&lt;/h2&gt;
&lt;p&gt;That covers the bare basics of Vue.js.&lt;/p&gt;
&lt;p&gt;The main acts — &lt;strong&gt;Components&lt;/strong&gt; and &lt;strong&gt;Binding&lt;/strong&gt; — are in separate posts.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Related posts&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-31-vue-angular/&quot;&gt;Angular vs. Vue.js, from an engineer who’s used both for over a year&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-04-09-vue-component/&quot;&gt;Understanding Vue.js Components&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>build</category><category>JavaScript</category><category>Vue.js</category></item><item><title>Angular vs Vue.js — what a year of using both in production actually felt like</title><link>https://aulvem.com/blog/2021-03-31-vue-angular/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-31-vue-angular/</guid><description>A practical comparison of Angular and Vue.js from an engineer who used both on real projects for over a year — file structure, syntax, learning cost, and which one fits which kind of team.</description><pubDate>Wed, 31 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Originally written in 2021, when Vue 2 and Angular 11 were the mainstream versions. Today the defaults are Vue 3 (Composition API, &lt;code&gt;&amp;lt;script setup&amp;gt;&lt;/code&gt;) and Angular 17+ (Signals, standalone components, the new control-flow syntax), and Vue’s TypeScript story has improved a lot. The overall framing — Angular as batteries-included, Vue as minimal — still mostly holds, but the code samples and APIs here are from the original version and don’t match current behavior exactly.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There are three JavaScript frameworks people usually mention in the same breath, and I’ve shipped production work in two of them. React isn’t one of them, so this post is just about &lt;strong&gt;Angular and Vue.js, and how they actually differ&lt;/strong&gt; when you use them day-to-day.&lt;/p&gt;
&lt;h2 id=&quot;the-short-version&quot;&gt;The short version&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Angular&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Batteries included&lt;/li&gt;
&lt;li&gt;Strict syntax conventions&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vue.js&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Minimal core&lt;/li&gt;
&lt;li&gt;Loose, flexible conventions&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;angular&quot;&gt;Angular&lt;/h2&gt;
&lt;h3 id=&quot;overview&quot;&gt;Overview&lt;/h3&gt;
&lt;p&gt;Angular is &lt;strong&gt;the framework Google maintains&lt;/strong&gt;. The v1 line was called AngularJS; from v2 onward it’s just Angular. Google has said &lt;strong&gt;major versions ship roughly every six months&lt;/strong&gt;, and that &lt;strong&gt;major versions don’t guarantee backwards compatibility&lt;/strong&gt; — worth keeping in mind.&lt;/p&gt;
&lt;p&gt;In practice, upgrades on the projects I worked on were less painful than that warning suggested.&lt;/p&gt;
&lt;p&gt;The two things that stood out to me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It’s a full-stack framework&lt;/li&gt;
&lt;li&gt;TypeScript by default&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;full-stack-framework&quot;&gt;Full-stack framework&lt;/h3&gt;
&lt;p&gt;Angular &lt;strong&gt;ships with routing and other common pieces out of the box&lt;/strong&gt;. Install it and you basically have a working project skeleton. Looking things up is also easier because the official docs cover most of what you need.&lt;/p&gt;
&lt;p&gt;A component’s folder layout looks like this:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;component&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  ├── component.ts&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  ├── component.html&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  ├── component.css&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  └── component.spec.ts&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Keeping the languages in separate files inside one folder makes the code easier to manage at scale.&lt;/p&gt;
&lt;p&gt;The downside of “batteries included” is that you carry code you don’t necessarily use, and that has a real performance cost.&lt;/p&gt;
&lt;h3 id=&quot;typescript&quot;&gt;TypeScript&lt;/h3&gt;
&lt;p&gt;Angular’s recommended language is TypeScript. TypeScript is &lt;strong&gt;a Microsoft project&lt;/strong&gt;, so you end up with a Google framework written in a Microsoft language — which on paper is a pretty solid combination.&lt;/p&gt;
&lt;p&gt;Static typing makes the code feel tight, in a good way. But for anyone new to TypeScript, you’re effectively learning two things at once, and &lt;strong&gt;the ramp-up is steep&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;when-id-reach-for-angular&quot;&gt;When I’d reach for Angular&lt;/h3&gt;
&lt;p&gt;The conventional wisdom is that Angular fits &lt;strong&gt;large projects&lt;/strong&gt;, and my experience matches that.&lt;/p&gt;
&lt;p&gt;The strict structure and conventions — for better or worse — meant handoffs and parallel work between team members went smoothly. The trade-off is the learning cost: &lt;strong&gt;plan extra time at the start of any handoff for people to get comfortable with the framework&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;vuejs&quot;&gt;Vue.js&lt;/h2&gt;
&lt;h3 id=&quot;overview-1&quot;&gt;Overview&lt;/h3&gt;
&lt;p&gt;Vue.js is community-developed and has been picking up adoption steadily. The two things that stood out to me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A minimal core&lt;/li&gt;
&lt;li&gt;Flexibility&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;minimal-core&quot;&gt;Minimal core&lt;/h3&gt;
&lt;p&gt;Unlike Angular, Vue doesn’t bundle routing and other extras by default. You install the libraries you need separately. Vue CLI makes that pretty painless.&lt;/p&gt;
&lt;p&gt;A component is a single file:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;component&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  └── component.vue&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Very simple. HTML, JS, and CSS all live inside the &lt;code&gt;.vue&lt;/code&gt; file.&lt;/p&gt;
&lt;p&gt;You can split JS and CSS into separate files if you want:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;component&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  ├── component.vue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  ├── component.js&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  └── component.css&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The split is manual, though — there’s no automatic separation.&lt;/p&gt;
&lt;p&gt;The flip side of a minimal core is that you have to &lt;strong&gt;find and pick libraries yourself&lt;/strong&gt;. The upside is the bundle stays light, and performance is good by default.&lt;/p&gt;
&lt;h3 id=&quot;flexibility&quot;&gt;Flexibility&lt;/h3&gt;
&lt;p&gt;Vue defaults to plain JavaScript. TypeScript works too, but setting it up properly used to take some effort (current note: Vue 3 with &lt;code&gt;&amp;lt;script setup&amp;gt;&lt;/code&gt; has improved TypeScript support significantly, and as of 2026 the setup is no longer the same hassle it was).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The key difference from Angular is how much room Vue gives you&lt;/strong&gt;. You can shape a project to fit the team’s skill level and the use case — that flexibility is genuinely useful.&lt;/p&gt;
&lt;p&gt;You’ll need to do more of your own research, but &lt;strong&gt;the barrier to entry is clearly lower&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;when-id-reach-for-vue&quot;&gt;When I’d reach for Vue&lt;/h3&gt;
&lt;p&gt;Vue fits &lt;strong&gt;anything that isn’t a strict programmer-and-designer split with formal handoffs&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The catch: &lt;strong&gt;document your library choices, your project structure, and the build setup&lt;/strong&gt;. The flexibility that makes Vue pleasant in solo work becomes a maintenance burden in a team if nothing is written down. For company projects, I’d strongly recommend setting up a formatter and a style guide on day one.&lt;/p&gt;
&lt;p&gt;For personal projects, Vue.js is hard to beat.&lt;/p&gt;
&lt;h2 id=&quot;wrap-up&quot;&gt;Wrap-up&lt;/h2&gt;
&lt;p&gt;That’s the comparison, with my own bias from working in both.&lt;/p&gt;
&lt;p&gt;If you forced me to pick one, I’d go with Vue.js plus TypeScript. The setup takes some patience, but the readability and the resulting code are worth it.&lt;/p&gt;</content:encoded><category>build</category><category>JavaScript</category><category>Vue.js</category><category>Angular</category><category>TypeScript</category></item><item><title>YAMAHA TW-E3A review — a year of commuting with YAMAHA&apos;s honest, even-handed true wireless</title><link>https://aulvem.com/blog/2021-03-30-yamaha-tw-e3a/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-30-yamaha-tw-e3a/</guid><description>A year of commuting with YAMAHA&apos;s first-generation true wireless earbuds, the TW-E3A. Honest tuning and a secure fit are the strengths; the deep physical-button press is the weakness.</description><pubDate>Tue, 30 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported from the old VuePress blog. The TW-E3A is an older model in 2026, with successors like the TW-E3B and TW-E3C now on sale. The review angles here (the honest tuning, the fit, the physical-button quirks) still hold up. Spec numbers are based on the manufacturer’s published figures at the time of writing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I used the YAMAHA TW-E3A true wireless earbuds for about a year of daily commuting. This is the write-up of what showed up — strengths and weaknesses — once they were folded into the rhythm of regular use.&lt;/p&gt;
&lt;p&gt;The review is framed around the fact that the TW-E3A was YAMAHA’s first true wireless earbud. So instead of grading it head-to-head against the latest competition, I focus on whether it fits its price band and intended use.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--for-listeners-who-want-tuning-without-a-personality&quot;&gt;The verdict — for listeners who want tuning without a personality&lt;/h2&gt;
&lt;p&gt;Short answer: the sound follows YAMAHA’s tuning brief without unnecessary flavor, and the fit is stable enough for a commute. The deep physical-button press, and the way the controls are split across left and right, are the parts that will pick their audience.&lt;/p&gt;
&lt;p&gt;The reason is simple. The TW-E3A does not chase a single headline trait — no thumping bass, no aggressive noise cancellation. Instead it settles into a balance that does not tire the ear over long sessions. The design leans toward background listening during a commute or while working, rather than dedicated music-appreciation sessions.&lt;/p&gt;
&lt;p&gt;That said, you should probably look elsewhere if any of these apply:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You’re used to touch controls or multi-button setups&lt;/strong&gt;: the TW-E3A funnels every function through a single physical button on each side&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You need active noise cancellation&lt;/strong&gt;: the TW-E3A does not have ANC (based on the manufacturer’s spec sheet)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You want to use them for hard workouts&lt;/strong&gt;: the fit is secure, but there are no sport fins for high-impact movement&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-and-feel&quot;&gt;Build and feel&lt;/h2&gt;
&lt;p&gt;Short answer: the case is a small rectangle, roughly the size of a miniature bento box, that slips into a chest pocket. The earbuds themselves are slightly elongated and sit deep in the ear.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;YAMAHA TW-E3A charging case, front view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-30-yamaha-tw-e3a/2021-03-30-YAMAHA-TW-E3A-front.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The lid carries a matte YAMAHA wordmark. The finish does not pick up fingerprints easily.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;YAMAHA TW-E3A charging case held in a palm for scale&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-30-yamaha-tw-e3a/2021-03-30-YAMAHA-TW-E3A-size.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The case measures roughly 70 × 35 × 35 mm (manufacturer’s published figures). That is compact for its price band, and it fits cleanly into a jacket’s chest pocket.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;YAMAHA TW-E3A charging case opened&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-30-yamaha-tw-e3a/2021-03-30-YAMAHA-TW-E3A-in.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The lid pops open with a light push and falls shut under its own weight, locking with a small click. In a year of bag-carrying it never opened on its own.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;YAMAHA TW-E3A earbuds laid out next to the case&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-30-yamaha-tw-e3a/2021-03-30-YAMAHA-TW-E3A-Earphones-and-case.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The nozzle is long. Once seated, it sits about as deep as the first knuckle of an index finger, which is what gives the fit its security. The R / L marks are embossed on the inside of each shell, so you can tell them apart by feel in the dark.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;YAMAHA TW-E3A earbud, outer face&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-30-yamaha-tw-e3a/2021-03-30-YAMAHA-TW-E3A-Earphones.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;On its own, each bud reads as slightly elongated. Each side weighs 6.3 g (manufacturer’s published figures).&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;YAMAHA TW-E3A charging case, back with the USB Type-C port&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-30-yamaha-tw-e3a/2021-03-30-YAMAHA-TW-E3A-back.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The back of the case carries a USB Type-C port and a charge-status LED. USB-C was not a given on early-2021 models, and in 2026 it is still useful for keeping one cable type across devices.&lt;/p&gt;
&lt;h2 id=&quot;what-worked&quot;&gt;What worked&lt;/h2&gt;
&lt;p&gt;Short answer: honest tuning, a fit that holds up at commute intensity, and a stable Bluetooth 5.0 link.&lt;/p&gt;
&lt;h3 id=&quot;yamahas-flat-low-fatigue-tuning&quot;&gt;YAMAHA’s flat, low-fatigue tuning&lt;/h3&gt;
&lt;p&gt;The tuning does not push the low end and does not sharpen the upper mids. Vocals and acoustic instruments come through naturally; genres that lean on a forward low end — EDM, for example — can feel underweight to some listeners.&lt;/p&gt;
&lt;p&gt;Two- or three-hour sessions stay comfortable, which is the practical payoff of that tuning choice.&lt;/p&gt;
&lt;h3 id=&quot;stays-in-for-commutes-and-walking&quot;&gt;Stays in for commutes and walking&lt;/h3&gt;
&lt;p&gt;The deep nozzle keeps the bud seated through the shoves of a packed train or a short jog. Across a year of daily use, neither side ever fell out.&lt;/p&gt;
&lt;p&gt;There are no sport fins in the box, though, so for the gym or longer runs it is worth looking at a model built for that.&lt;/p&gt;
&lt;h3 id=&quot;bluetooth-50-holds-up-in-crowded-rf&quot;&gt;Bluetooth 5.0 holds up in crowded RF&lt;/h3&gt;
&lt;p&gt;With Bluetooth 5.0 (based on the manufacturer’s spec sheet), the link stayed clean inside busy stations and trains where RF gets congested. Dropouts and single-ear lockouts were rare. Compared to the 4.x-era buds I used at the same price point, the stability is clearly a step up.&lt;/p&gt;
&lt;h2 id=&quot;what-didnt&quot;&gt;What didn’t&lt;/h2&gt;
&lt;p&gt;Short answer: the buttons need a firm press, the controls are split across the two sides, and there is no ANC.&lt;/p&gt;
&lt;h3 id=&quot;buttons-want-a-deep-press&quot;&gt;Buttons want a deep press&lt;/h3&gt;
&lt;p&gt;These are physical buttons rather than touch sensors. That cuts down on accidental taps, but the TW-E3A’s travel is on the deep side. To register a press you end up pushing the bud further into the ear, and each time you do, the seal shifts.&lt;/p&gt;
&lt;p&gt;A touch sensor — or even just a lighter actuation — would have been easier to live with.&lt;/p&gt;
&lt;h3 id=&quot;left-and-right-do-different-things-and-its-hard-to-memorize&quot;&gt;Left and right do different things, and it’s hard to memorize&lt;/h3&gt;
&lt;p&gt;Because there is only one button per side, playback, volume, and track skipping are spread across the two sides by click count.&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Action&lt;/th&gt;&lt;th&gt;Mapping&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Play / pause&lt;/td&gt;&lt;td&gt;Either side, single click&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Volume up&lt;/td&gt;&lt;td&gt;Right, double click&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Volume down&lt;/td&gt;&lt;td&gt;Left, double click&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Next track&lt;/td&gt;&lt;td&gt;Right, long press&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Previous track&lt;/td&gt;&lt;td&gt;Left, long press&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;If “volume on the right, track skip on the right” had been the rule, the mapping would have stayed intuitive by direction. As it stands you have to memorize the chart. For someone who only touches the controls a few times a day, that is more friction than it should be.&lt;/p&gt;
&lt;h3 id=&quot;no-active-noise-cancellation&quot;&gt;No active noise cancellation&lt;/h3&gt;
&lt;p&gt;The canal-type fit gives you some passive isolation, but there is no active NC (based on the manufacturer’s spec sheet). If your goal is to flatten out rail noise or HVAC drone, this is not the right pick.&lt;/p&gt;
&lt;h2 id=&quot;comparison--where-the-tw-e3a-sits-in-mid-range-true-wireless&quot;&gt;Comparison — where the TW-E3A sits in mid-range true wireless&lt;/h2&gt;
&lt;p&gt;Short answer: if you care about even-handed tuning and a secure fit, it competes well at this price. If ANC or rich touch controls are non-negotiable, look elsewhere.&lt;/p&gt;















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;YAMAHA TW-E3A&lt;/th&gt;&lt;th&gt;Typical mid-range peers&lt;/th&gt;&lt;th&gt;YAMAHA’s higher tier (TW-E5B / E7B family)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Tuning&lt;/td&gt;&lt;td&gt;Flat, low-fatigue&lt;/td&gt;&lt;td&gt;Often bass-forward&lt;/td&gt;&lt;td&gt;Listening-focused, bass with detail&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Active noise cancellation&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;td&gt;Increasingly common&lt;/td&gt;&lt;td&gt;Available on some models&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Controls&lt;/td&gt;&lt;td&gt;One physical button per side&lt;/td&gt;&lt;td&gt;Touch is the norm&lt;/td&gt;&lt;td&gt;Touch plus companion app&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Connection&lt;/td&gt;&lt;td&gt;Bluetooth 5.0&lt;/td&gt;&lt;td&gt;5.0 to 5.3&lt;/td&gt;&lt;td&gt;5.2 and up is common&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Charging port&lt;/td&gt;&lt;td&gt;USB Type-C&lt;/td&gt;&lt;td&gt;Mostly USB-C now&lt;/td&gt;&lt;td&gt;USB Type-C&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bud-only playback&lt;/td&gt;&lt;td&gt;~6 hours (rated)&lt;/td&gt;&lt;td&gt;5 to 8 hours&lt;/td&gt;&lt;td&gt;6 to 10 hours (rated)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;If you are buying new and you specifically want the YAMAHA house sound, the more natural move is to compare the TW-E5B / E7B siblings as well. Conversely, on the second-hand or clearance market, where the TW-E3A turns up cheap, its solid baseline of tuning and fit still earns it a place.&lt;/p&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Yamaha TW-E3A (Black)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-30-yamaha-tw-e3a/2021-03-30-YAMAHA-TW-E3A.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Yamaha TW-E3A (Black)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0814N96JY?q=Yamaha+TW-E3A+%28Black%29&amp;amp;l=en&quot; aria-label=&quot;View Yamaha TW-E3A (Black) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Will it pair without issues on both iPhone and Android?&lt;/strong&gt;
A. Any Bluetooth 5.0 host is fine in practice. There is no multipoint support (based on the manufacturer’s spec sheet), so it is not a good fit for someone who switches between a PC and a phone all day. Treat it as a single-device companion, or expect to re-pair each time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How long does the battery last?&lt;/strong&gt;
A. The published figures are around 6 hours on a charge and roughly 24 hours including the case (manufacturer’s published figures). With a one-hour commute each way, the case lands back on the dock about once every three or four weekdays.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Is it usable for remote-work video calls?&lt;/strong&gt;
A. There is a built-in mic and calls work, but the noise reduction is not what you would expect from a dedicated headset (based on the manufacturer’s spec sheet). It is fine for a 1:1 from a quiet home; for calls in a cafe or an open office, a real headset is the safer bet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Does it hold up for running or light workouts?&lt;/strong&gt;
A. The deep nozzle keeps it secure through short jogs on a commute. Heavy vertical motion during running, or sweat-heavy gym sessions, are outside what it was built for, and long-term sweat resistance is not guaranteed (check the manufacturer’s IP rating). For serious training, use something built for it.&lt;/p&gt;
&lt;h2 id=&quot;verdict--for-daily-listening-with-yamahas-tuning&quot;&gt;Verdict — for daily listening with YAMAHA’s tuning&lt;/h2&gt;
&lt;p&gt;Short answer: not a model that sells on flash. It earns its keep through the quiet quality of the tuning and the fit, which is the kind of thing you only notice after weeks of use. The cleanest way to read it: a first-generation product that did not try to do too much.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;YAMAHA TW-E3A charging case closed, full overview&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-30-yamaha-tw-e3a/2021-03-30-YAMAHA-TW-E3A-case.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The two things to weigh are the button feel and the awkward control mapping. If a store has a demo unit, putting them in and running through the left-right controls before deciding will save regret later. If you are also weighing newer generations, look at the higher-tier models and the successor lineup (ANC, multipoint, touch controls) at the same time — the decision gets less wobbly with that context.&lt;/p&gt;</content:encoded><category>reviews</category><category>audio</category><category>yamaha</category><category>wireless-earbuds</category></item><item><title>Anker PowerCore 10000 review — the palm-sized power bank I used for years (possible recall)</title><link>https://aulvem.com/blog/2021-03-29-anker-powercore-10000/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-29-anker-powercore-10000/</guid><description>A review of the Anker PowerCore 10000 after several years as my main battery. Compact and light for the 10000mAh class, but the USB Type-A / micro-B I/O ages poorly against today&apos;s Type-C cables.</description><pubDate>Mon, 29 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported from the old VuePress blog. The PowerCore 10000 is an older model in 2026 — the current line has moved to USB Type-C I/O in the newer PowerCore series. The framing here (how to weigh capacity, size, and ports in the 10000mAh class) still applies.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Recall notice (added 2026-10-11)&lt;/strong&gt;: The PowerCore 10000 in this review is likely model A1263 (the article does not state a model number, and I could not confirm it from the product page). On 2025-06-12 the US Consumer Product Safety Commission announced a recall of the A1263 for fire and burn hazards (recall no. 25-338; units with qualifying serial numbers sold in the US from June 2016 through December 2022). The model number and “SN” serial are printed on the bottom of the unit. Check whether yours is covered on &lt;a href=&quot;https://www.anker.com/product-recalls&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Anker’s recall page&lt;/a&gt;. If it is, stop using it and follow the official steps (&lt;a href=&quot;https://www.cpsc.gov/Recalls/2025/More-than-One-Million-Anker-Power-Banks-Recalled-Due-to-Fire-and-Burn-Hazards-Manufactured-by-Anker-Innovations&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;CPSC notice&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;I could not confirm a recall in Japan: the &lt;a href=&quot;https://www.ankerjapan.com/pages/202506-support&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Anker Japan recall page&lt;/a&gt; does not list the A1263.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I used the Anker PowerCore 10000 as my main mobile battery for several years, carried for the usual reason — a backup against a dead phone outside the house. The 10000mAh class strikes a workable balance between capacity (two or three charges for a 2021-era phone) and “small enough to carry”, which makes it an easy first battery to land on.&lt;/p&gt;
&lt;p&gt;The I/O ports, though, are this generation’s weak spot. From a 2026 vantage point, I want to write down which parts still hold up and which parts I would no longer pick.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--a-solid-default-for-size-vs-capacity-but-the-ports-are-dated&quot;&gt;The verdict — a solid default for size-vs-capacity, but the ports are dated&lt;/h2&gt;
&lt;p&gt;Short answer: fitting 10000mAh into a pocketable shell still earns the recommendation. The charging behaviour is steady in the way Anker batteries usually are, which makes it easy to trust as an outing backup. The catch is the USB Type-A input and micro-B output — that pairing does not match the cables most people already carry in 2026.&lt;/p&gt;
&lt;p&gt;The reason is simple: phones, laptops, and wireless earbuds have been converging on USB Type-C. For anyone trying to standardise on a single Type-C cable, packing a dedicated micro-B cable just for this one battery is hard to justify.&lt;/p&gt;
&lt;p&gt;A few cautions before buying:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You want to standardise on USB Type-C cables&lt;/strong&gt;: a Type-C version of the same series is the cleaner choice&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You want to charge a laptop with PD (Power Delivery)&lt;/strong&gt;: this unit tops out at USB-A / 2.4A and does not support laptop fast-charge&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You are buying brand new&lt;/strong&gt;: the current Type-C successor will keep working with the rest of your gear for longer&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;look-and-size&quot;&gt;Look and size&lt;/h2&gt;
&lt;p&gt;Short answer: compact for a 10000mAh battery. Anker traded height for thickness, so it still slips into a jeans pocket.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Anker PowerCore 10000, front view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-29-anker-powercore-10000/2021-03-29-Anker-PowerCore-10000-center.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The shell is matte black, the same finish Anker uses across the mobile battery range, and it hides fingerprints and minor scuffs well.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Anker PowerCore 10000 next to a smartphone for size comparison&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-29-anker-powercore-10000/2021-03-29-Anker-PowerCore-10000-size.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;Stated specs are below (source: as printed on the packaging).&lt;/p&gt;

































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Spec&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Size&lt;/td&gt;&lt;td&gt;~92 x 60 x 22mm&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Weight&lt;/td&gt;&lt;td&gt;~180g&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Capacity&lt;/td&gt;&lt;td&gt;10000mAh&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Output&lt;/td&gt;&lt;td&gt;Up to 2.4A (PowerIQ)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Input port&lt;/td&gt;&lt;td&gt;USB Type-A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Output port&lt;/td&gt;&lt;td&gt;micro-B&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;180g is about average for the 10000mAh class. The short height means it sits well in a closed hand.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Anker PowerCore 10000 input and output ports (USB Type-A and micro-B)&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-29-anker-powercore-10000/2021-03-29-Anker-PowerCore-10000-input.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The battery charges over USB Type-A and outputs over micro-B. At the time of writing (2021), USB Type-A was the default everywhere. In 2026 the layout reads as an older generation.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Anker PowerCore 10000 power button and battery indicator&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-29-anker-powercore-10000/2021-03-29-Anker-PowerCore-10000-side.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The power button is on the side. A single press lights four blue LEDs that show the remaining charge. Plug in a phone, press the button, and it starts pushing power — there is nothing to think about.&lt;/p&gt;
&lt;h2 id=&quot;what-worked&quot;&gt;What worked&lt;/h2&gt;
&lt;p&gt;Short answer: Anker’s reliable charging behaviour and a genuinely pocketable 10000mAh form factor.&lt;/p&gt;
&lt;h3 id=&quot;the-charging-behaviour-is-steady&quot;&gt;The charging behaviour is steady&lt;/h3&gt;
&lt;p&gt;I have owned several Anker batteries and never run into power cutting out mid-charge or the device failing to register. For a battery that gets plugged and unplugged constantly throughout the day, that kind of quiet reliability matters more than a spec sheet.&lt;/p&gt;
&lt;p&gt;Anker’s own PowerIQ (current adjustment based on the connected device) seems to do its job within the 2.4A range — though this is based on day-to-day use rather than measured output.&lt;/p&gt;
&lt;h3 id=&quot;pocketable-for-a-10000mah-battery&quot;&gt;Pocketable for a 10000mAh battery&lt;/h3&gt;
&lt;p&gt;10000mAh covered about two to three charges of a 2021-era phone, or just under one full tablet charge. A 2026 phone with a 4,000mAh-class battery gets only about 1.3 to 1.8 full charges (0% to 100%, assuming 60-70% efficiency). Fitting that into a pocketable shape was the headline at launch and still is.&lt;/p&gt;
&lt;p&gt;On a day out without a bag, it goes in a jacket or back pocket and lasts the day.&lt;/p&gt;
&lt;h3 id=&quot;four-led-battery-indicator-no-fuss&quot;&gt;Four-LED battery indicator, no fuss&lt;/h3&gt;
&lt;p&gt;One button press, four LEDs. There is no app, no Bluetooth pairing — and as a result, no ambiguity about how much is left. It is hard to walk out the door with a battery you thought was full but wasn’t.&lt;/p&gt;
&lt;h2 id=&quot;what-didnt&quot;&gt;What didn’t&lt;/h2&gt;
&lt;p&gt;Short answer: USB Type-A / micro-B ports, no PD support, and slow input charging.&lt;/p&gt;
&lt;h3 id=&quot;usb-type-a--micro-b-io&quot;&gt;USB Type-A / micro-B I/O&lt;/h3&gt;
&lt;p&gt;Normal in 2021, a clear weakness in 2026. If your cable kit is already standardised on USB Type-C, carrying a micro-B cable just for this one battery starts to feel like overhead.&lt;/p&gt;
&lt;p&gt;For a new purchase I would point people at the Type-C version of the same line (PowerCore III 10000 or similar).&lt;/p&gt;
&lt;h3 id=&quot;no-usb-pd&quot;&gt;No USB PD&lt;/h3&gt;
&lt;p&gt;The output is a single USB-A port at up to 2.4A — no USB Power Delivery (PD).&lt;/p&gt;
&lt;p&gt;That rules out fast-charging a recent phone, or driving a laptop or tablet at any useful speed. As a topping-up battery for a phone it is still fine.&lt;/p&gt;
&lt;h3 id=&quot;slow-to-refill-itself&quot;&gt;Slow to refill itself&lt;/h3&gt;
&lt;p&gt;Charging the battery itself is over micro-B, and even on the bundled wall adapter, it feels slow to reach full.&lt;/p&gt;
&lt;p&gt;Plug it in before bed and it is ready in the morning, which is the usual pattern. As a “top up just before leaving” battery, it is not the right tool.&lt;/p&gt;
&lt;h2 id=&quot;comparison-choosing-in-the-10000mah-class&quot;&gt;Comparison: choosing in the 10000mAh class&lt;/h2&gt;
&lt;p&gt;10000mAh is the capacity most people land on for a first battery. A short way to compare options inside that class:&lt;/p&gt;









































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;PowerCore 10000 (this unit)&lt;/th&gt;&lt;th&gt;Type-C PowerCore successor&lt;/th&gt;&lt;th&gt;20000mAh class&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Ports&lt;/td&gt;&lt;td&gt;USB-A / micro-B&lt;/td&gt;&lt;td&gt;USB-C in/out&lt;/td&gt;&lt;td&gt;Varies by model&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Weight&lt;/td&gt;&lt;td&gt;~180g&lt;/td&gt;&lt;td&gt;~190g (rated)&lt;/td&gt;&lt;td&gt;~350g&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Capacity&lt;/td&gt;&lt;td&gt;10000mAh&lt;/td&gt;&lt;td&gt;10000mAh&lt;/td&gt;&lt;td&gt;20000mAh&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Best for&lt;/td&gt;&lt;td&gt;2–3 charges of a 2021-era phone&lt;/td&gt;&lt;td&gt;Phone + light tablet&lt;/td&gt;&lt;td&gt;Phone + laptop&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Launch price (at time of writing)&lt;/td&gt;&lt;td&gt;~2,500–3,500 yen&lt;/td&gt;&lt;td&gt;~3,500–5,000 yen&lt;/td&gt;&lt;td&gt;~5,000–8,000 yen&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The decision is short: “do I want everything on Type-C?” and “do I need to charge a laptop?” Two no’s and this class is enough. One yes and a different model fits better.&lt;/p&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Anker PowerCore 10000 (Black)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-29-anker-powercore-10000/2021-03-29-Anker-PowerCore-10000.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Anker PowerCore 10000 (Black)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B019GNUT0C?q=Anker+PowerCore+10000+%28Black%29&amp;amp;l=en&quot; aria-label=&quot;View Anker PowerCore 10000 (Black) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Does it work with both iPhone and Android?&lt;/strong&gt;
A. Yes. The output is USB Type-A, so as long as you carry the right cable for your device (Lightning / USB-C / micro-B), either side works. There is one USB-A output port on the battery.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Can I take it on a plane?&lt;/strong&gt;
A. Carry-on, yes. 10000mAh works out to roughly 37Wh, comfortably under the 100Wh limit major airlines apply (airlines and routes vary, check the current rules for your specific flight). Checked baggage is not allowed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How many times can it charge a phone?&lt;/strong&gt;
A. Depends on the phone’s battery and charging losses, but for a 3000–4000mAh phone of the 2021 era, two to three full charges was the practical figure. For a current 4,000mAh-class phone it is about 1.3 to 1.8 full charges (0% to 100%, assuming 60-70% efficiency). The four-LED indicator gives you a rough sense of what’s left as you go.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Can it charge a laptop?&lt;/strong&gt;
A. Not really. The output is USB-A at 2.4A with no USB PD, so it does not meet the fast-charge requirements of most laptops. For a laptop, look at a PD-capable battery with at least 30W output.&lt;/p&gt;
&lt;h2 id=&quot;verdict--still-usable-as-a-first-battery-but-a-successor-is-the-smarter-new-purchase&quot;&gt;Verdict — still usable as a first battery, but a successor is the smarter new purchase&lt;/h2&gt;
&lt;p&gt;As a default in the 10000mAh class, it is still easy to live with. Anker’s steady charging behaviour and the palm-sized shell make it a quiet, dependable backup when leaving the house.&lt;/p&gt;
&lt;p&gt;For a fresh purchase in 2026, though, the Type-C versions of the current line will hurt less in the long run, simply because everything else you carry is already on Type-C.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Anker PowerCore 10000, three-quarter view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-29-anker-powercore-10000/2021-03-29-Anker-PowerCore-10000-slanted.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;If you already own a PowerCore 10000, there is no reason to retire it — keep a micro-B cable in the bag and carry on. When it does come time to replace it, the Type-C successor is the obvious next stop.&lt;/p&gt;</content:encoded><category>reviews</category><category>mobile-battery</category><category>anker</category><category>pc-peripherals</category></item><item><title>Windows Laptop Specs for Programming: Minimum RAM, SSD and CPU</title><link>https://aulvem.com/blog/2021-03-28-programming-windows/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-28-programming-windows/</guid><description>A Windows laptop for programming needs at least 8 GB of RAM if you skip the Android emulator. That&apos;s each tool&apos;s official minimum (8 GB for Docker and Android Studio) rounded up to a standard size, separate from Windows 11&apos;s own 4 GB. Docker and Android Studio sit exactly at 8 GB, and the emulator at 16 GB, so all three are borderline. Storage fits in 256 GB with a typical Visual Studio install, or needs 512 GB with every workload. Official minimums are per app, and running several at once isn&apos;t judged.</description><pubDate>Sun, 28 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Working from the official requirements as of October 2026, a Windows laptop for programming needs at least 8 GB of RAM if you skip the Android emulator. That’s each tool’s official minimum (8 GB for Docker and Android Studio) rounded up to a standard size, separate from Windows 11’s own 4 GB. Docker and Android Studio sit exactly at 8 GB, and the emulator at 16 GB, so all three are borderline.&lt;/p&gt;
&lt;p&gt;The official minimums are per app, and running several at once isn’t judged. Only official minimum RAM, free-space figures and Arm support are used; speed and comfort weren’t tested on real hardware and aren’t judged.&lt;/p&gt;
&lt;h2 id=&quot;minimum-ram-and-ssd-by-type-of-development&quot;&gt;Minimum RAM and SSD by type of development&lt;/h2&gt;
&lt;p&gt;The table rounds each official minimum up to a common laptop RAM and SSD size, and marks the borderline cells.&lt;/p&gt;















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Development&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;RAM&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;SSD&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;CPU&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Web and WSL2 (VS Code)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;256 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Either x64 or Arm&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Docker&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 GB (exactly the minimum, borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;256 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Either (Docker labels the Arm version Early Access)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Visual Studio (.NET and more)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;256 GB (512 GB with every workload)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Either x64 or Arm&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Visual Studio (Python and data science)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;256 GB (512 GB with every workload)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;x64 (Intel or AMD) required&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Android (no emulator)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 GB (exactly the minimum, borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;256 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;x64 (Intel or AMD) required&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Android (with emulator)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;16 GB (exactly the minimum, borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;256 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;x64 (Intel or AMD) required&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;“Borderline” means the spare RAM (the rounded-up size minus the minimum) is under 10% of the minimum.&lt;/p&gt;
&lt;section id=&quot;windows-dev-spec-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;windows-dev-spec-calc-title&quot;&gt; &lt;h3 id=&quot;windows-dev-spec-calc-title&quot;&gt;Minimum Windows laptop spec for your development work&lt;/h3&gt; &lt;p&gt;Pick your kind of development and CPU type. It rounds the official minimum requirements for Docker, Visual Studio, Android Studio and more up to common memory and SSD sizes, and shows the minimum spec and whether you need x64 (Intel or AMD) or can use Arm (Snapdragon).&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;wd_mypassport_ssd_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for WD My Passport SSD 1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81y8P1up-PL._AC_SY450_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;WD My Passport SSD 1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B08F27QGHX?q=WD+My+Passport+SSD+1TB&amp;amp;us=B08F27QGHX&amp;amp;l=en&quot; aria-label=&quot;View WD My Passport SSD 1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ugreen_uno_6in1&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for UGREEN Uno 6-in-1 USB-C Hub (35998)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BAImYeBiL._AC_SY450_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;UGREEN Uno 6-in-1 USB-C Hub (35998)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0D2Q5XJY9?q=UGREEN+Uno+6-in-1+USB-C+Hub+%2835998%29&amp;amp;us=B0D2Q5XJY9&amp;amp;l=en&quot; aria-label=&quot;View UGREEN Uno 6-in-1 USB-C Hub (35998) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;asus_zenbook_duo_ux8406ca_285h&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS Zenbook DUO UX8406CA（Core Ultra 9 285H / 32GB / 1TB）&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71VUFrGHwDL._AC_SY450_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS Zenbook DUO UX8406CA（Core Ultra 9 285H / 32GB / 1TB）&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DPQ35KMW?q=ASUS+Zenbook+DUO+UX8406CA%EF%BC%88Core+Ultra+9+285H+%2F+32GB+%2F+1TB%EF%BC%89&amp;amp;us=B0DPQ35KMW&amp;amp;l=en&quot; aria-label=&quot;View ASUS Zenbook DUO UX8406CA（Core Ultra 9 285H / 32GB / 1TB） on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;req&quot;:{&quot;web&quot;:{&quot;mem&quot;:4,&quot;memSrc&quot;:&quot;win11&quot;,&quot;disk&quot;:null,&quot;arm&quot;:&quot;ok&quot;,&quot;wsl&quot;:true},&quot;docker&quot;:{&quot;mem&quot;:8,&quot;memSrc&quot;:&quot;docker&quot;,&quot;disk&quot;:null,&quot;arm&quot;:&quot;ea&quot;,&quot;wsl&quot;:true},&quot;vs&quot;:{&quot;mem&quot;:4,&quot;memSrc&quot;:&quot;vs&quot;,&quot;disk&quot;:50,&quot;arm&quot;:&quot;ok&quot;,&quot;wsl&quot;:false},&quot;vs_x64&quot;:{&quot;mem&quot;:4,&quot;memSrc&quot;:&quot;vs&quot;,&quot;disk&quot;:50,&quot;arm&quot;:&quot;ng&quot;,&quot;wsl&quot;:false},&quot;android&quot;:{&quot;mem&quot;:8,&quot;memSrc&quot;:&quot;as&quot;,&quot;disk&quot;:8,&quot;arm&quot;:&quot;ng&quot;,&quot;wsl&quot;:false},&quot;android_emu&quot;:{&quot;mem&quot;:16,&quot;memSrc&quot;:&quot;as&quot;,&quot;disk&quot;:16,&quot;arm&quot;:&quot;ng&quot;,&quot;wsl&quot;:false}},&quot;devs&quot;:[&quot;web&quot;,&quot;docker&quot;,&quot;vs&quot;,&quot;vs_x64&quot;,&quot;android&quot;,&quot;android_emu&quot;],&quot;archs&quot;:[&quot;any&quot;,&quot;x64&quot;,&quot;arm&quot;],&quot;memTiers&quot;:[8,16,32,64],&quot;stoTiers&quot;:[256,512,1024,2048],&quot;tightRatio&quot;:0.1,&quot;win11Sto&quot;:64,&quot;wslPct&quot;:50,&quot;rec&quot;:{&quot;vs&quot;:16,&quot;as&quot;:32},&quot;vsMaxDisk&quot;:210,&quot;vsTyp&quot;:[20,50],&quot;avd&quot;:{&quot;ram&quot;:4,&quot;disk&quot;:6},&quot;vram&quot;:4,&quot;products&quot;:{},&quot;pickOnlySlots&quot;:true,&quot;buy&quot;:{&quot;wd_mypassport_ssd_1tb&quot;:{&quot;type&quot;:&quot;external_ssd&quot;,&quot;ja&quot;:&quot;WD My Passport SSD 1TB&quot;,&quot;en&quot;:&quot;WD My Passport SSD 1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B08F27QGHX&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B08F27QGHX&quot;,&quot;asinUS&quot;:&quot;B08F27QGHX&quot;,&quot;title&quot;:&quot;WD My Passport SSD 1TB&quot;,&quot;searchQuery&quot;:&quot;WD My Passport SSD 1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81y8P1up-PL._AC_SY450_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;anker_nano_7in1&quot;:{&quot;type&quot;:&quot;usb_c_hub&quot;,&quot;ja&quot;:&quot;Anker Nano USB-C ハブ (7-in-1, 4K, HDMI)&quot;,&quot;en&quot;:&quot;Anker Nano 7-in-1 USB-C Hub (4K HDMI)&quot;,&quot;jp&quot;:&quot;B0F1MM3FM6&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0F1MM3FM6&quot;,&quot;title&quot;:&quot;Anker Nano USB-C ハブ (7-in-1, 4K, HDMI)&quot;,&quot;searchQuery&quot;:&quot;Anker Nano USB-C ハブ (7-in-1, 4K, HDMI)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61PouYj-RjL._AC_SY879_.jpg&quot;,&quot;jan&quot;:&quot;4571651001013&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;ugreen_uno_6in1&quot;:{&quot;type&quot;:&quot;usb_c_hub&quot;,&quot;ja&quot;:&quot;UGREEN Uno 6-in-1 USB-C ハブ（35998）&quot;,&quot;en&quot;:&quot;UGREEN Uno 6-in-1 USB-C Hub (35998)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0D2Q5XJY9&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0D2Q5XJY9&quot;,&quot;asinUS&quot;:&quot;B0D2Q5XJY9&quot;,&quot;title&quot;:&quot;UGREEN Uno 6-in-1 USB-C Hub (35998)&quot;,&quot;searchQuery&quot;:&quot;UGREEN Uno 6-in-1 USB-C Hub (35998)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71BAImYeBiL._AC_SY450_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;asus_zenbook_duo_ux8406ca_285h&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;ASUS Zenbook DUO UX8406CA（Core Ultra 9 285H / 32GB / 1TB）&quot;,&quot;en&quot;:&quot;ASUS Zenbook DUO UX8406CA（Core Ultra 9 285H / 32GB / 1TB）&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DPQ35KMW&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DPQ35KMW&quot;,&quot;asinUS&quot;:&quot;B0DPQ35KMW&quot;,&quot;title&quot;:&quot;ASUS Zenbook DUO UX8406CA（Core Ultra 9 285H / 32GB / 1TB）&quot;,&quot;searchQuery&quot;:&quot;ASUS Zenbook DUO UX8406CA（Core Ultra 9 285H / 32GB / 1TB）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71VUFrGHwDL._AC_SY450_.jpg&quot;}},&quot;rank_us&quot;:2}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;usb_c_hub&quot;:&quot;anker_nano_7in1&quot;,&quot;external_ssd&quot;:null,&quot;laptop&quot;:null},&quot;en&quot;:{&quot;usb_c_hub&quot;:&quot;ugreen_uno_6in1&quot;,&quot;external_ssd&quot;:&quot;wd_mypassport_ssd_1tb&quot;,&quot;laptop&quot;:&quot;asus_zenbook_duo_ux8406ca_285h&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;windows-dev-spec-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 値（公式の最小メモリ・空き容量・Arm の対応状況・段）は calc.mjs が data.json の facts から M に入れて渡す。
//
// 必要なメモリ = 開発内容の公式の最小（それぞれのアプリを単独で使うとき。同時に使う場合は判定しない）。
// 最小構成のメモリ = 必要なメモリ以上の、市販ノートの一般的なメモリの段（M.memTiers）のうちいちばん小さい段（切り上げ）。
// 余裕 = 段 − 必要なメモリ。必要なメモリに対して tightRatio 未満なら「ぎりぎり」。
// 必要なストレージ = Windows 11 の最小ストレージ + 開発ツールの公式の空き容量 → M.stoTiers の段に切り上げ。
// CPU の種類 = Arm（Snapdragon）の Windows で、その開発ツールが公式に動くか（ok / ea = Docker の Early Access / ng = 公式が未対応）。

// 段でしか選べない値を、必要な値以上のいちばん小さい段に切り上げる。足りる段が無ければ null
function snapTier(x, tiers) {
  const t = tiers.find((s) =&gt; s &gt;= x - 1e-9);
  return t == null ? null : t;
}

// 開発内容 dev と CPU の種類 arch（&quot;any&quot; = まだ決めていない / &quot;x64&quot; / &quot;arm&quot;）から、最小の仕様を出す
function minimumSpec(M, dev, arch) {
  const req = M.req[dev];
  const mem = snapTier(req.mem, M.memTiers);
  const margin = mem - req.mem;
  const tight = margin / req.mem &lt; M.tightRatio;
  const stoNeed = M.win11Sto + (req.disk || 0);
  const sto = snapTier(stoNeed, M.stoTiers);
  const armStatus = req.arm; // ok / ea / ng
  const archNeed = armStatus === &quot;ng&quot; ? &quot;x64&quot; : &quot;any&quot;;
  const archBlocked = arch === &quot;arm&quot; &amp;&amp; armStatus === &quot;ng&quot;;
  const archCond = arch === &quot;arm&quot; &amp;&amp; armStatus === &quot;ea&quot;;
  const status = archBlocked ? &quot;ng&quot; : tight || archCond ? &quot;cond&quot; : &quot;ok&quot;;
  const wslCap = req.wsl ? mem * M.wslPct / 100 : null;
  return { req, mem, margin, tight, stoNeed, sto, armStatus, archNeed, archBlocked, archCond, status, wslCap };
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（開発内容・CPU の種類）。機種は選ばせず、公式の最小を段に切り上げた仕様の条件（メモリ・SSD・x64 か Arm か）を出す。
// 商品の picks は返さない（仕様の条件だけを出す。候補は記事の「条件ごとの候補」の節。review/decisions.md 2026-10-11）。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    dev: &quot;開発内容&quot;, arch: &quot;CPU の種類&quot;,
    web: &quot;Web・WSL2（VS Code）&quot;, docker: &quot;Docker&quot;, vs: &quot;Visual Studio（.NET・C++ など）&quot;, vs_x64: &quot;Visual Studio（Python・データ分析など）&quot;,
    android: &quot;Android（エミュレーターなし）&quot;, android_emu: &quot;Android（エミュレーターあり）&quot;,
    any: &quot;まだ決めていない&quot;, x64: &quot;x64（Intel・AMD）&quot;, arm: &quot;Arm（Snapdragon）&quot;,
    what: { win11: &quot;Windows 11&quot;, docker: &quot;Docker Desktop&quot;, vs: &quot;Visual Studio 2026&quot;, as: &quot;Android Studio&quot; },
    need: (x, what) =&gt; `必要なメモリ: ${x}GB（${what}の公式の最小）`,
    webNote: &quot;VS Code にはメモリの公式の数字が無いので、Windows 11 の最小で判定しています&quot;,
    mem: (x) =&gt; `メモリ: ${x}GB 以上`,
    tight: &quot;メモリは公式の最小ちょうどで、余裕がありません（ぎりぎり）&quot;,
    margin: (x) =&gt; `メモリの余裕: ${x}GB`,
    sto: (x, need, base, has) =&gt; has ? `SSD: ${x}GB 以上（Windows 11 の最小 ${base}GB と開発ツールの公式の空き容量で ${need}GB）` : `SSD: ${x}GB 以上（Windows 11 の最小 ${base}GB から。この開発ツールには空き容量の公式の数字がありません）`,
    stoNote: &quot;自分のファイル・Docker イメージ・WSL の中身の分は計算していません&quot;,
    vsMax: (a, b, t) =&gt; `Visual Studio の典型的な空き容量は ${a}〜${b}GB です。全機能を入れると最大 ${t}GB で、SSD は 512GB が要ります`,
    archX64: &quot;CPU: x64（Intel・AMD）が必要です&quot;,
    archAny: &quot;CPU: x64・Arm のどちらでも動きます&quot;,
    archEa: &quot;CPU: x64・Arm のどちらでも。Arm 版の Docker Desktop は、Docker が Early Access と表記しています（Microsoft の Windows on Arm の説明はネイティブに動くと記述）&quot;,
    asArm: &quot;Android Studio は、Arm の CPU の Windows を現在サポートしていないと公式に書いています&quot;,
    vsArm: &quot;Arm64 の Visual Studio では、Python 開発・データサイエンス・Azure（コンテナー開発ツールを除く）などのワークロードが使えません&quot;,
    vsArmOk: &quot;Arm64 の Visual Studio は Windows 11 だけに対応しています（.NET デスクトップ・C++ デスクトップ・ASP.NET と Web などは対応）&quot;,
    dockerWin: &quot;Docker の要件の表に載っている Windows 11 は Enterprise・Pro・Education の 23H2 以降です（Home は表に無く、確かめていません）&quot;,
    wsl: (cap, pct) =&gt; `WSL2 が既定で使えるメモリは ${cap}GB までです（Windows のメモリの ${pct}%。.wslconfig で変えられます）`,
    rec: (x, what) =&gt; `${what}の推奨は ${x}GB です（この判定は最小で行っています）`,
    avd: (r, d) =&gt; `仮想デバイス（AVD）を同時に動かすと1台あたり約 ${r}GB のメモリ、1つ増やすごとに最大 ${d}GB のストレージが要ります`,
    vram: (x) =&gt; `エミュレーターを使う場合、GPU は VRAM ${x}GB 以上が公式の最小です`,
    cpuAs: &quot;Intel Core の N シリーズ・U シリーズは、Android Studio が性能不足で推奨しないとしています&quot;,
    cpuVs: &quot;Visual Studio はクアッドコア以上の CPU を推奨しています&quot;,
    multi: &quot;開発内容は1つだけ選びます。公式のメモリの数字はアプリごとに1つずつで、複数を合わせた数字はどのページにもないため、同時に使う場合は判定していません&quot;,
    vOk: (m, s, a) =&gt; `○ メモリ ${m}GB・SSD ${s}GB・${a}`, vTight: (m, s, a) =&gt; `△ メモリ ${m}GB（ぎりぎり）・SSD ${s}GB・${a}`,
    vEa: (m, s, tight) =&gt; `△ メモリ ${m}GB${tight ? &quot;（ぎりぎり）&quot; : &quot;&quot;}・SSD ${s}GB・Arm 版の Docker は Early Access`, vNg: &quot;✕ この開発内容は Arm の Windows では公式に未対応です&quot;,
    aX64: &quot;x64&quot;, aAny: &quot;x64 か Arm&quot;, aArm: &quot;Arm で可&quot;, aX64sel: &quot;x64&quot;,
    ngFix: &quot;CPU の種類を x64（Intel・AMD）にしてください&quot;,
    memL: (x) =&gt; `${x}GB`, needL: (x) =&gt; `必要 ${x}GB`,
    note: &quot;結果は Microsoft・Docker・Google の公式の要件（2026年10月の確認）から出しています。メモリは 8・16・32・64GB、SSD は 256GB・512GB・1TB・2TB の段に切り上げています（段はこの記事で決めた値）。速さや快適さは実機で試しておらず、判定していません。&quot;,
  },
  en: {
    dev: &quot;Development&quot;, arch: &quot;CPU type&quot;,
    web: &quot;Web / WSL 2 (VS Code)&quot;, docker: &quot;Docker&quot;, vs: &quot;Visual Studio (.NET, C++, etc.)&quot;, vs_x64: &quot;Visual Studio (Python, data science, etc.)&quot;,
    android: &quot;Android (no emulator)&quot;, android_emu: &quot;Android (with emulator)&quot;,
    any: &quot;Not decided&quot;, x64: &quot;x64 (Intel / AMD)&quot;, arm: &quot;Arm (Snapdragon)&quot;,
    what: { win11: &quot;Windows 11&quot;, docker: &quot;Docker Desktop&quot;, vs: &quot;Visual Studio 2026&quot;, as: &quot;Android Studio&quot; },
    need: (x, what) =&gt; `Memory needed: ${x} GB (official minimum for ${what})`,
    webNote: &quot;VS Code has no official RAM figure, so this uses the Windows 11 minimum&quot;,
    mem: (x) =&gt; `Memory: ${x} GB or more`,
    tight: &quot;Memory is exactly the official minimum with nothing to spare (borderline)&quot;,
    margin: (x) =&gt; `Memory headroom: ${x} GB`,
    sto: (x, need, base, has) =&gt; has ? `SSD: ${x} GB or more (${need} GB from Windows 11&apos;s ${base} GB minimum plus the tool&apos;s official free space)` : `SSD: ${x} GB or more (from Windows 11&apos;s ${base} GB minimum; this tool publishes no free-space figure)`,
    stoNote: &quot;Space for your own files, Docker images and what&apos;s inside WSL isn&apos;t calculated&quot;,
    vsMax: (a, b, t) =&gt; `Visual Studio typically needs ${a}–${b} GB. Installing every feature takes up to ${t} GB, which needs a 512 GB SSD`,
    archX64: &quot;CPU: x64 (Intel or AMD) required&quot;,
    archAny: &quot;CPU: works on either x64 or Arm&quot;,
    archEa: &quot;CPU: either x64 or Arm. Docker labels the Arm version of Docker Desktop Early Access (Microsoft&apos;s Windows on Arm overview says it runs natively)&quot;,
    asArm: &quot;Android Studio officially says Windows machines with Arm CPUs aren&apos;t currently supported&quot;,
    vsArm: &quot;On Arm64, Visual Studio doesn&apos;t support workloads such as Python development, data science and Azure (except the container development tools)&quot;,
    vsArmOk: &quot;Visual Studio on Arm64 supports Windows 11 only (.NET desktop, C++ desktop, ASP.NET and web, and others are supported)&quot;,
    dockerWin: &quot;Docker&apos;s requirements list Windows 11 Enterprise, Pro and Education, version 23H2 or later (Home isn&apos;t listed and wasn&apos;t verified)&quot;,
    wsl: (cap, pct) =&gt; `By default WSL 2 can use up to ${cap} GB (${pct}% of Windows&apos; memory; change it in .wslconfig)`,
    rec: (x, what) =&gt; `${what} recommends ${x} GB (this check uses the minimum)`,
    avd: (r, d) =&gt; `Running several virtual devices (AVDs) at once takes about ${r} GB of memory each, and each extra AVD can take up to ${d} GB of storage`,
    vram: (x) =&gt; `With the emulator, the official minimum GPU is one with ${x} GB of VRAM`,
    cpuAs: &quot;Android Studio says Intel Core N-series and U-series processors aren&apos;t recommended due to insufficient performance&quot;,
    cpuVs: &quot;Visual Studio recommends a quad-core or better CPU&quot;,
    multi: &quot;Pick one kind of development. Each official RAM figure is given per app and no page gives a combined figure, so running several together isn&apos;t judged&quot;,
    vOk: (m, s, a) =&gt; `✓ ${m} GB memory, ${s} GB SSD, ${a}`, vTight: (m, s, a) =&gt; `△ ${m} GB memory (borderline), ${s} GB SSD, ${a}`,
    vEa: (m, s, tight) =&gt; `△ ${m} GB memory${tight ? &quot; (borderline)&quot; : &quot;&quot;}, ${s} GB SSD, Docker on Arm is Early Access`, vNg: &quot;✕ Officially not supported on Windows on Arm&quot;,
    aX64: &quot;x64&quot;, aAny: &quot;x64 or Arm&quot;, aArm: &quot;Arm OK&quot;, aX64sel: &quot;x64&quot;,
    ngFix: &quot;Switch the CPU type to x64 (Intel or AMD)&quot;,
    memL: (x) =&gt; `${x} GB`, needL: (x) =&gt; `Needs ${x} GB`,
    note: &quot;Results come from the official requirements published by Microsoft, Docker and Google (checked October 2026). Memory is rounded up to 8, 16, 32 or 64 GB and SSDs to 256 GB, 512 GB, 1 TB or 2 TB (tiers chosen for this article). Speed and comfort weren&apos;t tested on real hardware and aren&apos;t judged.&quot;,
  },
};

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;dev&quot;, type: &quot;select&quot;, label: t.dev, value: &quot;web&quot;, options: M.devs.map((x) =&gt; ({ value: x, label: t[x] })) },
    { name: &quot;arch&quot;, type: &quot;select&quot;, label: t.arch, value: &quot;any&quot;, options: M.archs.map((x) =&gt; ({ value: x, label: t[x] })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  if (!M.devs.includes(v.dev) || !M.archs.includes(v.arch)) return { status: &quot;error&quot;, lines: [] };
  const r = minimumSpec(M, v.dev, v.arch);
  const lines = [];
  lines.push(t.need(r.req.mem, t.what[r.req.memSrc]));
  if (v.dev === &quot;web&quot;) lines.push(t.webNote);
  if (r.archBlocked) {
    lines.push(v.dev === &quot;vs_x64&quot; ? t.vsArm : t.asArm);
    lines.push(t.ngFix);
    return { status: &quot;ng&quot;, verdict: t.vNg, lines, sheet: sheet_(r, v, M, lang) };
  }
  lines.push(t.mem(r.mem));
  lines.push(r.tight ? t.tight : t.margin(r.margin));
  lines.push(t.sto(r.sto, r.stoNeed, M.win11Sto, r.req.disk != null));
  lines.push(r.armStatus === &quot;ng&quot; ? t.archX64 : r.armStatus === &quot;ea&quot; ? t.archEa : t.archAny);
  if (r.armStatus === &quot;ng&quot;) lines.push(v.dev === &quot;vs_x64&quot; ? t.vsArm : t.asArm);
  if (v.dev === &quot;vs&quot; &amp;&amp; v.arch !== &quot;x64&quot;) lines.push(t.vsArmOk);
  if (r.wslCap != null) lines.push(t.wsl(r.wslCap, M.wslPct));
  if (v.dev === &quot;docker&quot;) lines.push(t.dockerWin);
  if (v.dev === &quot;vs&quot; || v.dev === &quot;vs_x64&quot;) { lines.push(t.vsMax(M.vsTyp[0], M.vsTyp[1], M.vsMaxDisk)); lines.push(t.cpuVs); lines.push(t.rec(M.rec.vs, &quot;Visual Studio&quot;)); }
  if (v.dev === &quot;android&quot; || v.dev === &quot;android_emu&quot;) lines.push(t.cpuAs);
  if (v.dev === &quot;android_emu&quot;) { lines.push(t.rec(M.rec.as, &quot;Android Studio&quot;)); lines.push(t.vram(M.vram)); lines.push(t.avd(M.avd.ram, M.avd.disk)); }
  lines.push(t.stoNote);
  lines.push(t.multi);
  const a = r.armStatus === &quot;ng&quot; ? t.aX64 : v.arch === &quot;x64&quot; ? t.aX64sel : v.arch === &quot;arm&quot; ? t.aArm : t.aAny;
  const verdict = r.archCond ? t.vEa(r.mem, r.sto, r.tight) : r.tight ? t.vTight(r.mem, r.sto, a) : t.vOk(r.mem, r.sto, a);
  const max = Math.max(r.mem, r.req.mem) * 1.5;
  const meter = { min: 0, max, value: r.mem, ok: [r.req.mem, max], unit: &quot;GB&quot;, valueLabel: t.memL(r.mem), okLabel: t.needL(r.req.mem) };
  return { status: r.status, verdict, lines, meter, sheet: sheet_(r, v, M, lang) };
}

// 型 D の仕様書の行（minimumSpec の結果だけ。理由は上の行の短い言い方、出典は公式の要件を出している会社）
const SRC_ = { win11: &quot;Microsoft&quot;, vs: &quot;Microsoft&quot;, docker: &quot;Docker&quot;, as: &quot;Google&quot; };
function sheet_(r, v, M, lang) {
  const t = T_[lang], ja = lang === &quot;ja&quot;, w = t.what[r.req.memSrc];
  const rows = [
    { key: ja ? &quot;メモリ&quot; : &quot;Memory&quot;, value: t.mem(r.mem).replace(/^[^:：]+[:：]\s*/, &quot;&quot;), reason: ja ? `${w}の公式の最小 ${r.req.mem}GB → ${r.mem}GB の段` : `${w} minimum ${r.req.mem} GB → ${r.mem} GB tier`, src: SRC_[r.req.memSrc], tight: r.tight },
    { key: &quot;SSD&quot;, value: ja ? `${r.sto}GB 以上` : `${r.sto} GB or more`, reason: r.req.disk != null ? (ja ? `Windows 11 の最小 ${M.win11Sto}GB＋空き容量 ${r.req.disk}GB＝${r.stoNeed}GB → ${r.sto}GB` : `Windows 11 ${M.win11Sto} GB + ${r.req.disk} GB free = ${r.stoNeed} GB → ${r.sto} GB`) : (ja ? `Windows 11 の最小 ${M.win11Sto}GB から` : `From Windows 11&apos;s ${M.win11Sto} GB minimum`), src: r.req.memSrc === &quot;as&quot; ? &quot;Google&quot; : &quot;Microsoft&quot; },
  ];
  const cpuSrc = v.dev === &quot;android&quot; || v.dev === &quot;android_emu&quot; ? &quot;Google&quot; : v.dev === &quot;docker&quot; ? &quot;Docker&quot; : &quot;Microsoft&quot;;
  if (r.archBlocked) rows.push({ key: &quot;CPU&quot;, value: ja ? &quot;x64（Intel・AMD）&quot; : &quot;x64 (Intel / AMD)&quot;, reason: ja ? &quot;この開発内容は Arm の Windows に公式に未対応&quot; : &quot;Officially not supported on Windows on Arm&quot;, src: cpuSrc, ng: true, badge: ja ? &quot;Arm は不可&quot; : &quot;Not on Arm&quot; });
  else if (r.armStatus === &quot;ng&quot;) rows.push({ key: &quot;CPU&quot;, value: ja ? &quot;x64（Intel・AMD）&quot; : &quot;x64 (Intel / AMD)&quot;, reason: ja ? &quot;Arm の Windows は公式に未対応&quot; : &quot;Not officially supported on Windows on Arm&quot;, src: cpuSrc });
  else if (r.armStatus === &quot;ea&quot;) rows.push({ key: &quot;CPU&quot;, value: ja ? &quot;x64・Arm（Arm 版は Early Access）&quot; : &quot;x64 or Arm (Arm is Early Access)&quot;, reason: ja ? &quot;Docker が Arm 版を Early Access と表記&quot; : &quot;Docker labels the Arm version Early Access&quot;, src: &quot;Docker&quot;, tight: r.archCond, badge: r.archCond ? &quot;Early Access&quot; : null });
  else rows.push({ key: &quot;CPU&quot;, value: ja ? &quot;x64・Arm のどちらでも&quot; : &quot;Either x64 or Arm&quot;, reason: ja ? &quot;公式の要件に CPU の種類の制限なし&quot; : &quot;No CPU-type restriction in the official requirements&quot;, src: &quot;Microsoft&quot; });
  if (r.wslCap != null) rows.push({ key: &quot;WSL2&quot;, value: ja ? `既定で ${r.wslCap}GB まで` : `Up to ${r.wslCap} GB by default`, reason: ja ? `メモリの ${M.wslPct}%（.wslconfig で変更可）` : `${M.wslPct}% of memory (set in .wslconfig)`, src: &quot;Microsoft&quot; });
  return rows;
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（開発内容 × CPU の種類）
function presets() {
  const P = (dev, arch = &quot;any&quot;) =&gt; ({ dev, arch });
  return [
    P(&quot;web&quot;), P(&quot;web&quot;, &quot;arm&quot;),
    P(&quot;docker&quot;), P(&quot;docker&quot;, &quot;arm&quot;),
    P(&quot;vs&quot;), P(&quot;vs&quot;, &quot;arm&quot;), P(&quot;vs_x64&quot;), P(&quot;vs_x64&quot;, &quot;arm&quot;),
    P(&quot;android&quot;), P(&quot;android&quot;, &quot;arm&quot;),
    P(&quot;android_emu&quot;), P(&quot;android_emu&quot;, &quot;x64&quot;), P(&quot;android_emu&quot;, &quot;arm&quot;),
  ];
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;sheet&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;start-at-8-gb-of-ram-and-a-256-gb-ssd&quot;&gt;Start at 8 GB of RAM and a 256 GB SSD&lt;/h2&gt;
&lt;p&gt;Per each vendor’s official requirements, the minimum RAM is 8 GB for Docker Desktop, 8 GB for Android Studio, and 16 GB with the emulator. Each official RAM figure is given per app, and none of the pages gives a combined figure. So running several, such as Docker and Android Studio together, isn’t judged here.&lt;/p&gt;
&lt;p&gt;With 16 GB of memory in a programming laptop, everything except the Android emulator clears the official minimum with room to spare. With the emulator it’s exactly the minimum, so it’s borderline, and Android Studio recommends 32 GB with the emulator.&lt;/p&gt;
&lt;p&gt;Windows 11’s 64 GB minimum plus each dev tool’s official free space fits in 256 GB, counting Visual Studio at its typical 20–50 GB install. A full Visual Studio install, at 274 GB, needs 512 GB. Setups between typical and full, and your own files and Docker images, aren’t calculated.&lt;/p&gt;
&lt;h2 id=&quot;cpu-cores-and-type-and-tools-that-dont-run-on-arm&quot;&gt;CPU cores and type, and tools that don’t run on Arm&lt;/h2&gt;
&lt;p&gt;Per the Visual Studio 2026 system requirements, a quad-core or better CPU is recommended. Per Android Studio’s official requirements, Intel Core N-series and U-series processors aren’t recommended due to insufficient performance. With the emulator, the minimum GPU has 4 GB of VRAM.&lt;/p&gt;
&lt;p&gt;Per the makers’ spec pages, two chips both called Ryzen AI 5 differ: the 330 has 4 cores and the 340 has 6 cores. Check the core count on the spec page, not the name.&lt;/p&gt;
&lt;p&gt;Android Studio needs an x64 CPU, while VS Code and WSL 2 also run on Windows on Arm. Visual Studio supports Arm64 too, but Python development, data science and other workloads aren’t supported. Before choosing Arm, check the workloads you use against Microsoft’s list.&lt;/p&gt;
&lt;p&gt;Per the vendors’ official documentation, Docker calls its Arm build Early Access, but Microsoft says it runs natively, so the two differ.&lt;/p&gt;
&lt;h2 id=&quot;wsl2-and-docker-on-windows-11-home-and-the-ram-cap&quot;&gt;WSL2 and Docker on Windows 11 Home, and the RAM cap&lt;/h2&gt;
&lt;p&gt;Per Microsoft’s documentation, WSL 2 works on Windows 11 Home and supports both x64 and Arm64 CPUs.&lt;/p&gt;
&lt;p&gt;WSL 2 can use up to 50% of Windows’ memory by default. On a 16 GB laptop that’s 8 GB, and you can change it in .wslconfig.&lt;/p&gt;
&lt;p&gt;Docker Desktop’s requirements table lists Windows 11 Enterprise, Pro and Education, version 23H2 or later; Home isn’t listed, and this article hasn’t verified whether Docker Desktop works on Home.&lt;/p&gt;
&lt;h2 id=&quot;used-or-windows-10-laptops-pick-by-windows-11-requirements&quot;&gt;Used or Windows 10 laptops: pick by Windows 11 requirements&lt;/h2&gt;
&lt;p&gt;Windows 10 support ended on October 14, 2025, and consumer Extended Security Updates (ESU) run only until October 12, 2027. If you buy used, choose a machine that meets Windows 11’s requirements (a compatible 64-bit CPU with 2 cores or more, TPM 2.0, UEFI Secure Boot).&lt;/p&gt;
&lt;p&gt;Per Microsoft’s documentation, ESU for businesses and schools runs for up to 3 years after Windows 10’s end of support.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-condition&quot;&gt;Picks by condition&lt;/h2&gt;
&lt;p&gt;One pick per condition where a listing qualifies, from Amazon.com. When more than one product checked for this article meets these criteria, the pick is the cheapest. Check prices on the seller site.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sold new by Amazon.com or the maker, not a gray-market import, with a model number that matches the maker’s spec&lt;/li&gt;
&lt;li&gt;At least 100 ratings and 4 stars or more&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;connecting-an-external-monitor-at-4k-60-hz-while-charging-the-laptop&quot;&gt;Connecting an external monitor at 4K 60 Hz while charging the laptop&lt;/h3&gt;
&lt;p&gt;A USB-C hub with HDMI at 4K 60 Hz and up to 85 W of PD pass-through.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for UGREEN Uno 6-in-1 USB-C Hub (35998)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71BAImYeBiL._AC_SY450_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;UGREEN Uno 6-in-1 USB-C Hub (35998)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0D2Q5XJY9?q=UGREEN+Uno+6-in-1+USB-C+Hub+%2835998%29&amp;amp;us=B0D2Q5XJY9&amp;amp;l=en&quot; aria-label=&quot;View UGREEN Uno 6-in-1 USB-C Hub (35998) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Sold by UGREEN GROUP LIMITED. Whether the rating count is shared with other models on the listing wasn&amp;#39;t checked.&lt;/p&gt;
&lt;h3 id=&quot;a-1-tb-external-ssd-for-a-pc&quot;&gt;A 1 TB external SSD for a PC&lt;/h3&gt;
&lt;p&gt;1 TB, USB-C, and the maker lists it as compatible with PC and Mac.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for WD My Passport SSD 1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81y8P1up-PL._AC_SY450_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;WD My Passport SSD 1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B08F27QGHX?q=WD+My+Passport+SSD+1TB&amp;amp;us=B08F27QGHX&amp;amp;l=en&quot; aria-label=&quot;View WD My Passport SSD 1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;a-windows-laptop-that-meets-the-emulators-ram-ssd-and-x64-conditions&quot;&gt;A Windows laptop that meets the emulator’s RAM, SSD and x64 conditions&lt;/h3&gt;
&lt;p&gt;At least 16 GB of RAM, 256 GB of SSD and an x64 CPU. In this calculation, whether its GPU (listed by ASUS as Intel® Arc™ Graphics, with no VRAM figure) meets the emulator’s VRAM condition isn’t judged.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS Zenbook DUO UX8406CA（Core Ultra 9 285H / 32GB / 1TB）&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71VUFrGHwDL._AC_SY450_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS Zenbook DUO UX8406CA（Core Ultra 9 285H / 32GB / 1TB）&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DPQ35KMW?q=ASUS+Zenbook+DUO+UX8406CA%EF%BC%88Core+Ultra+9+285H+%2F+32GB+%2F+1TB%EF%BC%89&amp;amp;us=B0DPQ35KMW&amp;amp;l=en&quot; aria-label=&quot;View ASUS Zenbook DUO UX8406CA（Core Ultra 9 285H / 32GB / 1TB） on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;how-much-ram-does-a-windows-laptop-need-for-programming&quot;&gt;How much RAM does a Windows laptop need for programming?&lt;/h3&gt;
&lt;p&gt;The minimum RAM is 8 GB for Docker Desktop, 8 GB for Android Studio, and 16 GB with the emulator. With 16 GB of memory in a programming laptop, everything except the Android emulator clears the official minimum with room to spare.&lt;/p&gt;
&lt;p&gt;With the emulator it’s exactly the minimum, so it’s borderline, and Android Studio recommends 32 GB with the emulator. The official minimums are per app, and running several at once isn’t judged.&lt;/p&gt;
&lt;h3 id=&quot;can-you-program-on-a-laptop-with-8-gb-of-ram&quot;&gt;Can you program on a laptop with 8 GB of RAM?&lt;/h3&gt;
&lt;p&gt;Yes. With 8 GB, web development, WSL 2 and Visual Studio meet the official minimum.&lt;/p&gt;
&lt;p&gt;Docker and Android Studio (without the emulator) are exactly at the official 8 GB minimum, so it’s borderline. With the Android emulator the minimum is 16 GB, so 8 GB isn’t enough.&lt;/p&gt;
&lt;p&gt;VS Code has no official RAM figure, so web development and WSL 2 are judged against Windows 11’s 4 GB minimum. Rounded up to a memory tier, the laptop to buy starts at 8 GB.&lt;/p&gt;
&lt;p&gt;Visual Studio’s minimum RAM is 4 GB, and 16 GB is recommended for typical professional solutions.&lt;/p&gt;
&lt;h3 id=&quot;is-a-256-gb-ssd-enough-for-programming&quot;&gt;Is a 256 GB SSD enough for programming?&lt;/h3&gt;
&lt;p&gt;Windows 11’s 64 GB minimum plus each dev tool’s official free space fits in 256 GB, counting Visual Studio at its typical 20–50 GB install. A full Visual Studio install, at 274 GB, needs 512 GB.&lt;/p&gt;
&lt;p&gt;Setups between typical and full, and your own files and Docker images, aren’t calculated.&lt;/p&gt;
&lt;h3 id=&quot;can-you-program-on-a-snapdragon-arm-windows-laptop&quot;&gt;Can you program on a Snapdragon (Arm) Windows laptop?&lt;/h3&gt;
&lt;p&gt;Android Studio needs an x64 CPU, while VS Code and WSL 2 also run on Windows on Arm. Visual Studio supports Arm64 too, but Python development, data science and other workloads aren’t supported.&lt;/p&gt;
&lt;p&gt;Before choosing Arm, check the workloads you use against Microsoft’s list. Per Android Studio’s official requirements, Windows machines with Arm-based CPUs (such as Snapdragon) aren’t currently supported.&lt;/p&gt;
&lt;p&gt;Per the vendors’ official documentation as of October 2026, Docker calls its Arm build Early Access, but Microsoft says it runs natively, so the two differ.&lt;/p&gt;
&lt;h3 id=&quot;do-wsl2-and-docker-work-on-windows-11-home&quot;&gt;Do WSL2 and Docker work on Windows 11 Home?&lt;/h3&gt;
&lt;p&gt;WSL 2 works on Windows 11 Home and supports both x64 and Arm64 CPUs. Docker Desktop’s requirements table lists Windows 11 Enterprise, Pro and Education, version 23H2 or later; Home isn’t listed, and this article hasn’t verified whether Docker Desktop works on Home.&lt;/p&gt;
&lt;h3 id=&quot;whats-the-difference-between-the-ryzen-ai-5-330-and-340&quot;&gt;What’s the difference between the Ryzen AI 5 330 and 340?&lt;/h3&gt;
&lt;p&gt;Two chips both called Ryzen AI 5 differ: the 330 has 4 cores and the 340 has 6 cores. Check the core count on the spec page, not the name.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;:&lt;/p&gt;&lt;p&gt;Sources: &lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Windows 11 specifications&lt;/a&gt; and &lt;a href=&quot;https://www.microsoft.com/en-us/windows/end-of-support&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Windows 10 end of support&lt;/a&gt; ／ &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Install WSL&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/faq&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;WSL FAQ&lt;/a&gt; and &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/wsl-config&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;.wslconfig settings&lt;/a&gt; ／ &lt;a href=&quot;https://docs.docker.com/desktop/setup/install/windows-install/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Docker Desktop for Windows&lt;/a&gt; and &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/arm/overview&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Windows on Arm overview&lt;/a&gt; ／ &lt;a href=&quot;https://learn.microsoft.com/en-us/visualstudio/releases/2026/vs-system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Visual Studio 2026 system requirements&lt;/a&gt; and &lt;a href=&quot;https://learn.microsoft.com/en-us/visualstudio/install/visual-studio-on-arm-devices&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Visual Studio on Arm devices&lt;/a&gt; ／ &lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Android Studio install requirements&lt;/a&gt; and &lt;a href=&quot;https://learn.microsoft.com/en-us/dotnet/maui/android/emulator/hardware-acceleration&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;.NET MAUI Android emulator&lt;/a&gt; ／ &lt;a href=&quot;https://www.dell.com/en-us/shop/dell-laptops/dell-14-laptop/spd/dell-dc14255-laptop&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell 14 specs&lt;/a&gt; and &lt;a href=&quot;https://www.asus.com/us/laptops/for-home/vivobook/asus-vivobook-16-m1607/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ASUS Vivobook 16 specs&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Memory needed = the official minimum RAM for the chosen kind of development (Docker Desktop for Windows 8 GB, Visual Studio 2026 4 GB, Android Studio 8 GB without the emulator and 16 GB with it). VS Code (web development, WSL 2) has no official RAM figure, so it’s judged against the Windows 11 minimum of 4 GB. Official recommendations (Visual Studio 16 GB, Android Studio 32 GB) aren’t used for the conclusions. Each official figure is given per app and no page gives a combined figure, so running several at once isn’t judged.&lt;/li&gt;
&lt;li&gt;Minimum memory = the smallest of 8, 16, 32 and 64 GB (tiers chosen for this article as common laptop sizes) at or above the memory needed. If the headroom (tier − memory needed) is under 10% of the memory needed, it’s marked borderline (a threshold set for this article).&lt;/li&gt;
&lt;li&gt;SSD needed = Windows 11’s minimum storage 64 GB plus the tool’s official free space (Visual Studio: the top of the typical 20-50 GB, or 210 GB with every feature; Android Studio 8 GB without the emulator and 16 GB with it), rounded up to 256 GB, 512 GB, 1 TB or 2 TB. Docker Desktop and VS Code publish no free-space figure. Your own files, Docker images and what’s inside WSL aren’t calculated. WSL 2’s default virtual disk size of 1 TB is a cap, not usage.&lt;/li&gt;
&lt;li&gt;x64 or Arm = whether the tool officially runs on Windows on Arm (Snapdragon). Google states Android Studio doesn’t support Windows on Arm (Microsoft Learn’s .NET MAUI page also says the Android emulator needs x64). Visual Studio 2026 supports Windows 11 on Arm64, but some workloads such as Python development and data science aren’t supported there. Docker labels the Arm version of Docker Desktop Early Access, while Microsoft’s Windows on Arm overview says it runs natively (Docker’s label is used). WSL supports x64 and Arm64, and VS Code runs natively on Arm. Windows 10 consumer ESU runs until 2027-10-12 (business and education: up to 3 years after end of support).&lt;/li&gt;
&lt;li&gt;By default WSL 2 can use 50 % of Windows’ memory (changeable in .wslconfig). Speed and comfort weren’t tested on real hardware and aren’t judged.jp or Amazon.com as of October 8, 2026.&lt;/li&gt;
&lt;li&gt;Products (USB-C hubs, an external SSD, and a US laptop) must have 100+ ratings, 4+ stars, a seller that is Amazon or the maker (checked on the seller page’s business name and description), and be new with a model number matching the maker’s spec page (checked October 11, 2026). The hubs’ 4K HDMI at 60 Hz and PD pass-through (Anker 85 W, UGREEN 85 W) and the WD My Passport SSD’s “compatible with PC and Mac” (Windows isn’t named) come from the makers’ spec pages. The Zenbook Duo’s GPU is listed as “Intel® Arc™ Graphics” with no VRAM figure, so whether it meets the emulator GPU condition (4 GB of VRAM) isn’t judged.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;






















































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Windows 11 minimum RAM&lt;/td&gt;&lt;td&gt;4 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 11 minimum storage&lt;/td&gt;&lt;td&gt;64 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt; Storage: 64 GB or larger storage device&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 11 minimum CPU cores&lt;/td&gt;&lt;td&gt;2 cores&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt; Processor: 1 GHz or faster with 2 or more cores on a compatible 64-bit processor&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 11 TPM requirement&lt;/td&gt;&lt;td&gt;2.0&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt; TPM: version 2.0。System firmware: UEFI, Secure Boot capable&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Copilot+ PC RAM requirement&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 10 end of support date&lt;/td&gt;&lt;td&gt;2025-10-14&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/end-of-support&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt; Windows 10 reached end of support on October 14, 2025&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 10 consumer ESU end date&lt;/td&gt;&lt;td&gt;2027-10-12&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/extended-security-updates&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WSL supported Windows versions&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; Prerequisites: Windows 10 version 2004 and higher (Build 19041 and higher) or Wi&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WSL 2 works on Windows 11 Home&lt;/td&gt;&lt;td&gt;true&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/faq&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WSL supports Arm64 CPUs&lt;/td&gt;&lt;td&gt;true&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/faq&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; What processors does WSL support? WSL supports x64 and Arm64 CPUs.&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WSL 2 default memory limit (share of Windows memory)&lt;/td&gt;&lt;td&gt;50 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/wsl-config&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WSL 2 default swap (share of memory, rounded up to GB)&lt;/td&gt;&lt;td&gt;25 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/wsl-config&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WSL 2 default virtual disk size limit&lt;/td&gt;&lt;td&gt;1 TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/wsl-config&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WSL 2 default processors&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/wsl/wsl-config&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Docker Desktop for Windows minimum RAM&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://docs.docker.com/desktop/setup/install/windows-install/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;docs.docker.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WSL version required by Docker Desktop&lt;/td&gt;&lt;td&gt;2.1.5&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://docs.docker.com/desktop/setup/install/windows-install/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;docs.docker.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Docker Desktop supported Windows 11&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://docs.docker.com/desktop/setup/install/windows-install/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;docs.docker.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Docker Desktop for Windows Arm status (per Docker)&lt;/td&gt;&lt;td&gt;Early Access&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://docs.docker.com/desktop/setup/install/windows-install/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;docs.docker.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Current Visual Studio release (Stable channel)&lt;/td&gt;&lt;td&gt;Visual Studio 2026&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/visualstudio/releases/2026/release-history&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Visual Studio 2026 minimum RAM&lt;/td&gt;&lt;td&gt;4 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/visualstudio/releases/2026/vs-system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; Hardware: Minimum of 4 GB of RAM&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Visual Studio 2026 recommended RAM (typical professional solutions)&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/visualstudio/releases/2026/vs-system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; We recommend 16 GB RAM for typical professional solutions; works best with 64 GB&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Visual Studio 2026 typical free disk space&lt;/td&gt;&lt;td&gt;20-50 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/visualstudio/releases/2026/vs-system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Visual Studio 2026 maximum disk space (all features)&lt;/td&gt;&lt;td&gt;210 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/visualstudio/releases/2026/vs-system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; Minimum of 2.5 GB up to 210 GB of available space, depending on features install&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Visual Studio 2026 CPU recommendation&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/visualstudio/releases/2026/vs-system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; ARM64 or AMD64/x64 processor; Quad-core or better recommended; works best with 1&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Visual Studio 2026 minimum display resolution&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/visualstudio/releases/2026/vs-system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Visual Studio 2026 on Arm64&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/visualstudio/releases/2026/vs-system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Workloads not supported by Visual Studio 2026 on ARM64&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/visualstudio/releases/2026/vs-system-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; The following workloads and components are not supported by Visual Studio ARM64&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android Studio minimum RAM (without emulator)&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android Studio + Emulator minimum RAM&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android Studio + Emulator recommended RAM&lt;/td&gt;&lt;td&gt;32 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android Studio minimum free disk (without emulator)&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt; Disk space: Studio: 8 GB of free space&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android Studio + Emulator minimum free disk&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Extra storage per additional AVD (up to)&lt;/td&gt;&lt;td&gt;6 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt; You might need up to 6GB of additional storage for each additional AVD created&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Approx. memory per simultaneously running AVD&lt;/td&gt;&lt;td&gt;4 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt; Running multiple AVDs simultaneously requires approximately 4GB of memory per AV&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Minimum GPU VRAM with Emulator&lt;/td&gt;&lt;td&gt;4 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android Studio does not support Windows on ARM&lt;/td&gt;&lt;td&gt;Windows machines with ARM-based CPUs aren’t currently supported.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android Studio CPU note&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt; Please be aware that Intel Core N-Series and U-Series processors are not recomme&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 11 on Arm x64 emulation&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/arm/overview&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; Windows 11 adds the ability to run unmodified x64 Windows apps on Arm devices.&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Visual Studio Code natively supports Arm&lt;/td&gt;&lt;td&gt;true&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/arm/overview&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; Visual Studio Code natively supports Arm and can be installed on Arm devices.&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ryzen AI 5 330 core count (per Dell spec page)&lt;/td&gt;&lt;td&gt;4 cores&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/en-us/shop/dell-laptops/dell-14-laptop/spd/dell-dc14255-laptop&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ryzen AI 5 340 core count (per ASUS spec page)&lt;/td&gt;&lt;td&gt;6 cores&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/laptops/for-home/vivobook/asus-vivobook-16-m1607/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Processor: AMD Ryzen AI 5 340 Processor 2.0GHz (22MB Cache, up to 4.8GHz, 6 core&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 10 business/education ESU maximum length (after end of support)&lt;/td&gt;&lt;td&gt;3 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/whats-new/extended-security-updates&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 11 processor requirement&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/whats-new/windows-11-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; Processor: 1 gigahertz (GHz) or faster with two or more cores on a compatible 64&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;How to check Windows 11 processor eligibility&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows-hardware/design/minimum/windows-processor-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Anker Nano 7-in-1 HDMI refresh rate at 4K&lt;/td&gt;&lt;td&gt;60 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ankerjapan.com/products/a83d2&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ankerjapan.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Anker Nano 7-in-1 maximum PD pass-through&lt;/td&gt;&lt;td&gt;85 W&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ankerjapan.com/products/a83d2&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ankerjapan.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UGREEN Uno 6-in-1 HDMI refresh rate at 4K&lt;/td&gt;&lt;td&gt;60 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ugreen.com/en-au/products/au-35998&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ugreen.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UGREEN Uno 6-in-1 maximum PD pass-through&lt;/td&gt;&lt;td&gt;85 W&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ugreen.com/en-au/products/au-35998&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ugreen.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;WD My Passport SSD compatibility statement&lt;/td&gt;&lt;td&gt;compatible with PC and Mac&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sandisk.com/products/ssd/external-ssd/wd-my-passport-usb-3-2-ssd?sku=WDBAGF0010BGY-WESN&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sandisk.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS Zenbook Duo (UX8406CA) GPU listing&lt;/td&gt;&lt;td&gt;Intel® Arc™ Graphics&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/laptops/for-home/zenbook/asus-zenbook-duo-2024-ux8406/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Minimum Windows laptop spec for your development work: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;










































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Web / WSL 2 (VS Code), Not decided&lt;/td&gt;&lt;td&gt;✓ 8 GB memory, 256 GB SSD, x64 or Arm. Memory needed: 4 GB (official minimum for Windows 11). VS Code has no official RAM figure, so this uses the Windows 11 minimum. Memory: 8 GB or more. Memory headroom: 4 GB. SSD: 256 GB or more (from Windows 11’s 64 GB minimum; this tool publishes no free-space figure). CPU: works on either x64 or Arm. By default WSL 2 can use up to 4 GB (50% of Windows’ memory; change it in .wslconfig). Space for your own files, Docker images and what’s inside WSL isn’t calculated. Pick one kind of development. Each official RAM figure is given per app and no page gives a combined figure, so running several together isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-28-programming-windows/?windows-dev-spec-calc-dev=web&amp;amp;windows-dev-spec-calc-arch=any#windows-dev-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Web / WSL 2 (VS Code), Arm (Snapdragon)&lt;/td&gt;&lt;td&gt;✓ 8 GB memory, 256 GB SSD, Arm OK. Memory needed: 4 GB (official minimum for Windows 11). VS Code has no official RAM figure, so this uses the Windows 11 minimum. Memory: 8 GB or more. Memory headroom: 4 GB. SSD: 256 GB or more (from Windows 11’s 64 GB minimum; this tool publishes no free-space figure). CPU: works on either x64 or Arm. By default WSL 2 can use up to 4 GB (50% of Windows’ memory; change it in .wslconfig). Space for your own files, Docker images and what’s inside WSL isn’t calculated. Pick one kind of development. Each official RAM figure is given per app and no page gives a combined figure, so running several together isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-28-programming-windows/?windows-dev-spec-calc-dev=web&amp;amp;windows-dev-spec-calc-arch=arm#windows-dev-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Docker, Not decided&lt;/td&gt;&lt;td&gt;△ 8 GB memory (borderline), 256 GB SSD, x64 or Arm. Memory needed: 8 GB (official minimum for Docker Desktop). Memory: 8 GB or more. Memory is exactly the official minimum with nothing to spare (borderline). SSD: 256 GB or more (from Windows 11’s 64 GB minimum; this tool publishes no free-space figure). CPU: either x64 or Arm. Docker labels the Arm version of Docker Desktop Early Access (Microsoft’s Windows on Arm overview says it runs natively). By default WSL 2 can use up to 4 GB (50% of Windows’ memory; change it in .wslconfig). Docker’s requirements list Windows 11 Enterprise, Pro and Education, version 23H2 or later (Home isn’t listed and wasn’t verified). Space for your own files, Docker images and what’s inside WSL isn’t calculated. Pick one kind of development. Each official RAM figure is given per app and no page gives a combined figure, so running several together isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-28-programming-windows/?windows-dev-spec-calc-dev=docker&amp;amp;windows-dev-spec-calc-arch=any#windows-dev-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Docker, Arm (Snapdragon)&lt;/td&gt;&lt;td&gt;△ 8 GB memory (borderline), 256 GB SSD, Docker on Arm is Early Access. Memory needed: 8 GB (official minimum for Docker Desktop). Memory: 8 GB or more. Memory is exactly the official minimum with nothing to spare (borderline). SSD: 256 GB or more (from Windows 11’s 64 GB minimum; this tool publishes no free-space figure). CPU: either x64 or Arm. Docker labels the Arm version of Docker Desktop Early Access (Microsoft’s Windows on Arm overview says it runs natively). By default WSL 2 can use up to 4 GB (50% of Windows’ memory; change it in .wslconfig). Docker’s requirements list Windows 11 Enterprise, Pro and Education, version 23H2 or later (Home isn’t listed and wasn’t verified). Space for your own files, Docker images and what’s inside WSL isn’t calculated. Pick one kind of development. Each official RAM figure is given per app and no page gives a combined figure, so running several together isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-28-programming-windows/?windows-dev-spec-calc-dev=docker&amp;amp;windows-dev-spec-calc-arch=arm#windows-dev-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Visual Studio (.NET, C++, etc.), Not decided&lt;/td&gt;&lt;td&gt;✓ 8 GB memory, 256 GB SSD, x64 or Arm. Memory needed: 4 GB (official minimum for Visual Studio 2026). Memory: 8 GB or more. Memory headroom: 4 GB. SSD: 256 GB or more (114 GB from Windows 11’s 64 GB minimum plus the tool’s official free space). CPU: works on either x64 or Arm. Visual Studio on Arm64 supports Windows 11 only (.NET desktop, C++ desktop, ASP.NET and web, and others are supported). Visual Studio typically needs 20–50 GB. Installing every feature takes up to 210 GB, which needs a 512 GB SSD. Visual Studio recommends a quad-core or better CPU. Visual Studio recommends 16 GB (this check uses the minimum). Space for your own files, Docker images and what’s inside WSL isn’t calculated. Pick one kind of development. Each official RAM figure is given per app and no page gives a combined figure, so running several together isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-28-programming-windows/?windows-dev-spec-calc-dev=vs&amp;amp;windows-dev-spec-calc-arch=any#windows-dev-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Visual Studio (.NET, C++, etc.), Arm (Snapdragon)&lt;/td&gt;&lt;td&gt;✓ 8 GB memory, 256 GB SSD, Arm OK. Memory needed: 4 GB (official minimum for Visual Studio 2026). Memory: 8 GB or more. Memory headroom: 4 GB. SSD: 256 GB or more (114 GB from Windows 11’s 64 GB minimum plus the tool’s official free space). CPU: works on either x64 or Arm. Visual Studio on Arm64 supports Windows 11 only (.NET desktop, C++ desktop, ASP.NET and web, and others are supported). Visual Studio typically needs 20–50 GB. Installing every feature takes up to 210 GB, which needs a 512 GB SSD. Visual Studio recommends a quad-core or better CPU. Visual Studio recommends 16 GB (this check uses the minimum). Space for your own files, Docker images and what’s inside WSL isn’t calculated. Pick one kind of development. Each official RAM figure is given per app and no page gives a combined figure, so running several together isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-28-programming-windows/?windows-dev-spec-calc-dev=vs&amp;amp;windows-dev-spec-calc-arch=arm#windows-dev-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Visual Studio (Python, data science, etc.), Not decided&lt;/td&gt;&lt;td&gt;✓ 8 GB memory, 256 GB SSD, x64. Memory needed: 4 GB (official minimum for Visual Studio 2026). Memory: 8 GB or more. Memory headroom: 4 GB. SSD: 256 GB or more (114 GB from Windows 11’s 64 GB minimum plus the tool’s official free space). CPU: x64 (Intel or AMD) required. On Arm64, Visual Studio doesn’t support workloads such as Python development, data science and Azure (except the container development tools). Visual Studio typically needs 20–50 GB. Installing every feature takes up to 210 GB, which needs a 512 GB SSD. Visual Studio recommends a quad-core or better CPU. Visual Studio recommends 16 GB (this check uses the minimum). Space for your own files, Docker images and what’s inside WSL isn’t calculated. Pick one kind of development. Each official RAM figure is given per app and no page gives a combined figure, so running several together isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-28-programming-windows/?windows-dev-spec-calc-dev=vs_x64&amp;amp;windows-dev-spec-calc-arch=any#windows-dev-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Visual Studio (Python, data science, etc.), Arm (Snapdragon)&lt;/td&gt;&lt;td&gt;✕ Officially not supported on Windows on Arm. Memory needed: 4 GB (official minimum for Visual Studio 2026). On Arm64, Visual Studio doesn’t support workloads such as Python development, data science and Azure (except the container development tools). Switch the CPU type to x64 (Intel or AMD)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-28-programming-windows/?windows-dev-spec-calc-dev=vs_x64&amp;amp;windows-dev-spec-calc-arch=arm#windows-dev-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android (no emulator), Not decided&lt;/td&gt;&lt;td&gt;△ 8 GB memory (borderline), 256 GB SSD, x64. Memory needed: 8 GB (official minimum for Android Studio). Memory: 8 GB or more. Memory is exactly the official minimum with nothing to spare (borderline). SSD: 256 GB or more (72 GB from Windows 11’s 64 GB minimum plus the tool’s official free space). CPU: x64 (Intel or AMD) required. Android Studio officially says Windows machines with Arm CPUs aren’t currently supported. Android Studio says Intel Core N-series and U-series processors aren’t recommended due to insufficient performance. Space for your own files, Docker images and what’s inside WSL isn’t calculated. Pick one kind of development. Each official RAM figure is given per app and no page gives a combined figure, so running several together isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-28-programming-windows/?windows-dev-spec-calc-dev=android&amp;amp;windows-dev-spec-calc-arch=any#windows-dev-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android (no emulator), Arm (Snapdragon)&lt;/td&gt;&lt;td&gt;✕ Officially not supported on Windows on Arm. Memory needed: 8 GB (official minimum for Android Studio). Android Studio officially says Windows machines with Arm CPUs aren’t currently supported. Switch the CPU type to x64 (Intel or AMD)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-28-programming-windows/?windows-dev-spec-calc-dev=android&amp;amp;windows-dev-spec-calc-arch=arm#windows-dev-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android (with emulator), Not decided&lt;/td&gt;&lt;td&gt;△ 16 GB memory (borderline), 256 GB SSD, x64. Memory needed: 16 GB (official minimum for Android Studio). Memory: 16 GB or more. Memory is exactly the official minimum with nothing to spare (borderline). SSD: 256 GB or more (80 GB from Windows 11’s 64 GB minimum plus the tool’s official free space). CPU: x64 (Intel or AMD) required. Android Studio officially says Windows machines with Arm CPUs aren’t currently supported. Android Studio says Intel Core N-series and U-series processors aren’t recommended due to insufficient performance. Android Studio recommends 32 GB (this check uses the minimum). With the emulator, the official minimum GPU is one with 4 GB of VRAM. Running several virtual devices (AVDs) at once takes about 4 GB of memory each, and each extra AVD can take up to 6 GB of storage. Space for your own files, Docker images and what’s inside WSL isn’t calculated. Pick one kind of development. Each official RAM figure is given per app and no page gives a combined figure, so running several together isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-28-programming-windows/?windows-dev-spec-calc-dev=android_emu&amp;amp;windows-dev-spec-calc-arch=any#windows-dev-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android (with emulator), x64 (Intel / AMD)&lt;/td&gt;&lt;td&gt;△ 16 GB memory (borderline), 256 GB SSD, x64. Memory needed: 16 GB (official minimum for Android Studio). Memory: 16 GB or more. Memory is exactly the official minimum with nothing to spare (borderline). SSD: 256 GB or more (80 GB from Windows 11’s 64 GB minimum plus the tool’s official free space). CPU: x64 (Intel or AMD) required. Android Studio officially says Windows machines with Arm CPUs aren’t currently supported. Android Studio says Intel Core N-series and U-series processors aren’t recommended due to insufficient performance. Android Studio recommends 32 GB (this check uses the minimum). With the emulator, the official minimum GPU is one with 4 GB of VRAM. Running several virtual devices (AVDs) at once takes about 4 GB of memory each, and each extra AVD can take up to 6 GB of storage. Space for your own files, Docker images and what’s inside WSL isn’t calculated. Pick one kind of development. Each official RAM figure is given per app and no page gives a combined figure, so running several together isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-28-programming-windows/?windows-dev-spec-calc-dev=android_emu&amp;amp;windows-dev-spec-calc-arch=x64#windows-dev-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android (with emulator), Arm (Snapdragon)&lt;/td&gt;&lt;td&gt;✕ Officially not supported on Windows on Arm. Memory needed: 16 GB (official minimum for Android Studio). Android Studio officially says Windows machines with Arm CPUs aren’t currently supported. Switch the CPU type to x64 (Intel or AMD)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-28-programming-windows/?windows-dev-spec-calc-dev=android_emu&amp;amp;windows-dev-spec-calc-arch=arm#windows-dev-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>windows</category></item><item><title>Best MacBook for Programming: Smallest Config by Use</title><link>https://aulvem.com/blog/2021-03-27-programming-macbook/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-27-programming-macbook/</guid><description>The smallest configuration that meets the official minimums is 8 GB of memory and 256 GB of storage. That holds with no Android emulator and up to 1 display. It&apos;s borderline against Android Studio&apos;s 8 GB minimum. With up to 2 displays, an M5 configuration with 16 GB of memory and 512 GB of storage meets the official minimums, though it&apos;s borderline with the emulator. With 3 displays you need the M5 Pro chip, and with 4 displays the M5 Max. Worked out from Docker&apos;s and Android Studio&apos;s official minimum RAM and Apple&apos;s specs as of October 2026.</description><pubDate>Sat, 27 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;For the October 2026 lineup, the smallest configuration that meets the official minimums is 8 GB of memory and 256 GB of storage. That holds with no Android emulator and up to 1 display. It’s borderline against Android Studio’s 8 GB minimum.&lt;/p&gt;
&lt;p&gt;With up to 2 displays, an M5 configuration with 16 GB of memory and 512 GB of storage meets the official minimums, though it’s borderline with the emulator. With 3 displays you need the M5 Pro chip, and with 4 displays the M5 Max.&lt;/p&gt;
&lt;p&gt;This covers the MacBooks Apple sells now, checked as of October 2026, without hands-on testing.&lt;/p&gt;
&lt;h2 id=&quot;the-smallest-config-depends-on-what-you-develop-and-how-many-displays-you-use&quot;&gt;The smallest config depends on what you develop and how many displays you use&lt;/h2&gt;
&lt;p&gt;The table shows the first config, from Neo to Pro, that meets the official minimum RAM.&lt;/p&gt;








































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;External displays&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Web and Docker (minimum 4 GB)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Android Studio only (minimum 8 GB)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;With the Android emulator (minimum 16 GB)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;iOS (Xcode)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Up to 1 display&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;MacBook Neo, 8 GB / 256 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;MacBook Neo, 8 GB / 256 GB, borderline&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch MacBook Air (M5), 16 GB / 512 GB, borderline&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;MacBook Neo, 8 GB / 256 GB, memory not judged&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch MacBook Air (M5), 16 GB / 512 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch MacBook Air (M5), 16 GB / 512 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch MacBook Air (M5), 16 GB / 512 GB, borderline&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13-inch MacBook Air (M5), 16 GB / 512 GB, memory not judged&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Pro), 24 GB / 1 TB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Pro), 24 GB / 1 TB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Pro), 24 GB / 1 TB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Pro), 24 GB / 1 TB, memory not judged&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Max), 36 GB / 2 TB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Max), 36 GB / 2 TB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Max), 36 GB / 2 TB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14-inch MacBook Pro (M5 Max), 36 GB / 2 TB, memory not judged&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;“Borderline” means the spare RAM (the configuration’s RAM minus the minimum) is under 10% of the minimum.&lt;/p&gt;
&lt;section id=&quot;macbook-dev-config-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;macbook-dev-config-calc-title&quot;&gt; &lt;h3 id=&quot;macbook-dev-config-calc-title&quot;&gt;Minimum MacBook configuration for your development work&lt;/h3&gt; &lt;p&gt;Pick your kind of development, how many external displays you use and how much weight you&amp;#39;ll carry. It rounds Docker&amp;#39;s and Android Studio&amp;#39;s official minimum RAM up to Apple&amp;#39;s memory tiers and shows the smallest configuration that fits, plus one MacBook you can buy that fits.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;air13_16_512&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch MacBook Air (M5), 16GB/512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/714mf1PUL4L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch MacBook Air (M5), 16GB/512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1T11D6?q=13-inch+MacBook+Air+%28M5%29%2C+16GB%2F512GB&amp;amp;us=B0GR1J6T45&amp;amp;l=en&quot; aria-label=&quot;View 13-inch MacBook Air (M5), 16GB/512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;air13_24_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch MacBook Air (M5), 24GB/1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71igu9e9hFL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch MacBook Air (M5), 24GB/1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR11MSHY?q=13-inch+MacBook+Air+%28M5%29%2C+24GB%2F1TB&amp;amp;us=B0GR11MSHY&amp;amp;l=en&quot; aria-label=&quot;View 13-inch MacBook Air (M5), 24GB/1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;air15_16_512&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 15-inch MacBook Air (M5), 16GB/512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71f3rEW30BL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;15-inch MacBook Air (M5), 16GB/512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1GC1D6?q=15-inch+MacBook+Air+%28M5%29%2C+16GB%2F512GB&amp;amp;us=B0GR1GC1D6&amp;amp;l=en&quot; aria-label=&quot;View 15-inch MacBook Air (M5), 16GB/512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;air15_16_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 15-inch MacBook Air (M5), 16GB/1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71N5EbSaQqL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;15-inch MacBook Air (M5), 16GB/1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1BJ72L?q=15-inch+MacBook+Air+%28M5%29%2C+16GB%2F1TB&amp;amp;us=B0GR1BJ72L&amp;amp;l=en&quot; aria-label=&quot;View 15-inch MacBook Air (M5), 16GB/1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;air15_24_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 15-inch MacBook Air (M5), 24GB/1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71N5EbSaQqL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;15-inch MacBook Air (M5), 24GB/1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1RWSMF?q=15-inch+MacBook+Air+%28M5%29%2C+24GB%2F1TB&amp;amp;us=B0GR1RWSMF&amp;amp;l=en&quot; aria-label=&quot;View 15-inch MacBook Air (M5), 24GB/1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;pro14_m5_16_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 14-inch MacBook Pro (M5), 16GB/1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/6112T6g2P-L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;14-inch MacBook Pro (M5), 16GB/1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FWD623D1?q=14-inch+MacBook+Pro+%28M5%29%2C+16GB%2F1TB&amp;amp;us=B0FWD623D1&amp;amp;l=en&quot; aria-label=&quot;View 14-inch MacBook Pro (M5), 16GB/1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;pro14_m5pro_24_1tb&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 14-inch MacBook Pro (M5 Pro), 24GB/1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61yFkQA+HFL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;14-inch MacBook Pro (M5 Pro), 24GB/1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1JK9W3?q=14-inch+MacBook+Pro+%28M5+Pro%29%2C+24GB%2F1TB&amp;amp;us=B0GR1JK9W3&amp;amp;l=en&quot; aria-label=&quot;View 14-inch MacBook Pro (M5 Pro), 24GB/1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;neo_8_256&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MacBook Neo, 8GB/256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61MxIxzYvUL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MacBook Neo, 8GB/256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR6KJ72L?q=MacBook+Neo%2C+8GB%2F256GB&amp;amp;us=B0GR6KJ72L&amp;amp;l=en&quot; aria-label=&quot;View MacBook Neo, 8GB/256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;neo_8_512&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MacBook Neo, 8GB/512GB with Touch ID&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/619PNoEsnSL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MacBook Neo, 8GB/512GB with Touch ID&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR6M7Z8Y?q=MacBook+Neo%2C+8GB%2F512GB+with+Touch+ID&amp;amp;us=B0GR6JMY9W&amp;amp;l=en&quot; aria-label=&quot;View MacBook Neo, 8GB/512GB with Touch ID on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;models&quot;:{&quot;neo&quot;:{&quot;ja&quot;:&quot;MacBook Neo&quot;,&quot;en&quot;:&quot;MacBook Neo&quot;,&quot;chip&quot;:&quot;A18 Pro&quot;,&quot;tiers&quot;:[8],&quot;sto&quot;:256,&quot;disp&quot;:1,&quot;w&quot;:1.23},&quot;air13&quot;:{&quot;ja&quot;:&quot;MacBook Air 13インチ（M5）&quot;,&quot;en&quot;:&quot;13-inch MacBook Air (M5)&quot;,&quot;chip&quot;:&quot;M5&quot;,&quot;tiers&quot;:[16,24,32],&quot;sto&quot;:512,&quot;disp&quot;:2,&quot;w&quot;:1.23},&quot;air15&quot;:{&quot;ja&quot;:&quot;MacBook Air 15インチ（M5）&quot;,&quot;en&quot;:&quot;15-inch MacBook Air (M5)&quot;,&quot;chip&quot;:&quot;M5&quot;,&quot;tiers&quot;:[16,24,32],&quot;sto&quot;:512,&quot;disp&quot;:2,&quot;w&quot;:1.51},&quot;pro14_m5&quot;:{&quot;ja&quot;:&quot;MacBook Pro 14インチ（M5）&quot;,&quot;en&quot;:&quot;14-inch MacBook Pro (M5)&quot;,&quot;chip&quot;:&quot;M5&quot;,&quot;tiers&quot;:[16,24,32],&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.55},&quot;pro14_m5pro&quot;:{&quot;ja&quot;:&quot;MacBook Pro 14インチ（M5 Pro）&quot;,&quot;en&quot;:&quot;14-inch MacBook Pro (M5 Pro)&quot;,&quot;chip&quot;:&quot;M5 Pro&quot;,&quot;tiers&quot;:[24,48,64],&quot;sto&quot;:1024,&quot;disp&quot;:3,&quot;w&quot;:1.6},&quot;pro16_m5pro&quot;:{&quot;ja&quot;:&quot;MacBook Pro 16インチ（M5 Pro）&quot;,&quot;en&quot;:&quot;16-inch MacBook Pro (M5 Pro)&quot;,&quot;chip&quot;:&quot;M5 Pro&quot;,&quot;tiers&quot;:[24,48,64],&quot;sto&quot;:1024,&quot;disp&quot;:3,&quot;w&quot;:2.14},&quot;pro14_m5max&quot;:{&quot;ja&quot;:&quot;MacBook Pro 14インチ（M5 Max）&quot;,&quot;en&quot;:&quot;14-inch MacBook Pro (M5 Max)&quot;,&quot;chip&quot;:&quot;M5 Max&quot;,&quot;tiers&quot;:[36],&quot;sto&quot;:2048,&quot;disp&quot;:4,&quot;w&quot;:1.62},&quot;pro16_m5max&quot;:{&quot;ja&quot;:&quot;MacBook Pro 16インチ（M5 Max）&quot;,&quot;en&quot;:&quot;16-inch MacBook Pro (M5 Max)&quot;,&quot;chip&quot;:&quot;M5 Max&quot;,&quot;tiers&quot;:[36],&quot;sto&quot;:2048,&quot;disp&quot;:4,&quot;w&quot;:2.15}},&quot;order&quot;:[&quot;neo&quot;,&quot;air13&quot;,&quot;air15&quot;,&quot;pro14_m5&quot;,&quot;pro14_m5pro&quot;,&quot;pro16_m5pro&quot;,&quot;pro14_m5max&quot;,&quot;pro16_m5max&quot;],&quot;req&quot;:{&quot;web_docker&quot;:{&quot;mem&quot;:4,&quot;disk&quot;:null},&quot;android&quot;:{&quot;mem&quot;:8,&quot;disk&quot;:8},&quot;android_emu&quot;:{&quot;mem&quot;:16,&quot;disk&quot;:16},&quot;ios&quot;:{&quot;mem&quot;:null,&quot;disk&quot;:null}},&quot;tightRatio&quot;:0.1,&quot;devs&quot;:[&quot;web_docker&quot;,&quot;android&quot;,&quot;android_emu&quot;,&quot;ios&quot;],&quot;mons&quot;:[0,1,2,3,4],&quot;weights&quot;:{&quot;light&quot;:1.3,&quot;mid&quot;:1.7,&quot;any&quot;:99},&quot;rec&quot;:{&quot;as&quot;:32,&quot;asDisk&quot;:32,&quot;avdRam&quot;:4,&quot;avdDisk&quot;:6},&quot;neoPorts&quot;:{&quot;usb3&quot;:1,&quot;usb2&quot;:1},&quot;products&quot;:{&quot;air13_16_512&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;mem&quot;:16,&quot;sto&quot;:512,&quot;disp&quot;:2,&quot;w&quot;:1.23},&quot;air13_16_1tb&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;mem&quot;:16,&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.23},&quot;air13_24_1tb&quot;:{&quot;fam&quot;:&quot;air13&quot;,&quot;mem&quot;:24,&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.23},&quot;air15_16_512&quot;:{&quot;fam&quot;:&quot;air15&quot;,&quot;mem&quot;:16,&quot;sto&quot;:512,&quot;disp&quot;:2,&quot;w&quot;:1.51},&quot;air15_16_1tb&quot;:{&quot;fam&quot;:&quot;air15&quot;,&quot;mem&quot;:16,&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.51},&quot;air15_24_1tb&quot;:{&quot;fam&quot;:&quot;air15&quot;,&quot;mem&quot;:24,&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.51},&quot;pro14_m5_16_1tb&quot;:{&quot;fam&quot;:&quot;pro14_m5&quot;,&quot;mem&quot;:16,&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.55},&quot;pro14_m5_24_1tb&quot;:{&quot;fam&quot;:&quot;pro14_m5&quot;,&quot;mem&quot;:24,&quot;sto&quot;:1024,&quot;disp&quot;:2,&quot;w&quot;:1.55},&quot;pro14_m5pro_24_1tb&quot;:{&quot;fam&quot;:&quot;pro14_m5pro&quot;,&quot;mem&quot;:24,&quot;sto&quot;:1024,&quot;disp&quot;:3,&quot;w&quot;:1.6},&quot;neo_8_256&quot;:{&quot;fam&quot;:&quot;neo&quot;,&quot;mem&quot;:8,&quot;sto&quot;:256,&quot;disp&quot;:1,&quot;w&quot;:1.23},&quot;neo_8_512&quot;:{&quot;fam&quot;:&quot;neo&quot;,&quot;mem&quot;:8,&quot;sto&quot;:512,&quot;disp&quot;:1,&quot;w&quot;:1.23}},&quot;slotIds&quot;:{&quot;neo_cond&quot;:[&quot;neo_8_256&quot;,&quot;neo_8_512&quot;],&quot;air13_emu&quot;:[&quot;air13_16_512&quot;,&quot;air13_16_1tb&quot;,&quot;air13_24_1tb&quot;],&quot;air15_emu&quot;:[&quot;air15_16_512&quot;,&quot;air15_16_1tb&quot;,&quot;air15_24_1tb&quot;],&quot;pro_3disp&quot;:[&quot;pro14_m5pro_24_1tb&quot;]},&quot;buy&quot;:{&quot;air13_16_512&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Air 13インチ M5（16GB / 512GB）&quot;,&quot;en&quot;:&quot;13-inch MacBook Air (M5), 16GB/512GB&quot;,&quot;jp&quot;:&quot;B0GR1T11D6&quot;,&quot;us&quot;:&quot;B0GR1J6T45&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GR1T11D6&quot;,&quot;asinUS&quot;:&quot;B0GR1J6T45&quot;,&quot;title&quot;:&quot;MacBook Air 13インチ M5（16GB / 512GB）&quot;,&quot;searchQuery&quot;:&quot;MacBook Air 13インチ M5（16GB / 512GB）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71eX66ytH+L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995656787&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR1T11D6&quot;,&quot;asinUS&quot;:&quot;B0GR1J6T45&quot;,&quot;title&quot;:&quot;13-inch MacBook Air (M5), 16GB/512GB&quot;,&quot;searchQuery&quot;:&quot;13-inch MacBook Air (M5), 16GB/512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/714mf1PUL4L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:2},&quot;air13_24_1tb&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Air 13インチ M5（24GB / 1TB）&quot;,&quot;en&quot;:&quot;13-inch MacBook Air (M5), 24GB/1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GR11MSHY&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR11MSHY&quot;,&quot;asinUS&quot;:&quot;B0GR11MSHY&quot;,&quot;title&quot;:&quot;13-inch MacBook Air (M5), 24GB/1TB&quot;,&quot;searchQuery&quot;:&quot;13-inch MacBook Air (M5), 24GB/1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71igu9e9hFL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:4},&quot;air15_16_512&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Air 15インチ M5（16GB / 512GB）&quot;,&quot;en&quot;:&quot;15-inch MacBook Air (M5), 16GB/512GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GR1GC1D6&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR1GC1D6&quot;,&quot;asinUS&quot;:&quot;B0GR1GC1D6&quot;,&quot;title&quot;:&quot;15-inch MacBook Air (M5), 16GB/512GB&quot;,&quot;searchQuery&quot;:&quot;15-inch MacBook Air (M5), 16GB/512GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71f3rEW30BL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:3},&quot;air15_16_1tb&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Air 15インチ M5（16GB / 1TB）&quot;,&quot;en&quot;:&quot;15-inch MacBook Air (M5), 16GB/1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GR1BJ72L&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR1BJ72L&quot;,&quot;asinUS&quot;:&quot;B0GR1BJ72L&quot;,&quot;title&quot;:&quot;15-inch MacBook Air (M5), 16GB/1TB&quot;,&quot;searchQuery&quot;:&quot;15-inch MacBook Air (M5), 16GB/1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71N5EbSaQqL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:5},&quot;air15_24_1tb&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Air 15インチ M5（24GB / 1TB）&quot;,&quot;en&quot;:&quot;15-inch MacBook Air (M5), 24GB/1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GR1RWSMF&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR1RWSMF&quot;,&quot;asinUS&quot;:&quot;B0GR1RWSMF&quot;,&quot;title&quot;:&quot;15-inch MacBook Air (M5), 24GB/1TB&quot;,&quot;searchQuery&quot;:&quot;15-inch MacBook Air (M5), 24GB/1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71N5EbSaQqL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:6},&quot;pro14_m5_16_1tb&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Pro 14インチ M5（16GB / 1TB）&quot;,&quot;en&quot;:&quot;14-inch MacBook Pro (M5), 16GB/1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FWD623D1&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FWD623D1&quot;,&quot;asinUS&quot;:&quot;B0FWD623D1&quot;,&quot;title&quot;:&quot;14-inch MacBook Pro (M5), 16GB/1TB&quot;,&quot;searchQuery&quot;:&quot;14-inch MacBook Pro (M5), 16GB/1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/6112T6g2P-L._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:7},&quot;pro14_m5pro_24_1tb&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Pro 14インチ M5 Pro（24GB / 1TB）&quot;,&quot;en&quot;:&quot;14-inch MacBook Pro (M5 Pro), 24GB/1TB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GR1JK9W3&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR1JK9W3&quot;,&quot;asinUS&quot;:&quot;B0GR1JK9W3&quot;,&quot;title&quot;:&quot;14-inch MacBook Pro (M5 Pro), 24GB/1TB&quot;,&quot;searchQuery&quot;:&quot;14-inch MacBook Pro (M5 Pro), 24GB/1TB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61yFkQA+HFL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:8},&quot;neo_8_256&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Neo（A18 Pro・8GB / 256GB）&quot;,&quot;en&quot;:&quot;MacBook Neo, 8GB/256GB&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GR6KJ72L&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR6KJ72L&quot;,&quot;asinUS&quot;:&quot;B0GR6KJ72L&quot;,&quot;title&quot;:&quot;MacBook Neo, 8GB/256GB&quot;,&quot;searchQuery&quot;:&quot;MacBook Neo, 8GB/256GB&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61MxIxzYvUL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;neo_8_512&quot;:{&quot;type&quot;:&quot;laptop&quot;,&quot;ja&quot;:&quot;MacBook Neo（A18 Pro・8GB / 512GB・Touch ID）&quot;,&quot;en&quot;:&quot;MacBook Neo, 8GB/512GB with Touch ID&quot;,&quot;jp&quot;:&quot;B0GR6M7Z8Y&quot;,&quot;us&quot;:&quot;B0GR6JMY9W&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GR6M7Z8Y&quot;,&quot;asinUS&quot;:&quot;B0GR6JMY9W&quot;,&quot;title&quot;:&quot;MacBook Neo（A18 Pro・8GB / 512GB・Touch ID）&quot;,&quot;searchQuery&quot;:&quot;MacBook Neo（A18 Pro・8GB / 512GB・Touch ID）&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61S0IGbMu1L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549995664669&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR6M7Z8Y&quot;,&quot;asinUS&quot;:&quot;B0GR6JMY9W&quot;,&quot;title&quot;:&quot;MacBook Neo, 8GB/512GB with Touch ID&quot;,&quot;searchQuery&quot;:&quot;MacBook Neo, 8GB/512GB with Touch ID&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/619PNoEsnSL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:0,&quot;rank_us&quot;:1}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;laptop&quot;:&quot;neo_8_512&quot;},&quot;en&quot;:{&quot;laptop&quot;:&quot;neo_8_256&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;macbook-dev-config-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 値（公式の最小メモリ・Apple の構成の段・外部ディスプレイの台数・重さ）は calc.mjs が data.json の facts から M に入れて渡す。
//
// 必要なメモリ = 開発内容の公式の最小（Docker Desktop・Android Studio）。Xcode は公式の数字が無いので null（判定しない）。
// 最小構成 = 必要なメモリ以上で、その機種のメモリの段のうちいちばん小さい段（切り上げ）。
// 余裕 = 段 − 必要なメモリ。必要なメモリに対して tightRatio 未満なら「ぎりぎり」。

// 段でしか選べない値を、必要な値以上のいちばん小さい段に切り上げる。足りる段が無ければ null
function snapTier(x, tiers) {
  const t = tiers.find((s) =&gt; s &gt;= x - 1e-9);
  return t == null ? null : t;
}

// 1機種が条件を満たすか。req = { mem: GB | null }、mon = 外部ディスプレイの台数、wmax = 重さの上限（kg。Infinity で気にしない）
function fitModel(m, req, mon, wmax, tightRatio) {
  const dispOk = m.disp &gt;= mon;
  const weightOk = m.w &lt;= wmax + 1e-9;
  const judged = req.mem != null;
  const mem = judged ? snapTier(req.mem, m.tiers) : m.tiers[0];
  const memOk = mem != null;
  const margin = judged &amp;&amp; memOk ? mem - req.mem : null;
  const tight = margin != null &amp;&amp; margin / req.mem &lt; tightRatio;
  return { ok: dispOk &amp;&amp; weightOk &amp;&amp; memOk, dispOk, weightOk, memOk, judged, mem, margin, tight };
}

// 条件を満たす機種（M.order の並び: Neo → Air → Pro）。first = 並びで最初の機種（記事の「最小構成」）
function minimumConfig(M, dev, mon, wmax) {
  const req = M.req[dev];
  const all = M.order.map((id) =&gt; ({ id, ...fitModel(M.models[id], req, mon, wmax, M.tightRatio) }));
  const ok = all.filter((r) =&gt; r.ok);
  return { req, all, ok, first: ok[0] || null };
}

// 商品（products.json の構成）が条件を満たすか。p = { fam, mem, disp, w }
function productFits(p, req, mon, wmax) {
  return p.disp &gt;= mon &amp;&amp; p.w &lt;= wmax + 1e-9 &amp;&amp; (req.mem == null || p.mem &gt;= req.mem - 1e-9);
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（開発内容・外部ディスプレイの台数・持ち運び）。機種は選ばせず、条件を満たす最小構成と、買える商品を1つ出す。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    dev: &quot;開発内容&quot;, mon: &quot;外部ディスプレイ&quot;, w: &quot;持ち運び&quot;,
    web_docker: &quot;Web・Docker&quot;, android: &quot;Android（エミュレーターなし）&quot;, android_emu: &quot;Android（エミュレーターあり）&quot;, ios: &quot;iOS（Xcode）&quot;,
    monL: (n) =&gt; (n === 0 ? &quot;なし&quot; : `${n}台`),
    light: &quot;1.3kg以下&quot;, mid: &quot;1.7kg以下&quot;, any: &quot;気にしない&quot;,
    need: (x, what) =&gt; `必要なメモリ: ${x}GB（${what}の公式の最小）`,
    what: { web_docker: &quot;Docker Desktop&quot;, android: &quot;Android Studio&quot;, android_emu: &quot;Android Studio とエミュレーター&quot; },
    noXcode: &quot;Xcode は公式のメモリの数字が無いので、メモリは判定していません。下の構成は、外部ディスプレイの台数と重さだけで選んだものです&quot;,
    multi: &quot;開発内容は1つだけ選びます。公式の最小は、それぞれのアプリを単独で使うときの数字です。Docker と Android Studio などを同時に使う場合は公式の数字が無く、判定していません&quot;,
    cfg: (name, mem, sto) =&gt; `最小構成: ${name}・メモリ ${mem}GB・ストレージ ${sto}`,
    tight: &quot;メモリは公式の最小ちょうどで、余裕がありません（ぎりぎり）&quot;,
    margin: (x) =&gt; `メモリの余裕: ${x}GB`,
    disp: (name, n) =&gt; `${name}の外部ディスプレイは最大${n}台です`,
    neoCond: &quot;MacBook Neo が公式の最小を満たすのは、Android エミュレーターを使わず、外部ディスプレイが1台までで、アプリを1つずつ使うときだけです&quot;,
    neoIos: &quot;Neo のメモリ 8GB で Xcode が足りるかは、公式の数字が無いので判定していません。Android エミュレーターも使うなら、公式の最小 16GB を満たしません&quot;,
    neoPort: &quot;Neo で映像を出せるのは USB 3 のポート1つだけで、外部ディスプレイをつなぐと残りは USB 2 のポート1つになります&quot;,
    emuNote: (rec) =&gt; `Android Studio の推奨は ${rec}GB です（この判定は最小で行っています）`,
    disk: (a, b) =&gt; `ストレージは Android Studio の公式の空き容量（${a}GB、エミュレーターも使うなら ${b}GB）より大きい構成です。macOS や自分のファイルの分は計算していません`,
    also: (list) =&gt; `ほかに条件を満たす機種: ${list}`,
    none: &quot;この条件をすべて満たす機種はありません&quot;,
    noneW: (n) =&gt; `外部ディスプレイ${n}台に対応する機種は、この重さの範囲にありません。持ち運びを「気にしない」にすると出ます`,
    vOk: (name) =&gt; `○ ${name}で公式の最小を満たします`, vTight: (name) =&gt; `△ ${name}でぎりぎり満たします`, vIos: (name) =&gt; `△ ${name}（メモリは判定なし）`, vNg: &quot;✕ 条件に合う機種がありません&quot;,
    memL: (x) =&gt; `構成 ${x}GB`, needL: (x) =&gt; `必要 ${x}GB`,
    note: &quot;結果は Apple の仕様ページと、Docker・Android Studio の公式の最小要件（2026年10月の確認）から出しています。速さや快適さは実機で試しておらず、判定していません。メモリは Apple が用意している段に切り上げています。&quot;,
  },
  en: {
    dev: &quot;Development&quot;, mon: &quot;External displays&quot;, w: &quot;Portability&quot;,
    web_docker: &quot;Web / Docker&quot;, android: &quot;Android (no emulator)&quot;, android_emu: &quot;Android (with emulator)&quot;, ios: &quot;iOS (Xcode)&quot;,
    monL: (n) =&gt; (n === 0 ? &quot;None&quot; : String(n)),
    light: &quot;1.3 kg or less&quot;, mid: &quot;1.7 kg or less&quot;, any: &quot;Doesn&apos;t matter&quot;,
    need: (x, what) =&gt; `Memory needed: ${x} GB (official minimum for ${what})`,
    what: { web_docker: &quot;Docker Desktop&quot;, android: &quot;Android Studio&quot;, android_emu: &quot;Android Studio with the emulator&quot; },
    noXcode: &quot;Apple lists no RAM figure for Xcode, so memory isn&apos;t judged. The configuration below is chosen only by display count and weight&quot;,
    multi: &quot;Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn&apos;t judged&quot;,
    cfg: (name, mem, sto) =&gt; `Minimum configuration: ${name}, ${mem} GB memory, ${sto} storage`,
    tight: &quot;Memory is exactly the official minimum with nothing to spare (borderline)&quot;,
    margin: (x) =&gt; `Memory headroom: ${x} GB`,
    disp: (name, n) =&gt; `The ${name} drives up to ${n} external display${n === 1 ? &quot;&quot; : &quot;s&quot;}`,
    neoCond: &quot;The MacBook Neo meets the official minimums only if you skip the Android emulator, use at most one external display, and run one of these apps at a time&quot;,
    neoIos: &quot;Whether the Neo&apos;s 8 GB is enough for Xcode isn&apos;t judged, since there&apos;s no official figure. If you also run the Android emulator, it falls short of the official 16 GB minimum&quot;,
    neoPort: &quot;The Neo outputs video only from its single USB 3 port, so with a display connected you&apos;re left with one USB 2 port&quot;,
    emuNote: (rec) =&gt; `Android Studio recommends ${rec} GB (this check uses the minimum)`,
    disk: (a, b) =&gt; `Storage is above Android Studio&apos;s official free-space figures (${a} GB, ${b} GB with the emulator). Space for macOS and your own files isn&apos;t calculated`,
    also: (list) =&gt; `Other models that fit: ${list}`,
    none: &quot;No model meets all of these conditions&quot;,
    noneW: (n) =&gt; `No model in this weight range supports ${n} external displays. Set portability to &quot;Doesn&apos;t matter&quot; to see one`,
    vOk: (name) =&gt; `✓ The ${name} meets the official minimums`, vTight: (name) =&gt; `△ The ${name} just meets them`, vIos: (name) =&gt; `△ ${name} (memory not judged)`, vNg: &quot;✕ No model fits&quot;,
    memL: (x) =&gt; `Has ${x} GB`, needL: (x) =&gt; `Needs ${x} GB`,
    note: &quot;Results come from Apple&apos;s spec pages and the official minimum requirements for Docker and Android Studio (checked October 2026). Speed and comfort weren&apos;t tested on real hardware and aren&apos;t judged. Memory is rounded up to the tiers Apple offers.&quot;,
  },
};

const stoL_ = (gb, lang) =&gt; { const sp = lang === &quot;en&quot; ? &quot; &quot; : &quot;&quot;; return gb &gt;= 1024 ? `${gb / 1024}${sp}TB` : `${gb}${sp}GB`; };

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;dev&quot;, type: &quot;select&quot;, label: t.dev, value: &quot;web_docker&quot;, options: M.devs.map((x) =&gt; ({ value: x, label: t[x] })) },
    { name: &quot;mon&quot;, type: &quot;select&quot;, label: t.mon, value: &quot;1&quot;, options: M.mons.map((n) =&gt; ({ value: String(n), label: t.monL(n) })) },
    { name: &quot;w&quot;, type: &quot;select&quot;, label: t.w, value: &quot;any&quot;, options: [&quot;light&quot;, &quot;mid&quot;, &quot;any&quot;].map((x) =&gt; ({ value: x, label: t[x], short: x === &quot;any&quot; ? (lang === &quot;ja&quot; ? &quot;不問&quot; : &quot;Any&quot;) : undefined })) }, // 札の短い値（2026-10-15 1画面に収める）
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const mon = Number(v.mon);
  if (!M.devs.includes(v.dev) || !M.mons.includes(mon) || !(v.w in M.weights)) return { status: &quot;error&quot;, lines: [] };
  const wmax = M.weights[v.w];
  const r = minimumConfig(M, v.dev, mon, wmax);
  const lines = [];
  if (r.req.mem != null) lines.push(t.need(r.req.mem, t.what[v.dev]));
  else lines.push(t.noXcode);
  if (!r.first) {
    const anyW = minimumConfig(M, v.dev, mon, Infinity).first;
    lines.push(anyW ? t.noneW(mon) : t.none);
    return { status: &quot;ng&quot;, verdict: t.vNg, lines, picks: [] };
  }
  const f = r.first, m = M.models[f.id], name = m[lang];
  lines.push(t.cfg(name, f.mem, stoL_(m.sto, lang)));
  if (f.tight) lines.push(t.tight);
  else if (f.margin != null) lines.push(t.margin(f.margin));
  lines.push(t.disp(name, m.disp));
  if (f.id === &quot;neo&quot;) { lines.push(v.dev === &quot;ios&quot; ? t.neoIos : t.neoCond); if (mon &gt;= 1) lines.push(t.neoPort); }
  if (v.dev === &quot;android_emu&quot;) lines.push(t.emuNote(M.rec.as));
  if (v.dev === &quot;android&quot; || v.dev === &quot;android_emu&quot;) lines.push(t.disk(M.req.android.disk, M.req.android_emu.disk));
  const others = r.ok.slice(1).map((x) =&gt; M.models[x.id][lang]);
  if (others.length) lines.push(t.also(others.join(lang === &quot;ja&quot; ? &quot;、&quot; : &quot;, &quot;)));
  lines.push(t.multi);
  const status = !f.judged || f.tight ? &quot;cond&quot; : &quot;ok&quot;;
  const verdict = !f.judged ? t.vIos(name) : f.tight ? t.vTight(name) : t.vOk(name);
  // 候補: 条件（メモリ・台数・重さ）を満たす商品。lib が安い順の1位を出す
  const picks = Object.keys(M.products).filter((id) =&gt; productFits(M.products[id], r.req, mon, wmax));
  let meter;
  if (f.judged) {
    const max = Math.max(f.mem, r.req.mem) * 1.5;
    meter = { min: 0, max, value: f.mem, ok: [r.req.mem, max], unit: &quot;GB&quot;, valueLabel: t.memL(f.mem), okLabel: t.needL(r.req.mem) };
  }
  // 型 D の仕様書の行（minimumConfig の結果と、Apple の構成の値だけ）。機種は判定の文に出るので行にしない
  const ja = lang === &quot;ja&quot;, src = { web_docker: &quot;Docker&quot;, android: &quot;Google&quot;, android_emu: &quot;Google&quot;, ios: &quot;Apple&quot; }[v.dev];
  const sheet = [
    f.judged
      ? { key: ja ? &quot;メモリ&quot; : &quot;Memory&quot;, value: ja ? `${f.mem}GB` : `${f.mem} GB`, reason: ja ? `${t.what[v.dev]}の公式の最小 ${r.req.mem}GB → Apple の段 ${f.mem}GB` : `${t.what[v.dev]} minimum ${r.req.mem} GB → Apple tier ${f.mem} GB`, src, tight: f.tight }
      : { key: ja ? &quot;メモリ&quot; : &quot;Memory&quot;, value: ja ? `${f.mem}GB` : `${f.mem} GB`, reason: ja ? &quot;Xcode は公式の数字が無いので判定なし&quot; : &quot;Not judged (no official Xcode figure)&quot;, src: &quot;Apple&quot; },
    { key: ja ? &quot;ストレージ&quot; : &quot;Storage&quot;, value: stoL_(m.sto, lang), reason: ja ? &quot;この機種のいちばん小さい構成&quot; : &quot;This model&apos;s smallest configuration&quot;, src: &quot;Apple&quot; },
    { key: ja ? &quot;画面の数&quot; : &quot;Displays&quot;, value: ja ? `外部 ${m.disp}台まで` : `Up to ${m.disp} external`, reason: ja ? `つなぐのは ${mon}台` : `You connect ${mon}`, src: &quot;Apple&quot; },
  ];
  if (v.w !== &quot;any&quot;) sheet.push({ key: ja ? &quot;重さ&quot; : &quot;Weight&quot;, value: `${m.w}kg`, reason: ja ? `持ち運びの上限 ${wmax}kg` : `Carry limit ${wmax} kg`, src: &quot;Apple&quot; });
  // スマホの仕様書は2行まで（2026-10-15 1画面に収める。残りは「ほか n 行」）
  return { status, verdict, lines, picks, ...(meter ? { meter } : {}), sheet, sheetPhone: 2 };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（開発内容 × 外部ディスプレイの台数、持ち運び）
function presets() {
  const P = (dev, mon, w = &quot;any&quot;) =&gt; ({ dev, mon: String(mon), w });
  return [
    P(&quot;web_docker&quot;, 0), P(&quot;web_docker&quot;, 1), P(&quot;web_docker&quot;, 2), P(&quot;web_docker&quot;, 3),
    P(&quot;android&quot;, 1), P(&quot;android&quot;, 2),
    P(&quot;android_emu&quot;, 0), P(&quot;android_emu&quot;, 2), P(&quot;android_emu&quot;, 3), P(&quot;android_emu&quot;, 4),
    P(&quot;ios&quot;, 1), P(&quot;ios&quot;, 3),
    P(&quot;android_emu&quot;, 2, &quot;light&quot;), P(&quot;web_docker&quot;, 3, &quot;light&quot;), P(&quot;android_emu&quot;, 4, &quot;mid&quot;),
  ];
}

// カードに出す仕様（その商品の構成のうち、この計算で使った値。絞り込みの条件は出さない）
function pickSpecs(id, v, M, lang) {
  const p = M.products[id];
  if (!p) return [];
  const ja = lang === &quot;ja&quot;;
  return [
    ja ? `メモリ ${p.mem}GB・ストレージ ${stoL_(p.sto, lang)}` : `${p.mem} GB memory, ${stoL_(p.sto, lang)} storage`,
    ja ? `外部ディスプレイ 最大${p.disp}台` : `Up to ${p.disp} external display${p.disp === 1 ? &quot;&quot; : &quot;s&quot;}`,
    ja ? `重さ ${p.w.toFixed(2)}kg` : `${p.w.toFixed(2)} kg`,
  ];
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;sheet&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;is-the-macbook-neo-enough&quot;&gt;Is the MacBook Neo enough?&lt;/h2&gt;
&lt;p&gt;The MacBook Neo (8 GB) meets the official minimums only if you skip the Android emulator and use at most 1 display. For Android Studio alone it’s exactly the 8 GB minimum, so it’s borderline. Running Docker Desktop and Android Studio together isn’t assessed, since the official pages give no combined figure.&lt;/p&gt;
&lt;p&gt;The Neo has two USB-C ports, one USB 3 and one USB 2. The spec lists DisplayPort support for the USB 3 port.&lt;/p&gt;
&lt;p&gt;For iOS work, Xcode has no official RAM figure, so the Neo isn’t judged for it either.&lt;/p&gt;
&lt;h2 id=&quot;how-much-ram-and-storage-to-pick&quot;&gt;How much RAM and storage to pick&lt;/h2&gt;
&lt;p&gt;The minimum RAM is 4 GB for Docker Desktop, 8 GB for Android Studio, and 16 GB with the emulator.&lt;/p&gt;
&lt;p&gt;With the Android emulator you need at least 16 GB. The standard 16 GB on the Air and the M5 14-inch Pro is exactly that minimum, so it’s borderline; the M5 Pro starts at 24 GB.&lt;/p&gt;
&lt;p&gt;Android Studio recommends 32 GB of RAM. That is the largest option with the M5 chip. This article’s checks use the minimum, not the recommendation.&lt;/p&gt;
&lt;p&gt;Each Android Virtual Device running at the same time needs about 4 GB of memory. The official pages give no total for several, so running several isn’t assessed.&lt;/p&gt;
&lt;h3 id=&quot;storage&quot;&gt;Storage&lt;/h3&gt;
&lt;p&gt;Per Docker’s and Android Studio’s official requirements, Android Studio needs 8 GB of free space, 16 GB with the emulator, and recommends 32 GB or more on an SSD. Even the smallest current drive, 256 GB, is above those figures. Space taken by macOS and your own files isn’t calculated.&lt;/p&gt;
&lt;h2 id=&quot;chips-and-external-displays&quot;&gt;Chips and external displays&lt;/h2&gt;
&lt;p&gt;Per Apple’s spec pages, the Neo drives up to 1 display, and the Air and the M5 14-inch Pro drive up to 2 displays. The M5 Pro drives up to 3 displays and the M5 Max up to 4 displays, so 3 or more displays need an M5 Pro or better.&lt;/p&gt;
&lt;p&gt;The most memory you can order is 8 GB on the Neo and 32 GB on the Air and the M5 14-inch Pro. The M5 Pro goes to 64 GB and the M5 Max to 128 GB, but only with the higher-core GPU.&lt;/p&gt;
&lt;h2 id=&quot;which-screen-size-to-pick&quot;&gt;Which screen size to pick&lt;/h2&gt;
&lt;p&gt;For the lightest, pick the Air 13 at 1.23 kg; for a bigger screen, the Air 15 or the Pro 16.&lt;/p&gt;













































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Model&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Screen&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Resolution&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Weight&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;External displays&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Max RAM&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Neo&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13.0 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2,408 × 1,506&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1.23 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1 display&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Air 13&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;13.6 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2,560 × 1,664&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1.23 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;32 GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Air 15&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;15.3 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2,880 × 1,864&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1.51 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;32 GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Pro 14 M5&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14.2 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3,024 × 1,964&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1.55 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;32 GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Pro 14 M5 Pro&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14.2 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3,024 × 1,964&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1.60 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;64 GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Pro 14 M5 Max&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14.2 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3,024 × 1,964&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1.62 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;4 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;128 GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Pro 16 M5 Pro&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;16.2 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3,456 × 2,234&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2.14 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;64 GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Pro 16 M5 Max&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;16.2 in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3,456 × 2,234&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2.15 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;4 displays&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;128 GB&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The M5 Pro’s 64 GB needs the 20-core GPU, and the M5 Max’s 128 GB the 40-core GPU.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-condition&quot;&gt;Picks by condition&lt;/h2&gt;
&lt;p&gt;One pick per condition, from Amazon.com:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sold new by Amazon.com, with a configuration that matches Apple’s spec&lt;/li&gt;
&lt;li&gt;At least 100 ratings and 4 stars or more&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Among the current models checked, when more than one listing qualifies, the pick is the cheapest one, shipping included.&lt;/p&gt;
&lt;h3 id=&quot;no-android-emulator-up-to-1-display&quot;&gt;No Android emulator, up to 1 display&lt;/h3&gt;
&lt;p&gt;For Android Studio alone it’s exactly the 8 GB minimum, so it’s borderline.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for MacBook Neo, 8GB/256GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61MxIxzYvUL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MacBook Neo, 8GB/256GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR6KJ72L?q=MacBook+Neo%2C+8GB%2F256GB&amp;amp;us=B0GR6KJ72L&amp;amp;l=en&quot; aria-label=&quot;View MacBook Neo, 8GB/256GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Other colors are separate listings. Whether ratings are pooled was not checked.&lt;/p&gt;
&lt;h3 id=&quot;with-the-emulator-up-to-2-displays-13-kg-or-less&quot;&gt;With the emulator, up to 2 displays, 1.3 kg or less&lt;/h3&gt;
&lt;p&gt;It’s exactly the 16 GB emulator minimum, so it’s borderline.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 13-inch MacBook Air (M5), 16GB/512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/714mf1PUL4L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;13-inch MacBook Air (M5), 16GB/512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1T11D6?q=13-inch+MacBook+Air+%28M5%29%2C+16GB%2F512GB&amp;amp;us=B0GR1J6T45&amp;amp;l=en&quot; aria-label=&quot;View 13-inch MacBook Air (M5), 16GB/512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;153-in-screen-with-the-emulator-up-to-2-displays&quot;&gt;15.3 in screen, with the emulator, up to 2 displays&lt;/h3&gt;
&lt;p&gt;Also exactly the 16 GB minimum, so borderline.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 15-inch MacBook Air (M5), 16GB/512GB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71f3rEW30BL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;15-inch MacBook Air (M5), 16GB/512GB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1GC1D6?q=15-inch+MacBook+Air+%28M5%29%2C+16GB%2F512GB&amp;amp;us=B0GR1GC1D6&amp;amp;l=en&quot; aria-label=&quot;View 15-inch MacBook Air (M5), 16GB/512GB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;3-displays-and-the-emulator&quot;&gt;3 displays and the emulator&lt;/h3&gt;
&lt;p&gt;Its standard 24 GB is 8 GB above the minimum.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for 14-inch MacBook Pro (M5 Pro), 24GB/1TB&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61yFkQA+HFL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;14-inch MacBook Pro (M5 Pro), 24GB/1TB&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR1JK9W3?q=14-inch+MacBook+Pro+%28M5+Pro%29%2C+24GB%2F1TB&amp;amp;us=B0GR1JK9W3&amp;amp;l=en&quot; aria-label=&quot;View 14-inch MacBook Pro (M5 Pro), 24GB/1TB on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;is-the-macbook-neo-good-enough-for-programming&quot;&gt;Is the MacBook Neo good enough for programming?&lt;/h3&gt;
&lt;p&gt;For the October 2026 lineup, the smallest-memory configuration, 8 GB, drives up to 1 display. It meets the official minimums only if you skip the Android emulator.&lt;/p&gt;
&lt;p&gt;For Android Studio alone it’s exactly the 8 GB minimum, so it’s borderline. Running Docker Desktop and Android Studio together isn’t assessed, since the official pages give no combined figure.&lt;/p&gt;
&lt;p&gt;Models that fit are in the picks section.&lt;/p&gt;
&lt;h3 id=&quot;how-much-ram-does-a-macbook-need-for-programming&quot;&gt;How much RAM does a MacBook need for programming?&lt;/h3&gt;
&lt;p&gt;The minimum RAM is 4 GB for Docker Desktop, 8 GB for Android Studio, and 16 GB with the emulator. Android Studio recommends 32 GB of RAM.&lt;/p&gt;
&lt;p&gt;That is the largest option with the M5 chip. This article’s checks use the minimum, not the recommendation.&lt;/p&gt;
&lt;h3 id=&quot;how-much-ram-does-xcode-need-for-ios-development&quot;&gt;How much RAM does Xcode need for iOS development?&lt;/h3&gt;
&lt;p&gt;Not judged. Apple’s Xcode system requirements list no RAM figure.&lt;/p&gt;
&lt;h3 id=&quot;is-256-gb-of-storage-enough-for-a-programming-macbook&quot;&gt;Is 256 GB of storage enough for a programming MacBook?&lt;/h3&gt;
&lt;p&gt;Android Studio needs 8 GB of free space, 16 GB with the emulator, and recommends 32 GB or more on an SSD. Even the smallest current drive, 256 GB, is above those figures.&lt;/p&gt;
&lt;p&gt;Space taken by macOS and your own files isn’t calculated. Docker and Xcode give no official disk figure.&lt;/p&gt;
&lt;h3 id=&quot;how-many-external-displays-can-a-macbook-run&quot;&gt;How many external displays can a MacBook run?&lt;/h3&gt;
&lt;p&gt;Per Apple’s spec pages, on current MacBooks the display count depends on the chip. The M5 drives up to 2 displays, the M5 Pro 3 displays and the M5 Max 4 displays.&lt;/p&gt;
&lt;p&gt;The 8 GB configuration drives 1 display.&lt;/p&gt;
&lt;h3 id=&quot;how-long-does-a-macbook-battery-last&quot;&gt;How long does a MacBook battery last?&lt;/h3&gt;
&lt;p&gt;Apple’s video playback figures range from 16 hours to 24 hours across current configurations other than the M5 Max, from Apple’s own tests. The M5 Max wasn’t checked.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;:&lt;/p&gt;&lt;p&gt;Sources: Apple specs for &lt;a href=&quot;https://www.apple.com/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Neo&lt;/a&gt;, &lt;a href=&quot;https://www.apple.com/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Air&lt;/a&gt; and &lt;a href=&quot;https://www.apple.com/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Pro&lt;/a&gt;, and &lt;a href=&quot;https://www.apple.com/mac/compare/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Compare Mac&lt;/a&gt; ／ &lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Android Studio install requirements&lt;/a&gt; and &lt;a href=&quot;https://docs.docker.com/desktop/setup/install/mac-install/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Docker Desktop for Mac&lt;/a&gt; ／ &lt;a href=&quot;https://developer.apple.com/xcode/system-requirements/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Xcode system requirements (Apple)&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Memory needed = the official minimum RAM for the chosen kind of development (Docker Desktop on Mac 4 GB, Android Studio on Mac 8 GB for Studio only and 16 GB with the emulator). Apple lists no RAM figure for Xcode, so memory isn’t judged for it. The official recommendation (Android Studio 32 GB) isn’t used for the conclusions.&lt;/li&gt;
&lt;li&gt;Minimum configuration = the smallest memory tier on Apple’s spec pages at or above the memory needed (Neo 8 GB; Air and 14-inch Pro with M5: 16, 24, 32 GB; M5 Pro: 24, 48, 64 GB; M5 Max from 36 GB). If the headroom (configured memory − memory needed) is under 10% of the memory needed, it’s marked borderline (a threshold set for this article).&lt;/li&gt;
&lt;li&gt;External display counts are Apple’s spec-page maximums (Neo 1, Air 2, Pro with M5 2, M5 Pro 3, M5 Max 4). Weights are from Apple’s spec pages.&lt;/li&gt;
&lt;li&gt;Storage is only compared with Android Studio’s official free-space figures (Studio only 8 GB, with the emulator 16 GB, recommended 32 GB or more on an SSD); space used by macOS and your own files isn’t calculated. Docker Desktop and Xcode publish no disk figure.&lt;/li&gt;
&lt;li&gt;Speed and comfort weren’t tested on real hardware and aren’t judged. Picks are new listings sold by Amazon with 100+ ratings, 4+ stars, and a configuration matching Apple’s specs, cheapest including shipping.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;
































































































































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch display size (diagonal)&lt;/td&gt;&lt;td&gt;13.6 in&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch native width&lt;/td&gt;&lt;td&gt;2,560 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch native height&lt;/td&gt;&lt;td&gt;1,664 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch weight&lt;/td&gt;&lt;td&gt;1.23 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch video streaming battery life (up to)&lt;/td&gt;&lt;td&gt;18 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch wireless web battery life (up to)&lt;/td&gt;&lt;td&gt;15 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air (M5) maximum external displays&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch base memory&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 13-inch base storage&lt;/td&gt;&lt;td&gt;512 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air (M5) maximum memory option&lt;/td&gt;&lt;td&gt;32 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air (M5) maximum storage option&lt;/td&gt;&lt;td&gt;4 TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch display size (diagonal)&lt;/td&gt;&lt;td&gt;15.3 in&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch native width&lt;/td&gt;&lt;td&gt;2,880 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch native height&lt;/td&gt;&lt;td&gt;1,864 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch weight&lt;/td&gt;&lt;td&gt;1.51 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch video streaming battery life (up to)&lt;/td&gt;&lt;td&gt;18 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch wireless web battery life (up to)&lt;/td&gt;&lt;td&gt;15 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch display size (diagonal)&lt;/td&gt;&lt;td&gt;14.2 in&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch native width&lt;/td&gt;&lt;td&gt;3,024 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch native height&lt;/td&gt;&lt;td&gt;1,964 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5) weight&lt;/td&gt;&lt;td&gt;1.55 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5 Pro) weight&lt;/td&gt;&lt;td&gt;1.6 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5) video streaming battery life (up to)&lt;/td&gt;&lt;td&gt;24 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5) wireless web battery life (up to)&lt;/td&gt;&lt;td&gt;16 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5 Pro) video streaming battery life (up to)&lt;/td&gt;&lt;td&gt;22 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5 Pro) wireless web battery life (up to)&lt;/td&gt;&lt;td&gt;14 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5) maximum external displays&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5 Pro) maximum external displays&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5 Max) maximum external displays&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5) base memory&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5) base storage&lt;/td&gt;&lt;td&gt;1 TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5 Pro) base memory&lt;/td&gt;&lt;td&gt;24 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5 Pro) maximum memory option&lt;/td&gt;&lt;td&gt;64 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch display size (diagonal)&lt;/td&gt;&lt;td&gt;16.2 in&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch (M5 Pro) weight&lt;/td&gt;&lt;td&gt;2.14 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch (M5 Pro) wireless web battery life (up to)&lt;/td&gt;&lt;td&gt;17 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android Studio (Mac) minimum RAM (Studio only)&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android Studio (Mac) minimum RAM (with the emulator)&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android Studio (Mac) recommended RAM&lt;/td&gt;&lt;td&gt;32 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android Studio (Mac) free disk space (Studio only)&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android Studio (Mac) free disk space (with the emulator, minimum)&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android Studio (Mac) recommended free disk space (SSD)&lt;/td&gt;&lt;td&gt;32 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Memory per running Android Virtual Device (approx.)&lt;/td&gt;&lt;td&gt;4 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Extra storage per additional AVD (up to)&lt;/td&gt;&lt;td&gt;6 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.android.com/studio/install&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.android.com&lt;/a&gt; You might need up to 6GB of additional storage for each additional AVD created&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Docker Desktop on Mac minimum RAM&lt;/td&gt;&lt;td&gt;4 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://docs.docker.com/desktop/setup/install/mac-install/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;docs.docker.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo display size (diagonal)&lt;/td&gt;&lt;td&gt;13.0 in&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo native width&lt;/td&gt;&lt;td&gt;2,408 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo native height&lt;/td&gt;&lt;td&gt;1,506 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo weight&lt;/td&gt;&lt;td&gt;1.23 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo video streaming battery life (up to)&lt;/td&gt;&lt;td&gt;16 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo wireless web battery life (up to)&lt;/td&gt;&lt;td&gt;11 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo memory (the only configuration listed on the spec page)&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo storage (model 1)&lt;/td&gt;&lt;td&gt;256 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo storage (model 2)&lt;/td&gt;&lt;td&gt;512 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo maximum external displays&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo USB 3 (USB-C) ports&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Neo USB 2 (USB-C) ports&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-neo/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch native width&lt;/td&gt;&lt;td&gt;3,456 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch native height&lt;/td&gt;&lt;td&gt;2,234 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch (M5 Max) weight&lt;/td&gt;&lt;td&gt;2.15 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch (M5 Pro) maximum external displays&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch (M5 Max) maximum external displays&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch base memory (M5 Pro)&lt;/td&gt;&lt;td&gt;24 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch base storage (M5 Pro)&lt;/td&gt;&lt;td&gt;1 TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 16-inch (M5 Pro) video streaming battery life (up to)&lt;/td&gt;&lt;td&gt;24 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch base memory&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Air 15-inch base storage&lt;/td&gt;&lt;td&gt;512 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-air/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5 Max) weight&lt;/td&gt;&lt;td&gt;1.62 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5 Max) smallest memory option&lt;/td&gt;&lt;td&gt;36 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5 Max) base storage&lt;/td&gt;&lt;td&gt;2 TB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RAM figure in Xcode’s system requirements&lt;/td&gt;&lt;td&gt;No RAM or disk space figure is listed (the page lists macOS versions and SDKs only)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://developer.apple.com/xcode/system-requirements/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;developer.apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro 14-inch (M5) maximum memory option&lt;/td&gt;&lt;td&gt;32 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MacBook Pro (M5 Max) maximum memory option&lt;/td&gt;&lt;td&gt;128 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.apple.com/jp/macbook-pro/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;apple.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Minimum MacBook configuration for your development work: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result and a matching product for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;




















































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Web / Docker, None, Doesn’t matter&lt;/td&gt;&lt;td&gt;✓ The MacBook Neo meets the official minimums. Memory needed: 4 GB (official minimum for Docker Desktop). Minimum configuration: MacBook Neo, 8 GB memory, 256 GB storage. Memory headroom: 4 GB. The MacBook Neo drives up to 1 external display. The MacBook Neo meets the official minimums only if you skip the Android emulator, use at most one external display, and run one of these apps at a time. Other models that fit: 13-inch MacBook Air (M5), 15-inch MacBook Air (M5), 14-inch MacBook Pro (M5), 14-inch MacBook Pro (M5 Pro), 16-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max), 16-inch MacBook Pro (M5 Max). Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=web_docker&amp;amp;macbook-dev-config-calc-mon=0&amp;amp;macbook-dev-config-calc-w=any#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Web / Docker, 1, Doesn’t matter&lt;/td&gt;&lt;td&gt;✓ The MacBook Neo meets the official minimums. Memory needed: 4 GB (official minimum for Docker Desktop). Minimum configuration: MacBook Neo, 8 GB memory, 256 GB storage. Memory headroom: 4 GB. The MacBook Neo drives up to 1 external display. The MacBook Neo meets the official minimums only if you skip the Android emulator, use at most one external display, and run one of these apps at a time. The Neo outputs video only from its single USB 3 port, so with a display connected you’re left with one USB 2 port. Other models that fit: 13-inch MacBook Air (M5), 15-inch MacBook Air (M5), 14-inch MacBook Pro (M5), 14-inch MacBook Pro (M5 Pro), 16-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max), 16-inch MacBook Pro (M5 Max). Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=web_docker&amp;amp;macbook-dev-config-calc-mon=1&amp;amp;macbook-dev-config-calc-w=any#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Web / Docker, 2, Doesn’t matter&lt;/td&gt;&lt;td&gt;✓ The 13-inch MacBook Air (M5) meets the official minimums. Memory needed: 4 GB (official minimum for Docker Desktop). Minimum configuration: 13-inch MacBook Air (M5), 16 GB memory, 512 GB storage. Memory headroom: 12 GB. The 13-inch MacBook Air (M5) drives up to 2 external displays. Other models that fit: 15-inch MacBook Air (M5), 14-inch MacBook Pro (M5), 14-inch MacBook Pro (M5 Pro), 16-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max), 16-inch MacBook Pro (M5 Max). Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=web_docker&amp;amp;macbook-dev-config-calc-mon=2&amp;amp;macbook-dev-config-calc-w=any#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Web / Docker, 3, Doesn’t matter&lt;/td&gt;&lt;td&gt;✓ The 14-inch MacBook Pro (M5 Pro) meets the official minimums. Memory needed: 4 GB (official minimum for Docker Desktop). Minimum configuration: 14-inch MacBook Pro (M5 Pro), 24 GB memory, 1 TB storage. Memory headroom: 20 GB. The 14-inch MacBook Pro (M5 Pro) drives up to 3 external displays. Other models that fit: 16-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max), 16-inch MacBook Pro (M5 Max). Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=web_docker&amp;amp;macbook-dev-config-calc-mon=3&amp;amp;macbook-dev-config-calc-w=any#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android (no emulator), 1, Doesn’t matter&lt;/td&gt;&lt;td&gt;△ The MacBook Neo just meets them. Memory needed: 8 GB (official minimum for Android Studio). Minimum configuration: MacBook Neo, 8 GB memory, 256 GB storage. Memory is exactly the official minimum with nothing to spare (borderline). The MacBook Neo drives up to 1 external display. The MacBook Neo meets the official minimums only if you skip the Android emulator, use at most one external display, and run one of these apps at a time. The Neo outputs video only from its single USB 3 port, so with a display connected you’re left with one USB 2 port. Storage is above Android Studio’s official free-space figures (8 GB, 16 GB with the emulator). Space for macOS and your own files isn’t calculated. Other models that fit: 13-inch MacBook Air (M5), 15-inch MacBook Air (M5), 14-inch MacBook Pro (M5), 14-inch MacBook Pro (M5 Pro), 16-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max), 16-inch MacBook Pro (M5 Max). Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=android&amp;amp;macbook-dev-config-calc-mon=1&amp;amp;macbook-dev-config-calc-w=any#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android (no emulator), 2, Doesn’t matter&lt;/td&gt;&lt;td&gt;✓ The 13-inch MacBook Air (M5) meets the official minimums. Memory needed: 8 GB (official minimum for Android Studio). Minimum configuration: 13-inch MacBook Air (M5), 16 GB memory, 512 GB storage. Memory headroom: 8 GB. The 13-inch MacBook Air (M5) drives up to 2 external displays. Storage is above Android Studio’s official free-space figures (8 GB, 16 GB with the emulator). Space for macOS and your own files isn’t calculated. Other models that fit: 15-inch MacBook Air (M5), 14-inch MacBook Pro (M5), 14-inch MacBook Pro (M5 Pro), 16-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max), 16-inch MacBook Pro (M5 Max). Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=android&amp;amp;macbook-dev-config-calc-mon=2&amp;amp;macbook-dev-config-calc-w=any#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android (with emulator), None, Doesn’t matter&lt;/td&gt;&lt;td&gt;△ The 13-inch MacBook Air (M5) just meets them. Memory needed: 16 GB (official minimum for Android Studio with the emulator). Minimum configuration: 13-inch MacBook Air (M5), 16 GB memory, 512 GB storage. Memory is exactly the official minimum with nothing to spare (borderline). The 13-inch MacBook Air (M5) drives up to 2 external displays. Android Studio recommends 32 GB (this check uses the minimum). Storage is above Android Studio’s official free-space figures (8 GB, 16 GB with the emulator). Space for macOS and your own files isn’t calculated. Other models that fit: 15-inch MacBook Air (M5), 14-inch MacBook Pro (M5), 14-inch MacBook Pro (M5 Pro), 16-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max), 16-inch MacBook Pro (M5 Max). Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=android_emu&amp;amp;macbook-dev-config-calc-mon=0&amp;amp;macbook-dev-config-calc-w=any#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android (with emulator), 2, Doesn’t matter&lt;/td&gt;&lt;td&gt;△ The 13-inch MacBook Air (M5) just meets them. Memory needed: 16 GB (official minimum for Android Studio with the emulator). Minimum configuration: 13-inch MacBook Air (M5), 16 GB memory, 512 GB storage. Memory is exactly the official minimum with nothing to spare (borderline). The 13-inch MacBook Air (M5) drives up to 2 external displays. Android Studio recommends 32 GB (this check uses the minimum). Storage is above Android Studio’s official free-space figures (8 GB, 16 GB with the emulator). Space for macOS and your own files isn’t calculated. Other models that fit: 15-inch MacBook Air (M5), 14-inch MacBook Pro (M5), 14-inch MacBook Pro (M5 Pro), 16-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max), 16-inch MacBook Pro (M5 Max). Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=android_emu&amp;amp;macbook-dev-config-calc-mon=2&amp;amp;macbook-dev-config-calc-w=any#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android (with emulator), 3, Doesn’t matter&lt;/td&gt;&lt;td&gt;✓ The 14-inch MacBook Pro (M5 Pro) meets the official minimums. Memory needed: 16 GB (official minimum for Android Studio with the emulator). Minimum configuration: 14-inch MacBook Pro (M5 Pro), 24 GB memory, 1 TB storage. Memory headroom: 8 GB. The 14-inch MacBook Pro (M5 Pro) drives up to 3 external displays. Android Studio recommends 32 GB (this check uses the minimum). Storage is above Android Studio’s official free-space figures (8 GB, 16 GB with the emulator). Space for macOS and your own files isn’t calculated. Other models that fit: 16-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max), 16-inch MacBook Pro (M5 Max). Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=android_emu&amp;amp;macbook-dev-config-calc-mon=3&amp;amp;macbook-dev-config-calc-w=any#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android (with emulator), 4, Doesn’t matter&lt;/td&gt;&lt;td&gt;✓ The 14-inch MacBook Pro (M5 Max) meets the official minimums. Memory needed: 16 GB (official minimum for Android Studio with the emulator). Minimum configuration: 14-inch MacBook Pro (M5 Max), 36 GB memory, 2 TB storage. Memory headroom: 20 GB. The 14-inch MacBook Pro (M5 Max) drives up to 4 external displays. Android Studio recommends 32 GB (this check uses the minimum). Storage is above Android Studio’s official free-space figures (8 GB, 16 GB with the emulator). Space for macOS and your own files isn’t calculated. Other models that fit: 16-inch MacBook Pro (M5 Max). Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=android_emu&amp;amp;macbook-dev-config-calc-mon=4&amp;amp;macbook-dev-config-calc-w=any#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iOS (Xcode), 1, Doesn’t matter&lt;/td&gt;&lt;td&gt;△ MacBook Neo (memory not judged). Apple lists no RAM figure for Xcode, so memory isn’t judged. The configuration below is chosen only by display count and weight. Minimum configuration: MacBook Neo, 8 GB memory, 256 GB storage. The MacBook Neo drives up to 1 external display. Whether the Neo’s 8 GB is enough for Xcode isn’t judged, since there’s no official figure. If you also run the Android emulator, it falls short of the official 16 GB minimum. The Neo outputs video only from its single USB 3 port, so with a display connected you’re left with one USB 2 port. Other models that fit: 13-inch MacBook Air (M5), 15-inch MacBook Air (M5), 14-inch MacBook Pro (M5), 14-inch MacBook Pro (M5 Pro), 16-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max), 16-inch MacBook Pro (M5 Max). Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=ios&amp;amp;macbook-dev-config-calc-mon=1&amp;amp;macbook-dev-config-calc-w=any#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iOS (Xcode), 3, Doesn’t matter&lt;/td&gt;&lt;td&gt;△ 14-inch MacBook Pro (M5 Pro) (memory not judged). Apple lists no RAM figure for Xcode, so memory isn’t judged. The configuration below is chosen only by display count and weight. Minimum configuration: 14-inch MacBook Pro (M5 Pro), 24 GB memory, 1 TB storage. The 14-inch MacBook Pro (M5 Pro) drives up to 3 external displays. Other models that fit: 16-inch MacBook Pro (M5 Pro), 14-inch MacBook Pro (M5 Max), 16-inch MacBook Pro (M5 Max). Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=ios&amp;amp;macbook-dev-config-calc-mon=3&amp;amp;macbook-dev-config-calc-w=any#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android (with emulator), 2, 1.3 kg or less&lt;/td&gt;&lt;td&gt;△ The 13-inch MacBook Air (M5) just meets them. Memory needed: 16 GB (official minimum for Android Studio with the emulator). Minimum configuration: 13-inch MacBook Air (M5), 16 GB memory, 512 GB storage. Memory is exactly the official minimum with nothing to spare (borderline). The 13-inch MacBook Air (M5) drives up to 2 external displays. Android Studio recommends 32 GB (this check uses the minimum). Storage is above Android Studio’s official free-space figures (8 GB, 16 GB with the emulator). Space for macOS and your own files isn’t calculated. Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=android_emu&amp;amp;macbook-dev-config-calc-mon=2&amp;amp;macbook-dev-config-calc-w=light#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Web / Docker, 3, 1.3 kg or less&lt;/td&gt;&lt;td&gt;✕ No model fits. Memory needed: 4 GB (official minimum for Docker Desktop). No model in this weight range supports 3 external displays. Set portability to “Doesn’t matter” to see one&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=web_docker&amp;amp;macbook-dev-config-calc-mon=3&amp;amp;macbook-dev-config-calc-w=light#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Android (with emulator), 4, 1.7 kg or less&lt;/td&gt;&lt;td&gt;✓ The 14-inch MacBook Pro (M5 Max) meets the official minimums. Memory needed: 16 GB (official minimum for Android Studio with the emulator). Minimum configuration: 14-inch MacBook Pro (M5 Max), 36 GB memory, 2 TB storage. Memory headroom: 20 GB. The 14-inch MacBook Pro (M5 Max) drives up to 4 external displays. Android Studio recommends 32 GB (this check uses the minimum). Storage is above Android Studio’s official free-space figures (8 GB, 16 GB with the emulator). Space for macOS and your own files isn’t calculated. Pick one kind of development. Each official minimum is for that app on its own; running Docker and Android Studio together has no official figure and isn’t judged&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-27-programming-macbook/?macbook-dev-config-calc-dev=android_emu&amp;amp;macbook-dev-config-calc-mon=4&amp;amp;macbook-dev-config-calc-w=mid#macbook-dev-config-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>macbook</category></item><item><title>How to pick an iPhone 12 — viewing the first 5G-rollout-year iPhone as a buy today</title><link>https://aulvem.com/blog/2021-03-26-iphone12/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-26-iphone12/</guid><description>How to choose between the iPhone 12 line-up (standard, mini, Pro, Pro Max). As the first 5G-rollout-year iPhone, the question of which one to pick — mini, standard, Pro, or Pro Max — comes down to use case, summarized with a table and FAQ.</description><pubDate>Fri, 26 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: ported from the old VuePress blog. iPhone 12 was the &lt;strong&gt;first iPhone to ship into Japan’s 5G rollout&lt;/strong&gt; (announced autumn 2020), and the generation where the split between mmWave models for the US and Sub-6-only models for Japan first settled into place. It is no longer a current new-product pick in 2026, but the framework still works for evaluating a used or last-gen buy. Always confirm current pricing and stock before you order. The numbers are the manufacturer’s published figures from the original writing; current official specs may differ.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The iPhone 12 has moved past the “buy it new” phase, but it is still a live option on the used and refurbished market if the goal is to own an iPhone cheaply right now. The line-up has four models — mini, standard, Pro, Pro Max — that differ in both size and camera.&lt;/p&gt;
&lt;p&gt;This piece sorts the four on two axes: &lt;strong&gt;screen size and whether there’s an optical telephoto&lt;/strong&gt;, then maps each model to a use case. If you are torn between iPhone 11 and iPhone 12, the answer flips on whether you’ll use 5G, so read through to the FAQ.&lt;/p&gt;
&lt;h2 id=&quot;the-short-answer--mini-or-pro-the-standard-and-pro-max-are-the-middle-thats-easy-to-get-lost-in&quot;&gt;The short answer — mini or Pro; the standard and Pro Max are the middle that’s easy to get lost in&lt;/h2&gt;
&lt;p&gt;Short answer: mini if you want one-handed use, Pro line if you want telephoto and low-light. For everyone else the standard iPhone 12 is enough. The Pro Max is for people who want both a big screen and a telephoto.&lt;/p&gt;
&lt;p&gt;Boil down the differences inside the iPhone 12 line and three points remain:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Screen size&lt;/strong&gt;: three steps — 5.4 / 6.1 / 6.7 inches&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optical telephoto and LiDAR&lt;/strong&gt;: Pro line only&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;5G mmWave&lt;/strong&gt;: Japan-market units are all Sub-6 only&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Starting from those three is faster than starting from price or storage.&lt;/p&gt;
&lt;h2 id=&quot;what-changed-at-the-iphone-12-generation&quot;&gt;What changed at the iPhone 12 generation&lt;/h2&gt;
&lt;p&gt;Short answer: 5G, OLED across the whole line-up, MagSafe, A14 Bionic, and a redesigned body. Coming from iPhone 11, the volume of change earns the “generational shift” label.&lt;/p&gt;
&lt;h3 id=&quot;5g-support-sub-6-only-in-japan&quot;&gt;5G support (Sub-6 only in Japan)&lt;/h3&gt;
&lt;p&gt;iPhone 12 was the &lt;strong&gt;first 5G iPhone released in Japan&lt;/strong&gt;. Japanese-market units are Sub-6 only; the mmWave models stayed North-America-only.&lt;/p&gt;
&lt;p&gt;In day-to-day use, downstream speed picks up inside a 5G area, but outside one the phone falls back to 4G LTE — so “5G means fast” is not a clean shorthand. By 2026 the 5G footprint has grown, so the upside is easier to feel than it was at launch.&lt;/p&gt;
&lt;h3 id=&quot;oled-across-the-entire-line-up-super-retina-xdr&quot;&gt;OLED across the entire line-up (Super Retina XDR)&lt;/h3&gt;
&lt;p&gt;On iPhone 11, the standard model used an IPS LCD and only the Pro line had OLED. From iPhone 12 onward, &lt;strong&gt;mini and standard included, every model is OLED&lt;/strong&gt;, so deep blacks and HDR content became a shared baseline.&lt;/p&gt;
&lt;h3 id=&quot;magsafe-wireless-charging&quot;&gt;MagSafe wireless charging&lt;/h3&gt;
&lt;p&gt;A ring of magnets is built into the back, so first-party and third-party MagSafe chargers and accessories snap into place. The standard carried forward across iPhone 12 and beyond, so accessories accumulated over time keep their value.&lt;/p&gt;
&lt;h3 id=&quot;the-body-returned-to-flat-edges&quot;&gt;The body returned to flat edges&lt;/h3&gt;
&lt;p&gt;A flat-edge profile that calls back to the iPhone 4 / 5 era. The feel in the hand is noticeably different from the rounded sides used up through iPhone 11. If you have smaller hands, hold one in person before buying.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-use-case--which-one-to-choose&quot;&gt;Picks by use case — which one to choose&lt;/h2&gt;
&lt;p&gt;Short answer: which model fits comes down to a single priority — one-handed, telephoto, or big screen.&lt;/p&gt;
&lt;h3 id=&quot;one-handed-use--iphone-12-mini-54-inches&quot;&gt;One-handed use — iPhone 12 mini (5.4 inches)&lt;/h3&gt;
&lt;p&gt;iPhone 12 mini is &lt;strong&gt;the smallest of the line at 5.4 inches&lt;/strong&gt;. Even counting same-generation Android flagships, a size like this is rare, so if one-handed operation is the top priority, it is the only real pick.&lt;/p&gt;
&lt;p&gt;The trade-off is the smaller battery: heavy use can leave the meter uncomfortable by evening. If you’re out and on the phone all day, lean to the standard model or above.&lt;/p&gt;
&lt;h3 id=&quot;telephoto-low-light-lidar--iphone-12-pro--pro-max&quot;&gt;Telephoto, low-light, LiDAR — iPhone 12 Pro / Pro Max&lt;/h3&gt;
&lt;p&gt;Only the Pro line carries the &lt;strong&gt;optical telephoto camera and the LiDAR scanner&lt;/strong&gt;. The telephoto pays off when you want a tighter frame on a still subject or shoot portraits, and LiDAR feeds directly into autofocus speed in dim rooms.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;iPhone 12 Pro: 2x optical zoom&lt;/li&gt;
&lt;li&gt;iPhone 12 Pro Max: 2.5x optical zoom + sensor-shift stabilization&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If “get a little closer” is the whole request, the standard model’s digital zoom is enough. If shooting people in low light is a frequent thing, the Pro-line gap is real.&lt;/p&gt;
&lt;h3 id=&quot;big-screen--iphone-12-pro-max-67-inches&quot;&gt;Big screen — iPhone 12 Pro Max (6.7 inches)&lt;/h3&gt;
&lt;p&gt;6.7 inches earns its keep on video and games. It is also too large to fully wrap one hand around, so you have to accept it as a two-handed device.&lt;/p&gt;
&lt;h3 id=&quot;everything-else--iphone-12-standard-61-inches&quot;&gt;Everything else — iPhone 12 (standard, 6.1 inches)&lt;/h3&gt;
&lt;p&gt;If neither size nor optical telephoto is on the wish list, the standard model leaves nothing on the table. From an iPhone 11, it is the most natural upgrade path.&lt;/p&gt;
&lt;h2 id=&quot;iphone-12-line-up-comparison&quot;&gt;iPhone 12 line-up comparison&lt;/h2&gt;













































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Model&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;Screen&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;Camera&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;Optical telephoto&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;LiDAR&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;Weight&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;iPhone 12 mini&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;5.4 in&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Wide + Ultra-wide&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;~133 g&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;iPhone 12&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;6.1 in&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Wide + Ultra-wide&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;~162 g&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;iPhone 12 Pro&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;6.1 in&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Wide + Ultra-wide + Tele&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;2x&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;~187 g&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;iPhone 12 Pro Max&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;6.7 in&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Wide + Ultra-wide + Tele&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;2.5x&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;~226 g&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Spec numbers are Apple’s published figures. Weight is the published value, not a case-off measurement.&lt;/p&gt;
&lt;h2 id=&quot;iphone-11-or-iphone-12--which-one-to-buy&quot;&gt;iPhone 11 or iPhone 12 — which one to buy&lt;/h2&gt;
&lt;p&gt;Short answer: it comes down to whether you’ll use 5G and whether OLED on the standard model matters to you.&lt;/p&gt;
&lt;p&gt;The walkthrough for the iPhone 11 line is in &lt;a href=&quot;https://aulvem.com/blog/2021-03-25-iphone11/&quot;&gt;How to pick an iPhone 11&lt;/a&gt;. Reading the two side by side makes it easier to see what actually changed at iPhone 12.&lt;/p&gt;



































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Angle&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;iPhone 11&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;iPhone 12&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;5G&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Not supported&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Sub-6 (Japan units)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Standard model’s screen&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;IPS LCD&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;OLED&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;MagSafe&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Not supported&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Supported&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Smallest size&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;5.8 in (Pro)&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;5.4 in (mini)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Used price (2026 ballpark)&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Cheaper&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;A bit higher&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;If 5G and OLED don’t matter and price is the lead, iPhone 11 is enough. If “mini-sized for one-handed use” or “OLED even on the standard model” is what you’re after, iPhone 12 has a reason to exist.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Is there a reason to buy iPhone 12 new in 2026?&lt;/strong&gt;
A. Distribution of new units has more or less wound down, so refurbished or used is the practical channel. If you can verify battery health, it works as a secondary phone or for light use. As your main phone for years to come, lean to a newer generation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Is the mini’s battery really weaker?&lt;/strong&gt;
A. Yes — Apple’s published video-playback time is shorter than the standard model. Under heavy use the meter does get tight in the evening. The decision is whether you accept that as the cost of the one-handed size, or move up to the standard.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Does iPhone 12’s 5G matter in Japan?&lt;/strong&gt;
A. At the 2020 launch the 5G footprint was thin; in 2026 coverage is wide enough that the upside is easier to feel. That said, Japanese units are Sub-6 only — the high-throughput mmWave bands are not on the table.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Is upgrading from iPhone 11 to iPhone 12 worth it?&lt;/strong&gt;
A. If iPhone 11 still feels fine, there is no hard reason to jump. The usual triggers for upgrading are: wanting 5G, wanting OLED on the standard tier, or wanting the mini’s one-handed size.&lt;/p&gt;
&lt;h2 id=&quot;wrapping-up&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;The iPhone 12 line has a clean historical position as “the first 5G iPhone in the rollout year,” and the move to OLED across the line plus MagSafe makes the generation feel cohesive.&lt;/p&gt;
&lt;p&gt;If you’re buying in 2026, used or refurbished is the realistic line, not new. Settle three things before you order — screen size, optical telephoto or not, and your local 5G area — and the odds of buyer’s remorse drop.&lt;/p&gt;
&lt;p&gt;If you’re still torn between iPhone 11 and iPhone 12, reading this alongside &lt;a href=&quot;https://aulvem.com/blog/2021-03-25-iphone11/&quot;&gt;How to pick an iPhone 11&lt;/a&gt; sharpens the generation gap.&lt;/p&gt;
</content:encoded><category>guides</category><category>smartphone</category><category>apple</category></item><item><title>How to pick an iPhone 11 — Pro, Pro Max, or the standard model, sorted by use case</title><link>https://aulvem.com/blog/2021-03-25-iphone11/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-25-iphone11/</guid><description>iPhone 11, 11 Pro, and 11 Pro Max compared along three axes: screen size, camera, and display quality. Framed to the 2021 release window, with a use-case-by-use-case verdict.</description><pubDate>Thu, 25 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: This was written in March 2021, when the iPhone 11 had just dropped a generation and become the obvious value pick. In 2026 the iPhone 12 / 13 and later are cheap enough on the used market that there is almost no reason to buy an iPhone 11 new. Read this as &lt;strong&gt;a snapshot of the 2021 buying decision&lt;/strong&gt;. The frame — how to think about the Pro / Pro Max / standard split — still applies.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The iPhone 11 line hit its sales peak after enough time had passed for it to settle into the “last-generation bargain” slot. Three models — Pro, Pro Max, and the standard iPhone 11 — and the price gaps between them are wide enough that people get stuck on the choice.&lt;/p&gt;
&lt;p&gt;This piece narrows the comparison down to three axes — screen size, camera, and display quality — so that by the end you know which of the three is yours.&lt;/p&gt;
&lt;h2 id=&quot;the-short-answer--pro-or-standard-and-three-things-decide-it&quot;&gt;The short answer — Pro or standard, and three things decide it&lt;/h2&gt;
&lt;p&gt;Short version: picking inside the iPhone 11 line comes down to three questions. Do you need a triple-lens camera with a telephoto? Do you need the punch of an OLED display? Do you need a 6.5-inch screen?&lt;/p&gt;
&lt;p&gt;Flip that around, and anyone who says no to all three is fine with &lt;strong&gt;the standard iPhone 11&lt;/strong&gt;. In day-to-day use the performance gap against the Pro models is almost invisible.&lt;/p&gt;

































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Model&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;Screen size&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;Camera&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;Display&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;Price band (2021)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;iPhone 11 Pro Max&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;6.5 inches&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Triple lens (with telephoto)&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;OLED, HDR&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;High&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;iPhone 11 Pro&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;5.8 inches&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Triple lens (with telephoto)&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;OLED, HDR&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Mid to high&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;&lt;strong&gt;iPhone 11&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;6.1 inches&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Dual lens (wide + ultra-wide)&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;IPS LCD&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Mid&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The use-case verdict, up front:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Telephoto shots, low light, video — &lt;strong&gt;Pro line&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Vivid display for HDR video or photo editing — &lt;strong&gt;Pro line&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Heavy gaming use — &lt;strong&gt;Pro line&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;The largest possible screen, period — &lt;strong&gt;Pro Max&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;None of the above — &lt;strong&gt;standard iPhone 11&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;basic-specs-of-the-iphone-11-line-side-by-side&quot;&gt;Basic specs of the iPhone 11 line, side by side&lt;/h2&gt;
&lt;p&gt;Short version: all three share the same SoC (A13 Bionic), so CPU performance is identical. The differences live in the camera, the display, the screen size, and the battery.&lt;/p&gt;
&lt;h3 id=&quot;cpu-is-a13-bionic-across-the-board&quot;&gt;CPU is A13 Bionic across the board&lt;/h3&gt;
&lt;p&gt;Pro, Pro Max, and the standard model all carry the same A13 Bionic. For everyday use and app launches, the felt speed is basically the same.&lt;/p&gt;
&lt;p&gt;If “the Pro feels smoother for gaming” ever lines up with reality, it tends to come from &lt;strong&gt;the display feel&lt;/strong&gt; and &lt;strong&gt;thermal-throttling headroom under heat&lt;/strong&gt;, not from raw CPU.&lt;/p&gt;
&lt;h3 id=&quot;where-they-actually-differ-camera-display-size-battery&quot;&gt;Where they actually differ: camera, display, size, battery&lt;/h3&gt;















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Aspect&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;iPhone 11 Pro Max&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;iPhone 11 Pro&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;iPhone 11&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;SoC&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;A13 Bionic&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;A13 Bionic&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;A13 Bionic&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Screen size&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;6.5 inches&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;5.8 inches&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;6.1 inches&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Display&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Super Retina XDR (OLED)&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Super Retina XDR (OLED)&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Liquid Retina (IPS LCD)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Camera&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Triple (wide, ultra-wide, telephoto)&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Triple (wide, ultra-wide, telephoto)&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Dual (wide, ultra-wide)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Battery (rough)&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Longest&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Middle&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Middle (some reports say the standard outlasts the Pro)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Weight&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;226 g&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;188 g&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;194 g&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Read as a spec sheet alone the three look almost identical, but &lt;strong&gt;the telephoto lens and the OLED&lt;/strong&gt; are the two places where the difference shows up in daily use.&lt;/p&gt;
&lt;h2 id=&quot;choosing-by-use-case&quot;&gt;Choosing by use case&lt;/h2&gt;
&lt;p&gt;Short version: if you make money on photos and video, or treat them as a serious hobby, take a Pro. If screen size is the top priority, take the Pro Max. Otherwise the standard model is fine.&lt;/p&gt;
&lt;h3 id=&quot;if-photos-and-video-matter-take-a-pro&quot;&gt;If photos and video matter, take a Pro&lt;/h3&gt;
&lt;p&gt;What the triple-lens camera buys you is &lt;strong&gt;a 2x optical telephoto&lt;/strong&gt; and &lt;strong&gt;a more reliable night mode&lt;/strong&gt;. If you post food and travel shots to social media often, the Pro line lands closer to “actually satisfied.”&lt;/p&gt;
&lt;p&gt;That said, 2x is only 2x. “Pull something far away in close” is not what this telephoto is for — set the expectation at “one step closer” and you won’t be disappointed.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;iPhone 11 Pro Max body shot showing the triple-lens camera array on the back&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-25-iphone11/2021-03-25-iPhone11-Pro-Max.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;h3 id=&quot;for-immersive-video-and-gaming-take-a-pro-for-the-oled&quot;&gt;For immersive video and gaming, take a Pro for the OLED&lt;/h3&gt;
&lt;p&gt;The Pro / Pro Max Super Retina XDR is OLED with HDR support. On a Netflix HDR title or a Dolby Vision film on Apple TV+, you can clearly feel the deeper blacks and the brighter highlights.&lt;/p&gt;
&lt;p&gt;The Liquid Retina (IPS LCD) on the standard iPhone 11 still looks good on its own, but if HDR video is part of your daily diet, the Pro line is worth the premium.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;iPhone 11 Pro body shot at the 5.8-inch size&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-25-iphone11/2021-03-25-iPhone11-Pro.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;h3 id=&quot;for-long-form-video-or-e-books-on-a-large-screen-take-the-pro-max&quot;&gt;For long-form video or e-books on a large screen, take the Pro Max&lt;/h3&gt;
&lt;p&gt;6.5 inches is the largest in the line. Good for two-page e-book spreads and for long video sessions — but &lt;strong&gt;226 g&lt;/strong&gt; is a lot to hold one-handed for any length of time. If you carry it in a pocket all day, go in with eyes open.&lt;/p&gt;
&lt;h3 id=&quot;if-none-of-the-above-take-the-standard-iphone-11&quot;&gt;If none of the above, take the standard iPhone 11&lt;/h3&gt;
&lt;p&gt;If your day is mostly messaging, social media, snapshots, and video — and you don’t specifically need telephoto, HDR, or a big screen — the standard model covers it. Putting the price difference toward something else gives you more satisfaction per yen.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Standard iPhone 11 body shot at the 6.1-inch size&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-25-iphone11/2021-03-25-iPhone11.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;h2 id=&quot;how-the-iphone-11-stacks-up-against-neighbouring-generations&quot;&gt;How the iPhone 11 stacks up against neighbouring generations&lt;/h2&gt;
&lt;p&gt;Short version: against the older models (iPhone XR / Xs) it is a clear step up thanks to &lt;strong&gt;A13 plus the ultra-wide camera&lt;/strong&gt;. Against the iPhone 12 the gap is &lt;strong&gt;no 5G and no MagSafe&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;versus-iphone-xr--xs--a-clean-upgrade&quot;&gt;Versus iPhone XR / Xs — a clean upgrade&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CPU goes A12 to A13, with better processing speed and power efficiency&lt;/li&gt;
&lt;li&gt;Adds an &lt;strong&gt;ultra-wide lens&lt;/strong&gt; to the camera (XR was single, Xs was telephoto plus wide)&lt;/li&gt;
&lt;li&gt;Adds night mode, which is a real step up for low-light shots&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Coming from an XR, the difference is obvious in everyday use. Coming from an Xs, unless you care a lot about the camera, the honest answer is “no need to rush.”&lt;/p&gt;
&lt;h3 id=&quot;versus-the-iphone-12-line&quot;&gt;Versus the iPhone 12 line&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;iPhone 12 supports &lt;strong&gt;5G&lt;/strong&gt;, iPhone 11 stops at 4G&lt;/li&gt;
&lt;li&gt;iPhone 12 supports &lt;strong&gt;MagSafe&lt;/strong&gt; (magnetic accessories); iPhone 11 does not&lt;/li&gt;
&lt;li&gt;iPhone 12 is OLED across the line; on iPhone 11 only the Pro models are OLED&lt;/li&gt;
&lt;li&gt;The iPhone 11 is the cheaper of the two (2021)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The full breakdown is in a separate piece — &lt;a href=&quot;https://aulvem.com/blog/2021-03-26-iphone12/&quot;&gt;how to pick an iPhone 12&lt;/a&gt;. The 11-vs-12 question really comes down to whether you take the price cut or the 5G + MagSafe bundle.&lt;/p&gt;
&lt;h3 id=&quot;cross-generation-summary&quot;&gt;Cross-generation summary&lt;/h3&gt;









































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Aspect&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;iPhone 11 line&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;iPhone 12 line&lt;/th&gt;&lt;th style=&quot;text-align:center&quot;&gt;iPhone Xs / XR&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;SoC&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;A13&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;A14&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;A12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;5G&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;MagSafe&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Yes&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;No&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Ultra-wide camera&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Yes (all models)&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Yes (all models)&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;No on XR&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;OLED&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Pro line only&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;All models&lt;/td&gt;&lt;td style=&quot;text-align:center&quot;&gt;Xs only&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Is there a point in buying an iPhone 11 new in 2026?&lt;/strong&gt;
A. Almost none. Apple no longer sells it, so you would be looking at the used market anyway. If iPhone 12 / 13 sits in the same price band, prefer those for 5G and OLED. The iPhone 11 still has a place as a used pick for a secondary phone, a kid’s phone, or a “just need an iPhone” stopgap.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. iPhone 11 Pro or Pro Max — which one?&lt;/strong&gt;
A. Specs are identical, so decide on a single question: do you need 6.5 inches? E-books and long video sessions point to the Pro Max. One-handed comfort points to the Pro. The 38 g weight gap feels real once you actually hold both.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How much does the IPS LCD on the standard iPhone 11 fall behind the Pro’s OLED?&lt;/strong&gt;
A. Side by side you can tell. Apart from that, it rarely registers. Where the gap shows up is on &lt;strong&gt;a true-black background&lt;/strong&gt; (OLED fully turns off the pixels) and in &lt;strong&gt;HDR-video contrast&lt;/strong&gt;. Day-to-day web browsing and social media — you won’t notice.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. For gaming, is there a real difference between the Pro and the standard model?&lt;/strong&gt;
A. Same A13, so frame rates are basically the same. In long sessions, there are reports that the Pro line dissipates heat better by construction. For something heavy like Genshin Impact over long stretches, the Pro line may stay more stable — about that level of difference.&lt;/p&gt;
&lt;h2 id=&quot;wrapping-up&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;How to pick an iPhone 11 boils down to one question: do you need any of the three — the telephoto lens, the OLED display, or the 6.5-inch screen? If the answer to all three is no, the standard iPhone 11 is enough. If you are stepping deeper into photography, video, or gaming, go with the Pro line.&lt;/p&gt;
&lt;p&gt;In 2021 the iPhone 11 line was a strong value pick. In 2026 the used market has it sitting next to the iPhone 12 / 13 in the same price band, so it makes sense to broaden the search a generation up rather than insisting on a new iPhone 11.&lt;/p&gt;
&lt;p&gt;For the full comparison that includes iPhone 12, see &lt;a href=&quot;https://aulvem.com/blog/2021-03-26-iphone12/&quot;&gt;how to pick an iPhone 12&lt;/a&gt;.&lt;/p&gt;
</content:encoded><category>guides</category><category>smartphone</category><category>apple</category></item><item><title>4K vs 1440p for Programming: How Many Lines of Code You See</title><link>https://aulvem.com/blog/2021-03-24-programming-monitor/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-24-programming-monitor/</guid><description>In this calculation, at 60 cm with text at the target size, a 24-inch shows 28–29 lines, a 27-inch 1440p 34 lines, and a 31.5-inch 41–42 lines. On a 27-inch, 1440p shows more lines than 4K because the table scales in preset steps. Calculated from official dimensions as of October 2026.</description><pubDate>Wed, 24 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;On a 27-inch screen, 1440p shows more lines of code than 4K. At 60 cm with text at the target size, 1440p shows 34 lines and 4K shows 28–29 lines, an estimate.&lt;/p&gt;
&lt;p&gt;A 31.5-inch 4K shows 41–42 lines in landscape, and a rotatable 23.8-inch 1080p (portrait) shows 58 lines.&lt;/p&gt;
&lt;p&gt;The target is that a capital letter (like A or H) looks 20 arcminutes tall to your eye. An arcminute is 1/60 of a degree, an angle rather than a time. Japan’s health ministry guidance recommends it for letters and digits.&lt;/p&gt;
&lt;p&gt;These are estimates from official dimensions, not lines counted on real screens.&lt;/p&gt;
&lt;h2 id=&quot;lines-of-code-by-screen&quot;&gt;Lines of code by screen&lt;/h2&gt;
&lt;p&gt;The line count follows the screen’s height and the scaling.
(Assumptions: VS Code’s default settings on Windows with Consolas, side bar, minimap and terminal closed, capital letters at 20 arcminutes, orientation listed in each row. Estimates from interface sizes, not counted on real screens)&lt;/p&gt;



























































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Screen&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Lines at 100% scaling&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Scaling for target size&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Lines at target size&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;23.8-inch 1080p (landscape)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;47–48 lines&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;150%&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;28–29 lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;27-inch 1080p (landscape)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;47–48 lines&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;150%&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;28–29 lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;27-inch 1440p (landscape)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;66–67 lines&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;175%&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;34 lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;27-inch 4K (landscape)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;104–105 lines&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;300%&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;28–29 lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;31.5-inch 4K (landscape)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;104–105 lines&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;225%&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;41–42 lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;34-inch ultrawide (landscape)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;66–67 lines&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;175%&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;34 lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;23.8-inch 1080p (portrait)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;91–92 lines&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;150%&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;58 lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;27-inch 4K (portrait)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;192–193 lines&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;300%&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;58 lines&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Scaling means how much the whole screen, text and menus included, is enlarged&lt;/li&gt;
&lt;li&gt;The table rounds scaling up to preset steps and counts lines at that scaling. The steps are this guide’s assumption, not checked against Windows’ own rules. Finer scaling would show the same lines or more&lt;/li&gt;
&lt;li&gt;In this calculation, at 100% scaling and 60 cm from the screen, capital letters on every screen in the table are smaller than the 20 arcminutes target&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;how-to-check-your-own-screen&quot;&gt;How to check your own screen&lt;/h2&gt;
&lt;p&gt;You can estimate your line count from your viewing distance and screen type.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Measure from your eyes to the screen.&lt;/strong&gt; Sit the way you normally do, and measure to the screen surface&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Find your screen’s size and resolution.&lt;/strong&gt; The spec sheet lists them, like “27-inch 3840×2160”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Find the closest row in the table.&lt;/strong&gt; If your distance differs, use the calculator below&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;A landscape 24-inch shows 36 lines from 50 cm and 23 lines from 70 cm, so lines fall as you move back&lt;/li&gt;
&lt;/ul&gt;
&lt;section id=&quot;code-lines-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;code-lines-calc-title&quot;&gt; &lt;h3 id=&quot;code-lines-calc-title&quot;&gt;Lines-of-code calculator by screen&lt;/h3&gt; &lt;p&gt;Pick a screen size, resolution, orientation and viewing distance to see how many lines of code fit.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;s2425hsm&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell S2425HSM&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71tkZ-GDTNL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell S2425HSM&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR4RLMKR?q=Dell+S2425HSM&amp;amp;us=B0G49SZ24N&amp;amp;l=en&quot; aria-label=&quot;View Dell S2425HSM on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;lg27us500&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG 27US500-W&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71ghM+g3BXL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG 27US500-W&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0D9R7Q449?q=LG+27US500-W&amp;amp;us=B0D9R7Q449&amp;amp;l=en&quot; aria-label=&quot;View LG 27US500-W on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;vp327q&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS VP327Q&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81p0NWfCISL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS VP327Q&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C7G6F8BY?q=ASUS+VP327Q&amp;amp;us=B0C7G6F8BY&amp;amp;l=en&quot; aria-label=&quot;View ASUS VP327Q on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, find the closest setup in the lines-per-screen table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;capRatio&quot;:0.63818359375,&quot;advRatio&quot;:0.5498046875,&quot;arcmin&quot;:20,&quot;chromeV&quot;:[162,174],&quot;chromeH&quot;:[62,70],&quot;decoW&quot;:26,&quot;numChars&quot;:5,&quot;winScales&quot;:[100,125,150,175,200,225,250,300,350,400,450,500],&quot;font&quot;:14,&quot;ratio&quot;:1.35,&quot;fontMac&quot;:12,&quot;ratioMac&quot;:1.5,&quot;panels&quot;:{&quot;p238fhd&quot;:{&quot;res&quot;:[1920,1080],&quot;mm&quot;:[527,296.5]},&quot;p27fhd&quot;:{&quot;res&quot;:[1920,1080],&quot;mm&quot;:[597.888,336.312]},&quot;p27qhd&quot;:{&quot;res&quot;:[2560,1440],&quot;mm&quot;:[596.7,335.7]},&quot;p27uhd&quot;:{&quot;res&quot;:[3840,2160],&quot;mm&quot;:[596.7,335.7]},&quot;p315uhd&quot;:{&quot;res&quot;:[3840,2160],&quot;mm&quot;:[697.3,392.2]},&quot;p34uw&quot;:{&quot;res&quot;:[3440,1440],&quot;mm&quot;:[799.8,334.8]}},&quot;labels&quot;:{&quot;p238fhd&quot;:{&quot;ja&quot;:&quot;23.8型 フルHD&quot;,&quot;en&quot;:&quot;23.8-inch 1080p&quot;},&quot;p27fhd&quot;:{&quot;ja&quot;:&quot;27型 フルHD&quot;,&quot;en&quot;:&quot;27-inch 1080p&quot;},&quot;p27qhd&quot;:{&quot;ja&quot;:&quot;27型 WQHD&quot;,&quot;en&quot;:&quot;27-inch 1440p&quot;},&quot;p27uhd&quot;:{&quot;ja&quot;:&quot;27型 4K&quot;,&quot;en&quot;:&quot;27-inch 4K&quot;},&quot;p315uhd&quot;:{&quot;ja&quot;:&quot;31.5型 4K&quot;,&quot;en&quot;:&quot;31.5-inch 4K&quot;},&quot;p34uw&quot;:{&quot;ja&quot;:&quot;34型 ウルトラワイド&quot;,&quot;en&quot;:&quot;34-inch ultrawide&quot;}},&quot;panelKeys&quot;:{&quot;24&quot;:{&quot;fhd&quot;:&quot;p238fhd&quot;},&quot;27&quot;:{&quot;fhd&quot;:&quot;p27fhd&quot;,&quot;qhd&quot;:&quot;p27qhd&quot;,&quot;uhd&quot;:&quot;p27uhd&quot;},&quot;32&quot;:{&quot;uhd&quot;:&quot;p315uhd&quot;},&quot;34&quot;:{&quot;uw&quot;:&quot;p34uw&quot;}},&quot;resLabels&quot;:{&quot;fhd&quot;:{&quot;ja&quot;:&quot;フルHD&quot;,&quot;en&quot;:&quot;1080p&quot;},&quot;qhd&quot;:{&quot;ja&quot;:&quot;WQHD&quot;,&quot;en&quot;:&quot;1440p&quot;},&quot;uhd&quot;:{&quot;ja&quot;:&quot;4K&quot;,&quot;en&quot;:&quot;4K&quot;},&quot;uw&quot;:{&quot;ja&quot;:&quot;3440×1440（ウルトラワイド）&quot;,&quot;en&quot;:&quot;3440×1440 (ultrawide)&quot;}},&quot;models&quot;:[{&quot;id&quot;:&quot;s2426hs&quot;,&quot;panel&quot;:&quot;p238fhd&quot;,&quot;pivot&quot;:true,&quot;diag&quot;:23.8,&quot;pitch&quot;:0.2745},{&quot;id&quot;:&quot;s2425hsm&quot;,&quot;panel&quot;:&quot;p238fhd&quot;,&quot;pivot&quot;:true,&quot;diag&quot;:23.8,&quot;pitch&quot;:0.2745},{&quot;id&quot;:&quot;s2425hsm_a&quot;,&quot;panel&quot;:&quot;p238fhd&quot;,&quot;pivot&quot;:true,&quot;diag&quot;:23.8,&quot;pitch&quot;:0.2745},{&quot;id&quot;:&quot;va24dqsb&quot;,&quot;panel&quot;:&quot;p238fhd&quot;,&quot;pivot&quot;:true,&quot;diag&quot;:23.8,&quot;pitch&quot;:0.2745},{&quot;id&quot;:&quot;s2725qc&quot;,&quot;panel&quot;:&quot;p27uhd&quot;,&quot;pivot&quot;:true,&quot;diag&quot;:27,&quot;pitch&quot;:0.1554},{&quot;id&quot;:&quot;s2725qc_a&quot;,&quot;panel&quot;:&quot;p27uhd&quot;,&quot;pivot&quot;:true,&quot;diag&quot;:27,&quot;pitch&quot;:0.1554},{&quot;id&quot;:&quot;s2725qs&quot;,&quot;panel&quot;:&quot;p27uhd&quot;,&quot;pivot&quot;:true,&quot;diag&quot;:27,&quot;pitch&quot;:0.1554},{&quot;id&quot;:&quot;lg27u711b&quot;,&quot;panel&quot;:&quot;p27uhd&quot;,&quot;pivot&quot;:false,&quot;diag&quot;:27,&quot;pitch&quot;:0.1554},{&quot;id&quot;:&quot;lg27u730a&quot;,&quot;panel&quot;:&quot;p27uhd&quot;,&quot;pivot&quot;:true,&quot;diag&quot;:27,&quot;pitch&quot;:null},{&quot;id&quot;:&quot;lg27us500&quot;,&quot;panel&quot;:&quot;p27uhd&quot;,&quot;pivot&quot;:false,&quot;diag&quot;:27,&quot;pitch&quot;:0.1554},{&quot;id&quot;:&quot;lg32uq850v&quot;,&quot;panel&quot;:&quot;p315uhd&quot;,&quot;pivot&quot;:true,&quot;diag&quot;:31.5,&quot;pitch&quot;:0.18159},{&quot;id&quot;:&quot;vp327q&quot;,&quot;panel&quot;:&quot;p315uhd&quot;,&quot;pivot&quot;:false,&quot;diag&quot;:31.5,&quot;pitch&quot;:0.182},{&quot;id&quot;:&quot;lg32ur550k&quot;,&quot;panel&quot;:&quot;p315uhd&quot;,&quot;pivot&quot;:true,&quot;diag&quot;:31.5,&quot;pitch&quot;:0.1816}],&quot;distOptions&quot;:[50,55,60,65,70,75,80,85,90,95,100],&quot;pickOnlySlots&quot;:true,&quot;buy&quot;:{&quot;s2426hs&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2426HS&quot;,&quot;en&quot;:&quot;Dell S2426HS&quot;,&quot;jp&quot;:&quot;B0HG8WCRFC&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0HG8WCRFC&quot;,&quot;title&quot;:&quot;Dell S2426HS&quot;,&quot;searchQuery&quot;:&quot;Dell S2426HS&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71qHI7MvGbL._AC_SL320_.jpg&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;s2425hsm&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2425HSM&quot;,&quot;en&quot;:&quot;Dell S2425HSM&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0G49SZ24N&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR4RLMKR&quot;,&quot;asinUS&quot;:&quot;B0G49SZ24N&quot;,&quot;title&quot;:&quot;Dell S2425HSM&quot;,&quot;searchQuery&quot;:&quot;Dell S2425HSM&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71tkZ-GDTNL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;lg27u711b&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG 27U711B-B&quot;,&quot;en&quot;:&quot;LG 27U711B-B&quot;,&quot;jp&quot;:&quot;B0GYPVGG2D&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GYPVGG2D&quot;,&quot;title&quot;:&quot;LG 27U711B-B&quot;,&quot;searchQuery&quot;:&quot;LG 27U711B-B&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71NDGee5qbL._AC_SL320_.jpg&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1},&quot;lg27us500&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG 27US500-W&quot;,&quot;en&quot;:&quot;LG 27US500-W&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0D9R7Q449&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0D9R7Q449&quot;,&quot;asinUS&quot;:&quot;B0D9R7Q449&quot;,&quot;title&quot;:&quot;LG 27US500-W&quot;,&quot;searchQuery&quot;:&quot;LG 27US500-W&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ghM+g3BXL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;lg32uq850v&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG 32UQ850V-W&quot;,&quot;en&quot;:&quot;LG 32UQ850V-W&quot;,&quot;jp&quot;:&quot;B0CTKBY3J3&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CTKBY3J3&quot;,&quot;title&quot;:&quot;LG 32UQ850V-W&quot;,&quot;searchQuery&quot;:&quot;LG 32UQ850V-W&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71mgIFT9aFL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4989027026315&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2},&quot;vp327q&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS VP327Q&quot;,&quot;en&quot;:&quot;ASUS VP327Q&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0C7G6F8BY&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0C7G6F8BY&quot;,&quot;asinUS&quot;:&quot;B0C7G6F8BY&quot;,&quot;title&quot;:&quot;ASUS VP327Q&quot;,&quot;searchQuery&quot;:&quot;ASUS VP327Q&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81p0NWfCISL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:2}},&quot;accessory&quot;:{&quot;ja&quot;:{},&quot;en&quot;:{}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;code-lines-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 前提（VS Code 1.140.0 の既定値。Windows）:
//   行の高さ = round(文字サイズ × 行の高さの倍率)            … fontInfo.ts
//   コードに使える高さ = 画面の縦ピクセル ÷ 倍率 − (タスクバー＋タイトルバー＋タブ＋パンくず＋ステータスバー)
//   コードに使える幅   = 画面の横ピクセル ÷ 倍率 − (アクティビティバー＋スクロールバー) − 行番号まわり
//   行番号まわり = グリフ余白（行の高さ）＋ round(5桁 × 数字の幅) ＋ 26（折りたたみ込みの装飾）
//   「倍率」は、文字を目安の大きさにするために画面全体（文字とメニュー）を拡大する割合。1未満にはしない

const ARCMIN = Math.PI / 180 / 60;

function lineHeight(font, ratio) {
  return Math.round(font * ratio);
}

// 画面の向きを考えた縦横のピクセル数と画素の大きさ（mm）
function geometry(panel, orient) {
  const [w, h] = panel.res;
  const pitch = panel.mm[0] / w;
  return orient === &quot;portrait&quot; ? { wpx: h, hpx: w, pitch } : { wpx: w, hpx: h, pitch };
}

// 目から画面まで dist（cm）で、英大文字の高さが arcmin 分になるのに必要な倍率（1未満なら1）
function needZoom({ dist, font, capRatio, pitch, arcmin }) {
  const req = dist * 10 * Math.tan(arcmin * ARCMIN); // mm
  // 表示する倍率（1%単位に切り上げ）で行数・桁数も計算する。表の「必要な倍率」と行数を同じ倍率にそろえるため
  return Math.max(1, Math.ceil((100 * req) / (font * capRatio * pitch) - 1e-9) / 100);
}

// 倍率 zoom のときの英大文字の見かけの大きさ（分）
function capArcmin({ dist, font, capRatio, pitch, zoom = 1 }) {
  return Math.atan((font * capRatio * pitch * zoom) / (dist * 10)) / ARCMIN;
}

function lines({ hpx, zoom, lineH, chromeV }) {
  return Math.floor((hpx / zoom - chromeV) / lineH);
}

function cols({ wpx, zoom, font, advRatio, lineH, chromeH, decoW, numChars }) {
  const adv = font * advRatio;
  const gutter = lineH + Math.round(numChars * adv) + decoW;
  return Math.floor((wpx / zoom - chromeH - gutter) / adv);
}

// 画素1つが角度 1分 未満になる距離（cm）
function pixelDist(pitch) {
  return pitch / Math.tan(ARCMIN) / 10;
}

// 1つの画面・向き・距離での結果。帯（chromeV・chromeH）は [下限, 上限] の両方で計算し、配列で返す
function evaluate({ panel, orient, dist, font, ratio }, M) {
  const g = geometry(panel, orient);
  const lineH = lineHeight(font, ratio);
  const zoom = needZoom({ dist, font, capRatio: M.capRatio, pitch: g.pitch, arcmin: M.arcmin });
  const L = (z) =&gt; M.chromeV.map((c) =&gt; lines({ hpx: g.hpx, zoom: z, lineH, chromeV: c }));
  const C = (z) =&gt; M.chromeH.map((c) =&gt; cols({ wpx: g.wpx, zoom: z, font, advRatio: M.advRatio, lineH, chromeH: c, decoW: M.decoW, numChars: M.numChars }));
  // Windows の表示倍率は刻み（M.winScales、%）でしか選べない。必要な倍率以上の最小の刻みに切り上げる
  const steps = M.winScales || [];
  const stepPct = steps.find((s) =&gt; s &gt;= zoom * 100 - 1e-9) ?? (steps.length ? steps[steps.length - 1] : zoom * 100);
  const zoomWin = stepPct / 100;
  return {
    zoom, zoomWin, lineH, pitch: g.pitch,
    lines100: L(1), cols100: C(1),
    linesRead: L(zoomWin), colsRead: C(zoomWin),
    linesCont: L(zoom), colsCont: C(zoom),
    cap100: capArcmin({ dist, font, capRatio: M.capRatio, pitch: g.pitch }),
    capPxRead: font * M.capRatio * zoomWin,
  };
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない。
// 入力は条件だけ（画面サイズ・解像度・向き・目から画面まで）。機種は選ばせず、合う条件の買える商品を picks で返す。

const T_ = {
  ja: {
    size: &quot;画面サイズ&quot;, res: &quot;解像度&quot;, orient: &quot;向き&quot;, land: &quot;横置き&quot;, port: &quot;縦置き&quot;, dist: &quot;目から画面まで&quot;,
    inch: (x) =&gt; `${x}インチ`, uw: &quot;ウルトラワイド&quot;,
    vOk: &quot;○ 100%のままで、文字を読みやすい大きさです&quot;, vCond: (s) =&gt; `△ 文字を読みやすくするには、倍率${s}%が要ります`,
    mYou: (x) =&gt; `あなた ${x}cm`, mOk: (x) =&gt; `100%で足りる 〜${x}cm`, pivot: &quot;縦置き対応&quot;, pitch: (x) =&gt; `画素の大きさ ${x}mm`, spec: (d, r) =&gt; `${d}インチ・${r}`,
    l100: (x) =&gt; `表示倍率100%のままで見える行数: ${x}`,
    zoom: (x, s) =&gt; `文字を目安の大きさにする倍率: ${x}%以上（Windowsで選べる刻みでは${s}%）`,
    read: (l, c) =&gt; `Windowsの刻みの倍率で見えるコード: ${l}（1行 ${c}）`,
    ok100: &quot;100%のままで文字は目安の大きさに届いています&quot;,
    lines: (a) =&gt; (a[0] === a[1] ? `${a[0]}行` : `${Math.min(...a)}〜${Math.max(...a)}行`),
    cols: (a) =&gt; (a[0] === a[1] ? `${a[0]}桁` : `${Math.min(...a)}〜${Math.max(...a)}桁`),
    note: &quot;VS Code（Windows）の標準設定とConsolasフォントから出した推定です。サイドバー・ミニマップ・ターミナルは閉じた状態で、倍率は画面全体を拡大する前提で、行数はWindowsの倍率の刻み（125%・150%など）に切り上げた値です。&quot;,
  },
  en: {
    size: &quot;Screen size&quot;, res: &quot;Resolution&quot;, orient: &quot;Orientation&quot;, land: &quot;Landscape&quot;, port: &quot;Portrait&quot;, dist: &quot;Eyes to screen&quot;,
    inch: (x) =&gt; `${x}&quot;`, uw: &quot;Ultrawide&quot;,
    vOk: &quot;✓ Text is readable at 100% scaling&quot;, vCond: (s) =&gt; `△ You need ${s}% scaling for readable text`,
    mYou: (x) =&gt; `You: ${x} cm`, mOk: (x) =&gt; `100% works up to ${x} cm`, pivot: &quot;Pivots to portrait&quot;, pitch: (x) =&gt; `Pixel pitch ${x} mm`, spec: (d, r) =&gt; `${d}-inch, ${r}`,
    l100: (x) =&gt; `Lines at 100% scaling: ${x}`,
    zoom: (x, s) =&gt; `Scaling for target-size text: ${x}% or more (${s}% at Windows&apos; preset steps)`,
    read: (l, c) =&gt; `Code you can see at that preset step: ${l} (${c} per line)`,
    ok100: &quot;Text already reaches the target size at 100%&quot;,
    lines: (a) =&gt; (a[0] === a[1] ? `${a[0]} lines` : `${Math.min(...a)}–${Math.max(...a)} lines`),
    cols: (a) =&gt; (a[0] === a[1] ? `${a[0]} columns` : `${Math.min(...a)}–${Math.max(...a)} columns`),
    note: &quot;An estimate based on VS Code&apos;s default settings on Windows and the Consolas font, with the side bar, minimap and terminal closed. Scaling assumes the whole screen is enlarged, and lines are counted at Windows&apos; preset scale steps (125%, 150% and so on), rounded up.&quot;,
  },
};

function fields(M, lang) {
  const t = T_[lang];
  const resOpts = (size) =&gt; Object.keys(M.panelKeys[size] || M.panelKeys[&quot;27&quot;]).map((r) =&gt; ({ value: r, label: r === &quot;uw&quot; ? t.uw : M.resLabels[r][lang] }));
  return [
    { name: &quot;size&quot;, type: &quot;select&quot;, label: t.size, value: &quot;27&quot;, options: Object.keys(M.panelKeys).map((x) =&gt; ({ value: x, label: t.inch(x) })) },
    { name: &quot;res&quot;, type: &quot;select&quot;, label: t.res, value: &quot;uhd&quot;, dependsOn: &quot;size&quot;, options: (v) =&gt; resOpts(v.size) },
    { name: &quot;orient&quot;, type: &quot;select&quot;, label: t.orient, value: &quot;landscape&quot;, dependsOn: &quot;size&quot;, options: (v) =&gt; (v.size === &quot;34&quot; ? [{ value: &quot;landscape&quot;, label: t.land }] : [{ value: &quot;landscape&quot;, label: t.land }, { value: &quot;portrait&quot;, label: t.port }]) },
    // 目から画面までは5cm刻み（米国OSHAの目安 50〜100cm）
    { name: &quot;dist&quot;, type: &quot;select&quot;, label: t.dist, value: &quot;60&quot;, options: M.distOptions.map((x) =&gt; ({ value: String(x), label: lang === &quot;ja&quot; ? `${x}cm` : `${x} cm (${Math.round(x / 2.54)} in)` })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const key = (M.panelKeys[v.size] || {})[v.res];
  const panel = key &amp;&amp; M.panels[key];
  const dist = Number(v.dist);
  if (!panel || !(dist &gt; 0)) return { status: &quot;error&quot;, lines: [] };
  const orient = v.orient === &quot;portrait&quot; &amp;&amp; v.size !== &quot;34&quot; ? &quot;portrait&quot; : &quot;landscape&quot;;
  const e = evaluate({ panel, orient, dist, font: M.font, ratio: M.ratio }, M);
  const lines = [t.l100(t.lines(e.lines100))];
  // 条件に合う機種（公式の仕様で確認済み。縦置きは縦横回転できるもの）を1つだけ出す（lib が買える出品だけに絞る）
  const picks = M.models.filter((x) =&gt; x.panel === key &amp;&amp; (orient === &quot;landscape&quot; || x.pivot)).map((x) =&gt; x.id);
  // メーター: 倍率100%のままで文字が目安の大きさに届く、目から画面までの距離の上限（0.1cm刻み）
  let lim = null;
  for (let x = 40; x &lt;= 100; x += 0.1) { if (evaluate({ panel, orient, dist: x, font: M.font, ratio: M.ratio }, M).zoom &lt;= 1) lim = x; else break; }
  const limR = lim == null ? null : Math.floor(lim * 10 + 1e-6) / 10;
  const meter = limR == null ? undefined : { min: 40, max: 100, value: dist, ok: [40, limR], unit: &quot;cm&quot;, valueLabel: t.mYou(dist), okLabel: t.mOk(limR) };
  if (e.zoom &gt; 1) {
    const s = Math.round(e.zoomWin * 100);
    lines.push(t.zoom(Math.ceil(e.zoom * 100 - 1e-9), s));
    lines.push(t.read(t.lines(e.linesRead), t.cols(e.colsRead)));
    return { status: &quot;cond&quot;, verdict: t.vCond(s), lines, picks, meter };
  }
  lines.push(t.ok100);
  return { status: &quot;ok&quot;, verdict: t.vOk, lines, picks, meter };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（サイズ×解像度×向き×距離）
function presets() {
  const out = [];
  for (const dist of [&quot;50&quot;, &quot;60&quot;, &quot;70&quot;]) out.push({ size: &quot;27&quot;, res: &quot;uhd&quot;, orient: &quot;landscape&quot;, dist });
  for (const dist of [&quot;60&quot;, &quot;70&quot;]) out.push({ size: &quot;27&quot;, res: &quot;qhd&quot;, orient: &quot;landscape&quot;, dist }, { size: &quot;32&quot;, res: &quot;uhd&quot;, orient: &quot;landscape&quot;, dist });
  out.push({ size: &quot;24&quot;, res: &quot;fhd&quot;, orient: &quot;landscape&quot;, dist: &quot;60&quot; }, { size: &quot;34&quot;, res: &quot;uw&quot;, orient: &quot;landscape&quot;, dist: &quot;60&quot; });
  for (const [size, res] of [[&quot;24&quot;, &quot;fhd&quot;], [&quot;27&quot;, &quot;uhd&quot;], [&quot;32&quot;, &quot;uhd&quot;]]) out.push({ size, res, orient: &quot;portrait&quot;, dist: &quot;60&quot; });
  return out;
}

// カードに出す仕様（その商品の画面サイズと解像度、縦置きなら回転対応、横置きなら画素の大きさ。メーカー仕様の値だけ）
function pickSpecs(id, v, M, lang) {
  const m = M.models.find((x) =&gt; x.id === id);
  if (!m) return [];
  const [w, h] = M.panels[m.panel].res;
  const out = [T_[lang].spec(m.diag, `${w}×${h}`)];
  if (v.orient === &quot;portrait&quot;) { if (m.pivot) out.push(T_[lang].pivot); }
  else if (m.pitch) out.push(T_[lang].pitch(m.pitch));
  return out;
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;pills&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;27-inch-4k-or-1440p&quot;&gt;27-inch: 4K or 1440p?&lt;/h2&gt;
&lt;p&gt;For more lines, pick 1440p; for finer text, pick 4K. At 60 cm, the three 27-inch types come out like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1080p: needs 126% or more, table scaling 150%, 28–29 lines&lt;/li&gt;
&lt;li&gt;1440p: needs 168% or more, table scaling 175%, 34 lines&lt;/li&gt;
&lt;li&gt;4K: needs 252% or more, table scaling 300%, 28–29 lines&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;4K must jump to a much larger step, so it shows fewer lines. If you could set the scaling more finely than the preset steps, a 27-inch would show 35–36 lines at 1080p, 1440p and 4K alike, within 1 line of each other. Among the screens in the table, only the 27-inch 4K has pixels smaller than the angle the eye can resolve (1 arcminute) from 60 cm.&lt;/p&gt;
&lt;p&gt;At other distances, a 27-inch 4K needs different scaling:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;50 cm (19.7 in) to 59.6 cm: 250%&lt;/li&gt;
&lt;li&gt;Over 59.6 cm to 71.5 cm: 300%&lt;/li&gt;
&lt;li&gt;Over 71.5 cm to 83.5 cm: 350%&lt;/li&gt;
&lt;li&gt;Over 83.5 cm: scaling higher than 350%&lt;/li&gt;
&lt;li&gt;Right at each upper limit, it is borderline&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;portrait-mode-more-lines-fewer-columns&quot;&gt;Portrait mode: more lines, fewer columns&lt;/h2&gt;
&lt;p&gt;Turning a screen to portrait adds many lines, and fewer columns (characters per line) fit. Column counts assume line numbers of 5 digits or fewer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;At 60 cm with text at the target size, a portrait 24-inch shows 58 lines, more than a landscape 31.5-inch (41–42 lines). A portrait 24-inch fits 73–74 columns per line, so neither PEP 8’s 79 characters nor Prettier’s default of 80 characters fits&lt;/li&gt;
&lt;li&gt;A portrait 27-inch 4K fits 73–74 columns per line, so Black’s default of 88 characters does not fit&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Common line-length limits come from coding tools.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PEP 8 (Python’s style guide): 79 characters&lt;/li&gt;
&lt;li&gt;Prettier (a formatter for JavaScript and more), by default: 80 characters&lt;/li&gt;
&lt;li&gt;Black (a Python formatter), by default: 88 characters&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To use portrait, choose a monitor whose spec sheet lists pivot (it rotates).&lt;/p&gt;
&lt;h2 id=&quot;ultrawide-and-dual-monitors&quot;&gt;Ultrawide and dual monitors&lt;/h2&gt;
&lt;p&gt;If you want more width, use an ultrawide or two identical monitors side by side. Lines follow screen height and scaling.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;34-inch ultrawide (landscape): 34 lines&lt;/li&gt;
&lt;li&gt;Two 27-inch 1440p screens: 34 lines on each&lt;/li&gt;
&lt;li&gt;27-inch 4K (landscape): 28–29 lines&lt;/li&gt;
&lt;li&gt;31.5-inch 4K (landscape): 41–42 lines&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more code stacked vertically, pick a taller screen or portrait. To keep code and reference material on separate screens, pick dual monitors. A 34-inch ultrawide shows 34 lines, the same as a 27-inch 1440p screen of the same height, with more columns at 235–236 columns.&lt;/p&gt;
&lt;h2 id=&quot;picks-for-programming&quot;&gt;Picks for programming&lt;/h2&gt;
&lt;p&gt;One pick per use. These were not tested in person. Every line count here is an estimate at 60 cm, target-size text and the table’s scaling.&lt;/p&gt;
&lt;p&gt;Of the models checked, each pick has maker-confirmed size and resolution, and is the cheapest, shipping included, that meets all of these:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New on Amazon.com&lt;/li&gt;
&lt;li&gt;At least 100 ratings and 4 stars or more&lt;/li&gt;
&lt;li&gt;Not an import, and the same model number as the official spec&lt;/li&gt;
&lt;li&gt;For portrait picks, the maker’s official spec page confirms the screen can pivot (rotate)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Check the price on the store page.&lt;/p&gt;
&lt;h3 id=&quot;for-more-lines-in-portrait-238-inch-1080p-can-rotate&quot;&gt;For more lines in portrait (23.8-inch 1080p, can rotate)&lt;/h3&gt;
&lt;p&gt;58 lines in portrait and 28–29 lines in landscape.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell S2425HSM&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71tkZ-GDTNL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell S2425HSM&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR4RLMKR?q=Dell+S2425HSM&amp;amp;us=B0G49SZ24N&amp;amp;l=en&quot; aria-label=&quot;View Dell S2425HSM on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;for-sharp-text-on-a-27-inch-27-inch-4k&quot;&gt;For sharp text on a 27-inch (27-inch 4K)&lt;/h3&gt;
&lt;p&gt;28–29 lines, fewer than a 27-inch 1440p (34 lines), but with finer text. It needs 300% scaling.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG 27US500-W&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71ghM+g3BXL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG 27US500-W&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0D9R7Q449?q=LG+27US500-W&amp;amp;us=B0D9R7Q449&amp;amp;l=en&quot; aria-label=&quot;View LG 27US500-W on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;for-more-lines-in-landscape-315-inch-4k&quot;&gt;For more lines in landscape (31.5-inch 4K)&lt;/h3&gt;
&lt;p&gt;41–42 lines, more than a 27-inch 4K (28–29 lines). Make sure your desk is deep enough.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS VP327Q&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81p0NWfCISL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS VP327Q&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C7G6F8BY?q=ASUS+VP327Q&amp;amp;us=B0C7G6F8BY&amp;amp;l=en&quot; aria-label=&quot;View ASUS VP327Q on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;4k-or-1440p-for-programming-on-a-27-inch&quot;&gt;4K or 1440p for programming on a 27-inch?&lt;/h3&gt;
&lt;p&gt;Pick 4K for sharper text and 1440p for more lines. In this calculation, at 60 cm with text at the target size, a 27-inch shows 28–29 lines at 1080p, 34 lines at 1440p and 28–29 lines at 4K.&lt;/p&gt;
&lt;p&gt;Among the screens in the table, only the 27-inch 4K has pixels smaller than the angle the eye can resolve (1 arcminute) from 60 cm.&lt;/p&gt;
&lt;h3 id=&quot;is-a-24-inch-or-27-inch-monitor-better-for-coding&quot;&gt;Is a 24-inch or 27-inch monitor better for coding?&lt;/h3&gt;
&lt;p&gt;For more code on screen, a 27-inch 1440p shows more than a 24-inch. In this calculation, at 60 cm with text at the target size, a 24-inch shows 28–29 lines, a 27-inch 1440p 34 lines, and a 31.5-inch 41–42 lines.&lt;/p&gt;
&lt;p&gt;At 60 cm with text at the target size, a 27-inch 4K shows the same 28–29 lines as a 24-inch 1080p in the table’s preset scale steps.&lt;/p&gt;
&lt;h3 id=&quot;how-many-lines-of-code-fit-in-portrait-mode&quot;&gt;How many lines of code fit in portrait mode?&lt;/h3&gt;
&lt;p&gt;In portrait a 24-inch shows 58 lines, well above 28–29 lines in landscape. This is an estimate at 60 cm (23.6 in) with text at the target size.&lt;/p&gt;
&lt;h3 id=&quot;does-a-mac-show-a-different-number-of-lines&quot;&gt;Does a Mac show a different number of lines?&lt;/h3&gt;
&lt;p&gt;Yes, the defaults differ. VS Code’s default on a Mac is 12 px text with 1.5× line height, against 14 px and 1.35× on Windows.&lt;/p&gt;
&lt;p&gt;This guide uses the Windows defaults and has not checked the Mac default font’s dimensions, so it gives no Mac line counts.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Calculated from official dimensions and default settings as of October 2026. Screen sizes: &lt;a href=&quot;https://www.eizo.co.jp/support/db/files/spec/Datasheet_EV2490.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;EIZO EV2490&lt;/a&gt;, &lt;a href=&quot;https://www.eizo.co.jp/support/db/files/spec/Datasheet_EV2740X.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;EIZO EV2740X&lt;/a&gt;, &lt;a href=&quot;https://www.eizo.co.jp/support/db/files/spec/Datasheet_EV2795.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;EIZO EV2795&lt;/a&gt;, &lt;a href=&quot;https://www.eizo.co.jp/support/db/files/spec/Datasheet_EV3240X.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;EIZO EV3240X&lt;/a&gt;, &lt;a href=&quot;https://www.eizo.co.jp/support/db/files/spec/Datasheet_EV3450XC.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;EIZO EV3450XC&lt;/a&gt;, &lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/eye-care/va24dqsb/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ASUS 23.8-inch 1080p&lt;/a&gt;. Pixel size: &lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell 27-inch 1080p&lt;/a&gt;, &lt;a href=&quot;https://dl.dell.com/content/manual2537948-dell-s2725ds-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell 27-inch 1440p&lt;/a&gt;, &lt;a href=&quot;https://www.dell.com/ja-jp/shop/monitors/apd/dell-27-plus-4k-usb-c%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-s2725qc/s2725qc_monitor/-&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell 27-inch 4K&lt;/a&gt;. Picks’ official specs (including pivot): &lt;a href=&quot;https://www.dell.com/en-us/shop/monitors/apd/dell-24-plus-monitor-s2425hsm/s2425hsm/-&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell S2425HSM&lt;/a&gt;, &lt;a href=&quot;https://www.lg.com/us/monitors/lg-27us500-w-4k-uhd-monitor&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;LG 27US500-W&lt;/a&gt;, &lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/eye-care/vp327q/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ASUS VP327Q&lt;/a&gt;. VS Code defaults: &lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/editor/common/config/fontInfo.ts&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;fontInfo.ts&lt;/a&gt;. Text size target: &lt;a href=&quot;https://www.mhlw.go.jp/content/000539604.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Japan’s health ministry guidance (PDF)&lt;/a&gt;. Pixel visibility: &lt;a href=&quot;https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.1845-1-201003-I!!MSW-E.docx&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ITU-R BT.1845&lt;/a&gt;. Line length: &lt;a href=&quot;https://peps.python.org/pep-0008/#maximum-line-length&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;PEP 8&lt;/a&gt;, &lt;a href=&quot;https://prettier.io/docs/options#print-width&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Prettier&lt;/a&gt;, &lt;a href=&quot;https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html#line-length&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Black&lt;/a&gt;. The font is Windows’ Consolas, and other fonts change the results. The 34-inch ultrawide’s size was not cross-checked against another maker.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Lines = floor((screen height in px ÷ scaling − top/bottom UI bands) ÷ 19 px line height). Line height = round(14 px × 1.35), the VS Code defaults on Windows&lt;/li&gt;
&lt;li&gt;The UI bands use a range: 162 px in the classic layout (taskbar 48, title bar 35, tabs 35, breadcrumbs 22, status bar 22) to 174 px in Modern UI (tab 33, status bar +6, card margins 4×2, an estimate). Bottom panels such as the terminal are assumed closed. Lines are computed for both and shown as a range such as 28–29 when they differ&lt;/li&gt;
&lt;li&gt;The 48 px taskbar had no official source and was measured in this guide’s working environment (Windows 11 10.0.26200). How Modern UI card margins apply is estimated from constants in the source&lt;/li&gt;
&lt;li&gt;Scaling = max(1, target capital height ÷ (14 px font × 0.638 capital ratio × pixel pitch)). Target capital height = 60 cm × tan(20 arcminutes), from Japan’s health-ministry guidance. The capital ratio is Consolas’s font-file value (1307/2048); other fonts change the result&lt;/li&gt;
&lt;li&gt;The table’s scaling is the need rounded up to the smallest of 100, 125, 150, 175, 200, 225, 250, 300, 350, 400, 450, 500% (this guide’s assumption, not verified against Windows’ own rules). Examples: 27-inch 1440p 168% → 175%; 27-inch 4K 252% → 300%&lt;/li&gt;
&lt;li&gt;Pixel pitch comes from each maker’s official specs (screen size ÷ pixel count): 27-inch 4K 0.1554 mm, 1440p 0.2331 mm, 1080p 0.3114 mm&lt;/li&gt;
&lt;li&gt;Columns = floor((screen width in px ÷ scaling − left/right UI bands − gutter) ÷ character advance). Advance = 14 px × 1126/2048; gutter = 19 px line height + 5 digits of advance + 26 px. Side bar and minimap closed, line numbers up to 5 digits; the side bands range from 62 px (classic) to 70 px (Modern UI)&lt;/li&gt;
&lt;li&gt;Distance cutoffs are rounded down to one decimal (for example, 250% is enough up to 59.6 cm on a 27-inch 4K). ‘Pixel under 1 arcminute’ uses ITU-R BT.1845’s 1 arcminute&lt;/li&gt;
&lt;li&gt;Lines were not counted on real screens. Mac line counts are omitted because Menlo’s dimensions were not confirmed&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;






































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;VS Code default font size (Windows)&lt;/td&gt;&lt;td&gt;14 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/editor/common/config/fontInfo.ts#L239-L241&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; EDITOR_FONT_DEFAULTS.fontSize: platform.isMacintosh ? 12 : 14&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VS Code default font size (Mac)&lt;/td&gt;&lt;td&gt;12 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/editor/common/config/fontInfo.ts#L239-L241&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; isMacintosh ? 12 : 14&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VS Code line-height ratio (Windows)&lt;/td&gt;&lt;td&gt;1.35×&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/editor/common/config/fontInfo.ts#L14&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; GOLDEN_LINE_HEIGHT_RATIO = platform.isMacintosh ? 1.5 : 1.35&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VS Code line-height ratio (Mac)&lt;/td&gt;&lt;td&gt;1.5×&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/editor/common/config/fontInfo.ts#L14&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; macOS 1.5&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Title bar height&lt;/td&gt;&lt;td&gt;35 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/platform/window/common/window.ts#L380&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Tab height (Modern UI / classic)&lt;/td&gt;&lt;td&gt;32–35 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/workbench/browser/parts/editor/editorTabsControl.ts#L106-L114&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; EDITOR_TAB_HEIGHT normal 35 / modernUI 32&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Breadcrumbs height&lt;/td&gt;&lt;td&gt;22 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/workbench/browser/parts/editor/breadcrumbsControl.ts#L237&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; BreadcrumbsControl.HEIGHT = 22&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Status bar height&lt;/td&gt;&lt;td&gt;22 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/workbench/browser/parts/statusbar/statusbarPart.ts#L124&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; StatusbarPart.HEIGHT = 22&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Modern UI is the default&lt;/td&gt;&lt;td&gt;true&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/workbench/browser/workbench.contribution.ts#L834-L839&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Modern UI status bar padding&lt;/td&gt;&lt;td&gt;6 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/workbench/browser/parts/statusbar/statusbarPart.ts#L131-L146&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Modern UI card margin&lt;/td&gt;&lt;td&gt;4 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/workbench/services/layout/browser/layoutService.ts#L77&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Modern UI activity bar width&lt;/td&gt;&lt;td&gt;36 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts#L55&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Activity bar width&lt;/td&gt;&lt;td&gt;48 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts#L50&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; ACTIVITYBAR_WIDTH = 48&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Scrollbar width&lt;/td&gt;&lt;td&gt;14 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/editor/common/config/editorOptions.ts#L4218&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; verticalScrollbarSize: 14&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Line decoration width&lt;/td&gt;&lt;td&gt;26 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/editor/common/config/editorOptions.ts#L3352&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Line-number digits&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/microsoft/vscode/blob/1.140.0/src/vs/editor/common/config/editorOptions.ts#L6465-L6466&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows taskbar height (measured)&lt;/td&gt;&lt;td&gt;48 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdpiforwindow&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Consolas capital height&lt;/td&gt;&lt;td&gt;1307&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/typography/font-list/consolas&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Consolas advance width&lt;/td&gt;&lt;td&gt;1126&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/typography/font-list/consolas&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Consolas units per em&lt;/td&gt;&lt;td&gt;2048&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/typography/font-list/consolas&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;23.8-inch screen height&lt;/td&gt;&lt;td&gt;296.5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/support/db/files/spec/Datasheet_EV2490.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;23.8-inch screen width&lt;/td&gt;&lt;td&gt;527 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/support/db/files/spec/Datasheet_EV2490.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 1080p pixel size&lt;/td&gt;&lt;td&gt;0.3114 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch screen height&lt;/td&gt;&lt;td&gt;335.7 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/support/db/files/spec/Datasheet_EV2740X.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch screen width&lt;/td&gt;&lt;td&gt;596.7 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/support/db/files/spec/Datasheet_EV2740X.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt; 596.7&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 4K pixel size&lt;/td&gt;&lt;td&gt;0.1554 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/ja-jp/shop/monitors/apd/dell-27-plus-4k-usb-c%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-s2725qc/s2725qc_monitor/-&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 1440p pixel size&lt;/td&gt;&lt;td&gt;0.2331 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2537948-dell-s2725ds-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; Dell S2725DS 0.2331&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;31.5-inch screen height&lt;/td&gt;&lt;td&gt;392.2 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/support/db/files/spec/Datasheet_EV3240X.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;31.5-inch screen width&lt;/td&gt;&lt;td&gt;697.3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/support/db/files/spec/Datasheet_EV3240X.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt; 697.3&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;34-inch ultrawide screen height&lt;/td&gt;&lt;td&gt;334.8 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/support/db/files/spec/Datasheet_EV3450XC.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;34-inch ultrawide screen width&lt;/td&gt;&lt;td&gt;799.8 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/support/db/files/spec/Datasheet_EV3450XC.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt; 799.8&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Text size guide (MHLW)&lt;/td&gt;&lt;td&gt;20 arcminutes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.mhlw.go.jp/content/000539604.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;mhlw.go.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Text size upper guide (MHLW)&lt;/td&gt;&lt;td&gt;22 arcminutes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.mhlw.go.jp/content/000539604.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;mhlw.go.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Character size guide (MHLW)&lt;/td&gt;&lt;td&gt;3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.mhlw.go.jp/content/000539604.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;mhlw.go.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Pixel visibility angle (ITU)&lt;/td&gt;&lt;td&gt;1 arcminute&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.1845-1-201003-I!!MSW-E.docx&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;itu.int&lt;/a&gt; optimal viewing distance: adjacent pixels subtend 1 arc-minute&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Viewing distance guide, minimum&lt;/td&gt;&lt;td&gt;50 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;osha.gov&lt;/a&gt; 20-40 in (50-100 cm)&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Viewing distance guide, maximum&lt;/td&gt;&lt;td&gt;100 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;osha.gov&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PEP 8 line length&lt;/td&gt;&lt;td&gt;79 characters&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://peps.python.org/pep-0008/#maximum-line-length&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;peps.python.org&lt;/a&gt; Limit all lines to a maximum of 79 characters.&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Prettier default line length&lt;/td&gt;&lt;td&gt;80 characters&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://prettier.io/docs/options#print-width&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;prettier.io&lt;/a&gt; Print Width Default 80&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Black default line length&lt;/td&gt;&lt;td&gt;88 characters&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html#line-length&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;black.readthedocs.io&lt;/a&gt; Black defaults to 88 characters per line&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Google Java Style line length&lt;/td&gt;&lt;td&gt;100 characters&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://google.github.io/styleguide/javaguide.html#s4.4-column-limit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;google.github.io&lt;/a&gt; Java code has a column limit of 100 characters.&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;rustfmt default line length&lt;/td&gt;&lt;td&gt;100 characters&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/rust-lang/rustfmt/blob/master/Configurations.md#max_width&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; max_width Default value: 100&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Lines-of-code calculator by screen: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;





































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;27”, 4K, Landscape, 50 cm (20 in)&lt;/td&gt;&lt;td&gt;△ You need 225% scaling for readable text. Lines at 100% scaling: 104–105 lines. Scaling for target-size text: 210% or more (225% at Windows’ preset steps). Code you can see at that preset step: 41–42 lines (201–202 columns per line)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-24-programming-monitor/?code-lines-calc-size=27&amp;amp;code-lines-calc-res=uhd&amp;amp;code-lines-calc-orient=landscape&amp;amp;code-lines-calc-dist=50#code-lines-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27”, 4K, Landscape, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;△ You need 300% scaling for readable text. Lines at 100% scaling: 104–105 lines. Scaling for target-size text: 252% or more (300% at Windows’ preset steps). Code you can see at that preset step: 28–29 lines (146–147 columns per line)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-24-programming-monitor/?code-lines-calc-size=27&amp;amp;code-lines-calc-res=uhd&amp;amp;code-lines-calc-orient=landscape&amp;amp;code-lines-calc-dist=60#code-lines-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27”, 4K, Landscape, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;△ You need 300% scaling for readable text. Lines at 100% scaling: 104–105 lines. Scaling for target-size text: 294% or more (300% at Windows’ preset steps). Code you can see at that preset step: 28–29 lines (146–147 columns per line)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-24-programming-monitor/?code-lines-calc-size=27&amp;amp;code-lines-calc-res=uhd&amp;amp;code-lines-calc-orient=landscape&amp;amp;code-lines-calc-dist=70#code-lines-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27”, 1440p, Landscape, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;△ You need 175% scaling for readable text. Lines at 100% scaling: 66–67 lines. Scaling for target-size text: 168% or more (175% at Windows’ preset steps). Code you can see at that preset step: 34 lines (170–171 columns per line)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-24-programming-monitor/?code-lines-calc-size=27&amp;amp;code-lines-calc-res=qhd&amp;amp;code-lines-calc-orient=landscape&amp;amp;code-lines-calc-dist=60#code-lines-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32”, 4K, Landscape, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;△ You need 225% scaling for readable text. Lines at 100% scaling: 104–105 lines. Scaling for target-size text: 216% or more (225% at Windows’ preset steps). Code you can see at that preset step: 41–42 lines (201–202 columns per line)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-24-programming-monitor/?code-lines-calc-size=32&amp;amp;code-lines-calc-res=uhd&amp;amp;code-lines-calc-orient=landscape&amp;amp;code-lines-calc-dist=60#code-lines-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27”, 1440p, Landscape, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;△ You need 200% scaling for readable text. Lines at 100% scaling: 66–67 lines. Scaling for target-size text: 196% or more (200% at Windows’ preset steps). Code you can see at that preset step: 28–29 lines (146–147 columns per line)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-24-programming-monitor/?code-lines-calc-size=27&amp;amp;code-lines-calc-res=qhd&amp;amp;code-lines-calc-orient=landscape&amp;amp;code-lines-calc-dist=70#code-lines-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32”, 4K, Landscape, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;△ You need 300% scaling for readable text. Lines at 100% scaling: 104–105 lines. Scaling for target-size text: 252% or more (300% at Windows’ preset steps). Code you can see at that preset step: 28–29 lines (146–147 columns per line)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-24-programming-monitor/?code-lines-calc-size=32&amp;amp;code-lines-calc-res=uhd&amp;amp;code-lines-calc-orient=landscape&amp;amp;code-lines-calc-dist=70#code-lines-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;24”, 1080p, Landscape, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;△ You need 150% scaling for readable text. Lines at 100% scaling: 47–48 lines. Scaling for target-size text: 143% or more (150% at Windows’ preset steps). Code you can see at that preset step: 28–29 lines (146–147 columns per line)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-24-programming-monitor/?code-lines-calc-size=24&amp;amp;code-lines-calc-res=fhd&amp;amp;code-lines-calc-orient=landscape&amp;amp;code-lines-calc-dist=60#code-lines-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;34”, Ultrawide, Landscape, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;△ You need 175% scaling for readable text. Lines at 100% scaling: 66–67 lines. Scaling for target-size text: 169% or more (175% at Windows’ preset steps). Code you can see at that preset step: 34 lines (235–236 columns per line)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-24-programming-monitor/?code-lines-calc-size=34&amp;amp;code-lines-calc-res=uw&amp;amp;code-lines-calc-orient=landscape&amp;amp;code-lines-calc-dist=60#code-lines-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;24”, 1080p, Portrait, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;△ You need 150% scaling for readable text. Lines at 100% scaling: 91–92 lines. Scaling for target-size text: 143% or more (150% at Windows’ preset steps). Code you can see at that preset step: 58 lines (73–74 columns per line)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-24-programming-monitor/?code-lines-calc-size=24&amp;amp;code-lines-calc-res=fhd&amp;amp;code-lines-calc-orient=portrait&amp;amp;code-lines-calc-dist=60#code-lines-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27”, 4K, Portrait, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;△ You need 300% scaling for readable text. Lines at 100% scaling: 192–193 lines. Scaling for target-size text: 252% or more (300% at Windows’ preset steps). Code you can see at that preset step: 58 lines (73–74 columns per line)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-24-programming-monitor/?code-lines-calc-size=27&amp;amp;code-lines-calc-res=uhd&amp;amp;code-lines-calc-orient=portrait&amp;amp;code-lines-calc-dist=60#code-lines-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32”, 4K, Portrait, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;△ You need 225% scaling for readable text. Lines at 100% scaling: 192–193 lines. Scaling for target-size text: 216% or more (225% at Windows’ preset steps). Code you can see at that preset step: 80–81 lines (104–105 columns per line)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-24-programming-monitor/?code-lines-calc-size=32&amp;amp;code-lines-calc-res=uhd&amp;amp;code-lines-calc-orient=portrait&amp;amp;code-lines-calc-dist=60#code-lines-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>monitor</category><category>programming</category></item><item><title>How to Choose an HDMI Cable: 4K at 120Hz Needs Ultra High Speed</title><link>https://aulvem.com/blog/2021-03-23-hdmi/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-23-hdmi/</guid><description>Pick an HDMI cable by how much video data you need to send. Per HDMI.org&apos;s video table, 4K at 120Hz, even 8- to 12-bit 4:4:4, is a format an Ultra High Speed cable carries uncompressed. In this calculation, 4K at 60Hz HDR (10-bit) in full 4:4:4 needs at least 15.67 Gbps, more than the 14.4 Gbps a Premium High Speed cable can carry as video. With 4:2:0 chroma subsampling it fits Premium High Speed. Worked out from HDMI.org&apos;s information as of October 2026.</description><pubDate>Tue, 23 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Choose an Ultra High Speed certified HDMI cable for 4K at 120Hz. For 4K at 60Hz, the table below shows when Premium High Speed is enough.&lt;/p&gt;
&lt;p&gt;A cable’s category is set by how much data it can carry, not by the version number of your devices.&lt;/p&gt;
&lt;h2 id=&quot;which-cable-each-video-format-needs&quot;&gt;Which cable each video format needs&lt;/h2&gt;
&lt;p&gt;Find the row for the video you want to send. The category shown is the one that is enough. A category’s bandwidth includes encoding overhead, so less of it is left for video.&lt;/p&gt;
&lt;p&gt;Rows are full 4:4:4 color unless marked 4:2:0.&lt;/p&gt;
&lt;p&gt;4:4:4 sends all the color detail, and 4:2:0 sends less to save data. Bit depth is color precision: 8-bit is SDR, 10-bit is HDR.&lt;/p&gt;
&lt;p&gt;In this calculation, 4K at 60Hz HDR (10-bit) in full 4:4:4 needs at least 15.67 Gbps, more than the 14.4 Gbps a Premium High Speed cable can carry as video. With 4:2:0 chroma subsampling it fits Premium High Speed.&lt;/p&gt;
&lt;p&gt;DSC needs support on both the source device and the display.&lt;/p&gt;
&lt;p&gt;The video data each category can carry is 8.16 Gbps for High Speed, 14.4 Gbps for Premium High Speed and 42.66 Gbps for Ultra High Speed.&lt;/p&gt;
&lt;p&gt;Assumptions: uncompressed data rates, as a range between PC and TV signal timings. HDR is counted as 10-bit, and 4K at 120Hz and up and 8K follow HDMI.org’s video table&lt;/p&gt;




























































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Video format&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Video data needed&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Category that is enough&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;1080p at 60Hz, 8-bit&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3.19–3.57 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;High Speed or better&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;1080p at 120Hz, 8-bit&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;6.58–7.13 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;High Speed or better&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;1440p at 144Hz, 8-bit&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;14.07–14.2 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Premium High Speed or better (borderline)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4K at 60Hz, 8-bit&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;12.54–14.26 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Premium High Speed or better (borderline)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4K at 60Hz, 10-bit (HDR)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;15.67–17.82 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Ultra High Speed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4K at 60Hz, 10-bit (HDR), 4:2:0&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;7.83–8.91 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Premium High Speed or better&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4K at 120Hz, 10-bit (HDR)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;32.24–35.64 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Ultra High Speed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4K at 144Hz, 10-bit (HDR)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;37.5–39.19 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Ultra High Speed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;8K at 60Hz, 10-bit (HDR)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;62.05–71.28 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Ultra High Speed + DSC&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;8K at 60Hz, 10-bit (HDR), 4:2:0&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;31.02–35.64 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Ultra High Speed&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;“Borderline” means less than 3% of the cable’s capacity is left over&lt;/li&gt;
&lt;li&gt;“DSC” compresses the video before sending&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At up to 4K and 144Hz with up to 10-bit color (HDR), an Ultra High Speed cable is enough whether or not the chroma is subsampled. For other formats, use the table or the calculator below.&lt;/p&gt;
&lt;h2 id=&quot;check-your-own-setup-with-the-calculator&quot;&gt;Check your own setup with the calculator&lt;/h2&gt;
&lt;p&gt;Pick your resolution, refresh rate and color depth, and it shows which cable category is enough. You can also pick a game console. For some formats, the answer comes from HDMI.org’s table instead of a bandwidth calculation.&lt;/p&gt;
&lt;section id=&quot;hdmi-cable-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;hdmi-cable-calc-title&quot;&gt; &lt;h3 id=&quot;hdmi-cable-calc-title&quot;&gt;Which HDMI cable category you need (from the data rate)&lt;/h3&gt; &lt;p&gt;Pick a console, or a resolution, refresh rate and color depth, to see how much video data it needs and whether High Speed, Premium High Speed or Ultra High Speed is enough, plus one certified cable that fits.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;300016&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters Premium Certified HDMI Cable (300016)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71Vvx4inaML._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters Premium Certified HDMI Cable (300016)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B005BZG8G4?q=Cable+Matters+Premium+Certified+HDMI+Cable+%28300016%29&amp;amp;us=B005BZG8G4&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters Premium Certified HDMI Cable (300016) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;elecom_uhs_2m&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ELECOM ECDH-HD21E20BK&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61gtgWNZfYL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ELECOM ECDH-HD21E20BK&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CL6H35DY?q=ELECOM+ECDH-HD21E20BK&amp;amp;l=en&quot; aria-label=&quot;View ELECOM ECDH-HD21E20BK on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;ECDH-HD21E20BK&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ELECOM ECDH-HD21E20BK&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61gtgWNZfYL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ELECOM ECDH-HD21E20BK&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CL6H35DY?q=ELECOM+ECDH-HD21E20BK&amp;amp;l=en&quot; aria-label=&quot;View ELECOM ECDH-HD21E20BK on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;anker_uhs&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Anker HDMI Cable (8K) A8742&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61ipbFnqFUL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Anker HDMI Cable (8K) A8742&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CFV3C779?q=Anker+HDMI+Cable+%288K%29+A8742&amp;amp;us=B0CFV3C779&amp;amp;l=en&quot; aria-label=&quot;View Anker HDMI Cable (8K) A8742 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;A8742&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Anker HDMI Cable (8K) A8742&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61ipbFnqFUL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Anker HDMI Cable (8K) A8742&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CFV3C779?q=Anker+HDMI+Cable+%288K%29+A8742&amp;amp;us=B0CFV3C779&amp;amp;l=en&quot; aria-label=&quot;View Anker HDMI Cable (8K) A8742 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;cablematters_premium_6ft&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters Premium Certified HDMI Cable (300016)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71Vvx4inaML._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters Premium Certified HDMI Cable (300016)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B005BZG8G4?q=Cable+Matters+Premium+Certified+HDMI+Cable+%28300016%29&amp;amp;us=B005BZG8G4&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters Premium Certified HDMI Cable (300016) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;res&quot;:{&quot;1080p&quot;:{&quot;w&quot;:1920,&quot;h&quot;:1080},&quot;1440p&quot;:{&quot;w&quot;:2560,&quot;h&quot;:1440},&quot;4k&quot;:{&quot;w&quot;:3840,&quot;h&quot;:2160},&quot;8k&quot;:{&quot;w&quot;:7680,&quot;h&quot;:4320}},&quot;resName&quot;:{&quot;1080p&quot;:{&quot;ja&quot;:&quot;フルHD（1080p）&quot;,&quot;en&quot;:&quot;1080p&quot;},&quot;1440p&quot;:{&quot;ja&quot;:&quot;WQHD（1440p）&quot;,&quot;en&quot;:&quot;1440p&quot;},&quot;4k&quot;:{&quot;ja&quot;:&quot;4K&quot;,&quot;en&quot;:&quot;4K&quot;},&quot;8k&quot;:{&quot;ja&quot;:&quot;8K&quot;,&quot;en&quot;:&quot;8K&quot;}},&quot;timing&quot;:{&quot;hBlank&quot;:80,&quot;minVBlankUs&quot;:460,&quot;vSync&quot;:8,&quot;vBackMin&quot;:6,&quot;vFrontMin&quot;:1},&quot;known&quot;:{&quot;1080p@60&quot;:[148.5],&quot;1080p@120&quot;:[297],&quot;1440p@144&quot;:[591.31],&quot;4k@30&quot;:[297],&quot;4k@60&quot;:[533.25,594],&quot;4k@120&quot;:[1074.73,1188],&quot;4k@144&quot;:[1250],&quot;8k@60&quot;:[2376]},&quot;table&quot;:{&quot;4k@120&quot;:{&quot;8_444&quot;:&quot;uhs&quot;,&quot;8_420&quot;:&quot;uhs&quot;,&quot;10_444&quot;:&quot;uhs&quot;,&quot;10_420&quot;:&quot;uhs&quot;,&quot;12_444&quot;:&quot;uhs&quot;,&quot;12_420&quot;:&quot;uhs&quot;},&quot;4k@144&quot;:{&quot;8_444&quot;:&quot;uhs&quot;,&quot;8_420&quot;:&quot;uhs&quot;,&quot;10_444&quot;:&quot;uhs&quot;,&quot;10_420&quot;:&quot;uhs&quot;,&quot;12_444&quot;:&quot;dsc&quot;,&quot;12_420&quot;:&quot;uhs&quot;},&quot;4k@240&quot;:{&quot;8_444&quot;:&quot;dsc&quot;,&quot;8_420&quot;:&quot;uhs&quot;,&quot;10_444&quot;:&quot;dsc&quot;,&quot;10_420&quot;:&quot;uhs&quot;,&quot;12_444&quot;:&quot;dsc&quot;,&quot;12_420&quot;:&quot;uhs&quot;},&quot;8k@60&quot;:{&quot;8_444&quot;:&quot;dsc&quot;,&quot;8_420&quot;:&quot;uhs&quot;,&quot;10_444&quot;:&quot;dsc&quot;,&quot;10_420&quot;:&quot;uhs&quot;,&quot;12_444&quot;:&quot;dsc&quot;,&quot;12_420&quot;:&quot;uhs&quot;}},&quot;dscRatio&quot;:3,&quot;tightRatio&quot;:0.03,&quot;cats&quot;:{&quot;hs&quot;:{&quot;payload&quot;:8.16,&quot;rate&quot;:10.2,&quot;ja&quot;:&quot;High Speed&quot;,&quot;en&quot;:&quot;High Speed&quot;},&quot;premium&quot;:{&quot;payload&quot;:14.4,&quot;rate&quot;:18,&quot;ja&quot;:&quot;Premium High Speed&quot;,&quot;en&quot;:&quot;Premium High Speed&quot;},&quot;uhs&quot;:{&quot;payload&quot;:42.666666666666664,&quot;rate&quot;:48,&quot;ja&quot;:&quot;Ultra High Speed&quot;,&quot;en&quot;:&quot;Ultra High Speed&quot;}},&quot;hzOptions&quot;:{&quot;1080p&quot;:[60,120,144,240],&quot;1440p&quot;:[60,120,144,165,240],&quot;4k&quot;:[30,60,120,144,240],&quot;8k&quot;:[60]},&quot;capLabel&quot;:{&quot;hs&quot;:8.16,&quot;premium&quot;:14.4,&quot;uhs&quot;:42.660000000000004},&quot;need&quot;:{&quot;hs&quot;:{&quot;ja&quot;:&quot;High Speed 以上&quot;,&quot;en&quot;:&quot;High Speed or better&quot;},&quot;hs_t&quot;:{&quot;ja&quot;:&quot;High Speed 以上（ぎりぎり）&quot;,&quot;en&quot;:&quot;High Speed or better (borderline)&quot;},&quot;premium&quot;:{&quot;ja&quot;:&quot;Premium High Speed 以上&quot;,&quot;en&quot;:&quot;Premium High Speed or better&quot;},&quot;premium_t&quot;:{&quot;ja&quot;:&quot;Premium High Speed 以上（ぎりぎり）&quot;,&quot;en&quot;:&quot;Premium High Speed or better (borderline)&quot;},&quot;uhs&quot;:{&quot;ja&quot;:&quot;Ultra High Speed&quot;,&quot;en&quot;:&quot;Ultra High Speed&quot;},&quot;uhs_t&quot;:{&quot;ja&quot;:&quot;Ultra High Speed（ぎりぎり）&quot;,&quot;en&quot;:&quot;Ultra High Speed (borderline)&quot;},&quot;uhs_cond&quot;:{&quot;ja&quot;:&quot;Ultra High Speed（機器の信号しだい）&quot;,&quot;en&quot;:&quot;Ultra High Speed (depends on the signal)&quot;},&quot;dsc&quot;:{&quot;ja&quot;:&quot;Ultra High Speed＋DSC&quot;,&quot;en&quot;:&quot;Ultra High Speed + DSC&quot;},&quot;over&quot;:{&quot;ja&quot;:&quot;48Gbps では不足&quot;,&quot;en&quot;:&quot;Over 48 Gbps&quot;}},&quot;devices&quot;:{&quot;ps5&quot;:{&quot;res&quot;:&quot;4k&quot;,&quot;hz&quot;:120,&quot;ja&quot;:&quot;PS5（4K・120Hz）&quot;,&quot;en&quot;:&quot;PS5 (4K at 120Hz)&quot;},&quot;xsx&quot;:{&quot;res&quot;:&quot;4k&quot;,&quot;hz&quot;:120,&quot;ja&quot;:&quot;Xbox Series X（4K・120Hz）&quot;,&quot;en&quot;:&quot;Xbox Series X (4K at 120Hz)&quot;},&quot;sw2_4k&quot;:{&quot;res&quot;:&quot;4k&quot;,&quot;hz&quot;:60,&quot;ja&quot;:&quot;Switch 2（4K・60Hz）&quot;,&quot;en&quot;:&quot;Switch 2 (4K at 60Hz)&quot;},&quot;sw2_1440&quot;:{&quot;res&quot;:&quot;1440p&quot;,&quot;hz&quot;:120,&quot;ja&quot;:&quot;Switch 2（1440p・120Hz）&quot;,&quot;en&quot;:&quot;Switch 2 (1440p at 120Hz)&quot;},&quot;sw2_1080&quot;:{&quot;res&quot;:&quot;1080p&quot;,&quot;hz&quot;:120,&quot;ja&quot;:&quot;Switch 2（1080p・120Hz）&quot;,&quot;en&quot;:&quot;Switch 2 (1080p at 120Hz)&quot;}},&quot;slotIds&quot;:{&quot;uhs&quot;:[&quot;elecom_uhs_2m&quot;,&quot;anker_uhs&quot;,&quot;sanwa_direct_uhs_2m&quot;,&quot;horic_uhs_2m&quot;],&quot;premium&quot;:[&quot;elecom_premium_2m&quot;,&quot;cablematters_premium_6ft&quot;]},&quot;cables&quot;:{&quot;elecom_uhs_2m&quot;:{&quot;cat&quot;:&quot;uhs&quot;,&quot;rate&quot;:48,&quot;length&quot;:2},&quot;anker_uhs&quot;:{&quot;cat&quot;:&quot;uhs&quot;,&quot;rate&quot;:48,&quot;length&quot;:1.8},&quot;sanwa_direct_uhs_2m&quot;:{&quot;cat&quot;:&quot;uhs&quot;,&quot;rate&quot;:48,&quot;length&quot;:2},&quot;horic_uhs_2m&quot;:{&quot;cat&quot;:&quot;uhs&quot;,&quot;rate&quot;:48,&quot;length&quot;:2},&quot;elecom_premium_2m&quot;:{&quot;cat&quot;:&quot;premium&quot;,&quot;rate&quot;:18,&quot;length&quot;:2},&quot;cablematters_premium_6ft&quot;:{&quot;cat&quot;:&quot;premium&quot;,&quot;rate&quot;:18,&quot;length&quot;:1.8}},&quot;buy&quot;:{&quot;300016&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Cable Matters Premium Certified HDMI ケーブル（300016）&quot;,&quot;en&quot;:&quot;Cable Matters Premium Certified HDMI Cable (300016)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B005BZG8G4&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B005BZG8G4&quot;,&quot;asinUS&quot;:&quot;B005BZG8G4&quot;,&quot;title&quot;:&quot;Cable Matters Premium Certified HDMI Cable (300016)&quot;,&quot;searchQuery&quot;:&quot;Cable Matters Premium Certified HDMI Cable (300016)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71Vvx4inaML._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;elecom_uhs_2m&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;エレコム ECDH-HD21E20BK&quot;,&quot;en&quot;:&quot;ELECOM ECDH-HD21E20BK&quot;,&quot;jp&quot;:&quot;B0CL6H35DY&quot;,&quot;us&quot;:&quot;B0CL6H35DY&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CL6H35DY&quot;,&quot;title&quot;:&quot;エレコム ECDH-HD21E20BK&quot;,&quot;searchQuery&quot;:&quot;エレコム ECDH-HD21E20BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61gtgWNZfYL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549550299572&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0CL6H35DY&quot;,&quot;title&quot;:&quot;ELECOM ECDH-HD21E20BK&quot;,&quot;searchQuery&quot;:&quot;ELECOM ECDH-HD21E20BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61gtgWNZfYL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:2},&quot;ECDH-HD21E20BK&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;エレコム ECDH-HD21E20BK&quot;,&quot;en&quot;:&quot;ELECOM ECDH-HD21E20BK&quot;,&quot;jp&quot;:&quot;B0CL6H35DY&quot;,&quot;us&quot;:&quot;B0CL6H35DY&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CL6H35DY&quot;,&quot;title&quot;:&quot;エレコム ECDH-HD21E20BK&quot;,&quot;searchQuery&quot;:&quot;エレコム ECDH-HD21E20BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61gtgWNZfYL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549550299572&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0CL6H35DY&quot;,&quot;title&quot;:&quot;ELECOM ECDH-HD21E20BK&quot;,&quot;searchQuery&quot;:&quot;ELECOM ECDH-HD21E20BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61gtgWNZfYL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:2},&quot;elecom_premium_2m&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;エレコム ECDH-HDPES20BK&quot;,&quot;en&quot;:&quot;ELECOM ECDH-HDPES20BK&quot;,&quot;jp&quot;:&quot;B0CL6H3YJ9&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CL6H3YJ9&quot;,&quot;title&quot;:&quot;エレコム ECDH-HDPES20BK&quot;,&quot;searchQuery&quot;:&quot;エレコム ECDH-HDPES20BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/511MKFm2jOL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549550299671&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;ECDH-HDPES20BK&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;エレコム ECDH-HDPES20BK&quot;,&quot;en&quot;:&quot;ELECOM ECDH-HDPES20BK&quot;,&quot;jp&quot;:&quot;B0CL6H3YJ9&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CL6H3YJ9&quot;,&quot;title&quot;:&quot;エレコム ECDH-HDPES20BK&quot;,&quot;searchQuery&quot;:&quot;エレコム ECDH-HDPES20BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/511MKFm2jOL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549550299671&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;anker_uhs&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Anker HDMI ケーブル（8K）A8742&quot;,&quot;en&quot;:&quot;Anker HDMI Cable (8K) A8742&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0CFV3C779&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0CFV3C779&quot;,&quot;asinUS&quot;:&quot;B0CFV3C779&quot;,&quot;title&quot;:&quot;Anker HDMI Cable (8K) A8742&quot;,&quot;searchQuery&quot;:&quot;Anker HDMI Cable (8K) A8742&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61ipbFnqFUL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;A8742&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Anker HDMI ケーブル（8K）A8742&quot;,&quot;en&quot;:&quot;Anker HDMI Cable (8K) A8742&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0CFV3C779&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0CFV3C779&quot;,&quot;asinUS&quot;:&quot;B0CFV3C779&quot;,&quot;title&quot;:&quot;Anker HDMI Cable (8K) A8742&quot;,&quot;searchQuery&quot;:&quot;Anker HDMI Cable (8K) A8742&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61ipbFnqFUL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;horic_uhs_2m&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;ホーリック HDM20-610GD&quot;,&quot;en&quot;:&quot;HORIC HDM20-610GD&quot;,&quot;jp&quot;:&quot;B09GTY23Y5&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B09GTY23Y5&quot;,&quot;title&quot;:&quot;ホーリック HDM20-610GD&quot;,&quot;searchQuery&quot;:&quot;ホーリック HDM20-610GD&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51yxJUqSKtL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4533115066105&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2},&quot;HDM20-610GD&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;ホーリック HDM20-610GD&quot;,&quot;en&quot;:&quot;HORIC HDM20-610GD&quot;,&quot;jp&quot;:&quot;B09GTY23Y5&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B09GTY23Y5&quot;,&quot;title&quot;:&quot;ホーリック HDM20-610GD&quot;,&quot;searchQuery&quot;:&quot;ホーリック HDM20-610GD&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51yxJUqSKtL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4533115066105&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2},&quot;cablematters_premium_6ft&quot;:{&quot;type&quot;:&quot;cable&quot;,&quot;ja&quot;:&quot;Cable Matters Premium Certified HDMI ケーブル（300016）&quot;,&quot;en&quot;:&quot;Cable Matters Premium Certified HDMI Cable (300016)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B005BZG8G4&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B005BZG8G4&quot;,&quot;asinUS&quot;:&quot;B005BZG8G4&quot;,&quot;title&quot;:&quot;Cable Matters Premium Certified HDMI Cable (300016)&quot;,&quot;searchQuery&quot;:&quot;Cable Matters Premium Certified HDMI Cable (300016)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71Vvx4inaML._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;cable&quot;:&quot;elecom_uhs_2m&quot;},&quot;en&quot;:{&quot;cable&quot;:&quot;anker_uhs&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;hdmi-cable-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// cvtRb2 / rateOf / linkFit は guides/2021-03-19-four-k-monitor/model.mjs と同じ（帯域の計算をそろえるため、そのまま写した）。
// この記事で足したのは、色の間引き（4:2:0）と、ケーブルの区分ごとの判定（cableFit）だけ。

// ---- 帯域（VESA CVT 1.2 の Reduced Blanking v2 で、1秒あたりに送る画素の数） ----
// 横のブランキングは hBlank 画素、縦のブランキングは minVBlankUs マイクロ秒以上（かつ 前＋同期＋後 の行数以上）
function cvtRb2(w, h, hz, t) {
  const hTotal = w + t.hBlank;
  const hPeriodUs = (1e6 / hz - t.minVBlankUs) / h; // 1行の時間の見積もり
  let vbi = Math.floor(t.minVBlankUs / hPeriodUs) + 1;
  vbi = Math.max(vbi, t.vFrontMin + t.vSync + t.vBackMin);
  const vTotal = h + vbi;
  const pclkMHz = Math.floor((hz * vTotal * hTotal) / 1e3) / 1e3; // 0.001MHz 単位で切り捨て
  return { hTotal, vTotal, pclkMHz };
}

// 画素クロック（MHz）と1色あたりのビット数（RGB）から、必要なデータ量（Gbps）
function rateOf(pclkMHz, bpc) {
  return (pclkMHz * bpc * 3) / 1000;
}

// 接続ごとの判定。rates = [少ない側, 多い側]（Gbps）、link = { payload, dsc }
//   ok: 多い側でも圧縮なしで送れる / tight: 送れるが余裕が tightRatio 未満 / cond: タイミングしだい
//   dsc: 圧縮（DSC、最大 dscRatio 分の1）を使えば送れる / ng: この計算では足りない
function linkFit(rates, link, m) {
  const [lo, hi] = rates;
  if (hi &lt;= link.payload) return (link.payload - hi) / link.payload &lt; m.tightRatio ? &quot;tight&quot; : &quot;ok&quot;;
  if (lo &lt;= link.payload) return &quot;cond&quot;;
  if (link.dsc &amp;&amp; hi / m.dscRatio &lt;= link.payload) return &quot;dsc&quot;;
  return &quot;ng&quot;;
}

// ---- ここから、この記事で足したもの ----
// 色の間引き: 4:4:4（RGB と同じ）は1画素あたり 3色分、4:2:0 は 1.5色分（明るさ1＋色2つを4画素で共有）
const CHROMA_FACTOR = { &quot;444&quot;: 1, &quot;420&quot;: 0.5 };

// 1つの映像（解像度・Hz）の画素クロックの幅（MHz）。CVT-RB2 の式の値と、テレビ用の規格（CTA-861）やメーカー資料の値の最小〜最大
function pclkRange(sig, m) {
  const R = m.res[sig.res];
  const pcs = [cvtRb2(R.w, R.h, sig.hz, m.timing).pclkMHz, ...(m.known[`${sig.res}@${sig.hz}`] || [])];
  return [Math.min(...pcs), Math.max(...pcs)];
}

// 必要なデータ量の幅（Gbps）= 画素クロック × 色深度 × 3 × 間引きの係数 ÷ 1000
function dataRange(sig, m) {
  return pclkRange(sig, m).map((p) =&gt; rateOf(p, sig.bpc) * CHROMA_FACTOR[sig.chroma]);
}

// HDMI.org の対応表（HDMI Video Table）にある形式なら、その判定（&quot;uhs&quot; = Ultra High Speed で圧縮なし / &quot;dsc&quot; = Ultra High Speed＋DSC か Ultra96）。表に無ければ null
function tableCell(sig, m) {
  const row = m.table[`${sig.res}@${sig.hz}`];
  return row ? row[`${sig.bpc}_${sig.chroma}`] ?? null : null;
}

// ケーブルの区分ごとの判定と、足りるいちばん下の区分。
//   区分: hs = High Speed、premium = Premium High Speed（どちらも TMDS）、uhs = Ultra High Speed（FRL）
//   High Speed・Premium は linkFit（圧縮なし。表にある形式は &quot;na&quot;）。Ultra High Speed は、HDMI.org の表にある形式は表のとおり、無ければ linkFit（DSC つき）
//   need: 足りるいちばん下の区分（ok か tight）。どれも足りなければ &quot;dsc&quot;（Ultra High Speed＋DSC）か &quot;over&quot;（48Gbps＋DSC でも足りない）
function cableFit(sig, m) {
  const rates = dataRange(sig, m);
  const fits = {};
  const cell = tableCell(sig, m);
  // 表にある形式（4K・100Hz以上、8K）は、HDMI.org が Ultra High Speed か Ultra96 を要るとしているので、High Speed・Premium では判定しない（&quot;na&quot;）
  for (const k of [&quot;hs&quot;, &quot;premium&quot;]) fits[k] = cell ? &quot;na&quot; : linkFit(rates, { payload: m.cats[k].payload, dsc: false }, m);
  const u = linkFit(rates, { payload: m.cats.uhs.payload, dsc: true }, m);
  // 表で「圧縮なしで送れる」形式は、計算の多い側が容量をわずかに超えても送れる扱い（HDMI.org の表を優先）。余裕は ぎりぎり（tight）にする
  fits.uhs = cell === &quot;uhs&quot; ? (u === &quot;ok&quot; ? &quot;ok&quot; : &quot;tight&quot;) : cell === &quot;dsc&quot; ? (rates[1] / m.dscRatio &lt;= m.cats.uhs.payload ? &quot;dsc&quot; : &quot;ng&quot;) : u;
  const need = [&quot;hs&quot;, &quot;premium&quot;, &quot;uhs&quot;].find((k) =&gt; fits[k] === &quot;ok&quot; || fits[k] === &quot;tight&quot;) || (fits.uhs === &quot;dsc&quot; ? &quot;dsc&quot; : fits.uhs === &quot;cond&quot; ? &quot;uhs_cond&quot; : &quot;over&quot;);
  return { rates, fits, cell, need };
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（ゲーム機か、解像度・Hz・色深度・色の間引き）。ケーブルは選ばせず、足りるいちばん下の区分の認証ケーブルを1つ出す。
// 結果: ruler（帯の物差し 1 行。2026-10-15 に型 A のメーターから移した）。Gbps の物差しに High Speed・Premium・Ultra の区切り、判定した区分が映像に使える量を塗り、要る量の印。
// 値は model.mjs の cableFit と M.capLabel のまま（前のメーターと同じ値の並べ替え）
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    mode: &quot;選び方&quot;, byDev: &quot;ゲーム機から&quot;, byRes: &quot;解像度から&quot;, dev: &quot;ゲーム機&quot;, res: &quot;解像度&quot;, hz: &quot;リフレッシュレート&quot;, depth: &quot;色深度&quot;, chroma: &quot;色の間引き&quot;,
    d8: &quot;SDR（8bit）&quot;, d10: &quot;HDR（10bit）&quot;, d12: &quot;12bit&quot;, c444: &quot;なし（4:4:4）&quot;, c420: &quot;あり（4:2:0）&quot;,
    key: { mode: &quot;選び方&quot;, hz: &quot;Hz&quot;, chroma: &quot;間引き&quot; }, sh: { d8: &quot;SDR&quot;, d10: &quot;HDR&quot;, c444: &quot;なし&quot;, c420: &quot;4:2:0&quot;, byDev: &quot;ゲーム機&quot;, byRes: &quot;解像度&quot; }, resShort: { &quot;1080p&quot;: &quot;フルHD&quot;, &quot;1440p&quot;: &quot;WQHD&quot; }, rKey: &quot;ケーブル&quot;, rNeed: (x) =&gt; `要る ${x}`,
    rate: (x) =&gt; `必要な映像データ: ${x}（圧縮なし）`,
    caps: (h, p, u) =&gt; `ケーブルが映像に使える量: High Speed ${h}・Premium High Speed ${p}・Ultra High Speed ${u}`,
    margin: (c, x) =&gt; `${c} の余裕は${x}%です`,
    tightUp: &quot;余裕を取るなら Ultra High Speed にします&quot;,
    condLow: (c) =&gt; `機器の信号しだいでは ${c} でも足ります`,
    table: (dsc) =&gt; dsc ? &quot;HDMI.org の対応表では、この形式は Ultra High Speed＋DSC（圧縮）か Ultra96 です&quot; : &quot;HDMI.org の対応表では、この形式は Ultra High Speed で圧縮なしに送れます&quot;,
    tableOver: &quot;テレビ向けの信号で計算すると容量をわずかに超えるので、ぎりぎりです&quot;,
    dsc: &quot;DSC は、送る機器とテレビの両方が対応しているときだけ使えます&quot;,
    alt420: (x) =&gt; `色を間引く（4:2:0）なら: ${x}`,
    alt444: (x) =&gt; `色を間引かない（4:4:4）なら: ${x}`,
    devNote: &quot;ゲーム機がどの色の形式で送るかは公表されていないので、間引きの有無を切り替えて確かめてください&quot;,
    pickNote: &quot;候補は、認証ラベルで確かめられる Premium High Speed のケーブルです&quot;,
    vHs: &quot;○ High Speed 以上のケーブルで足ります&quot;, vHsT: &quot;△ High Speed ではぎりぎりです&quot;, vPr: &quot;○ Premium High Speed で足ります&quot;, vPrT: &quot;△ Premium High Speed でぎりぎり足ります&quot;,
    vU: &quot;△ Ultra High Speed が要ります&quot;, vUT: &quot;△ Ultra High Speed が要ります（余裕はぎりぎり）&quot;, vUC: &quot;△ Ultra High Speed でもぎりぎりです（機器の信号しだい）&quot;,
    vDsc: &quot;△ Ultra High Speed＋DSC（圧縮）が要ります&quot;, vOver: &quot;✕ Ultra High Speed では、圧縮しても足りません&quot;,
    note: &quot;結果は計算の目安です。必要な映像データは圧縮なしで、PC向け（VESA CVT-RB2）とテレビ向け（CTA-861）の信号の幅で計算しています。ケーブルの長さは計算に入れていません。候補は、メーカーの公式ページが認証と書いている型番から選んでいます。&quot;,
  },
  en: {
    mode: &quot;Pick by&quot;, byDev: &quot;Console&quot;, byRes: &quot;Resolution&quot;, dev: &quot;Console&quot;, res: &quot;Resolution&quot;, hz: &quot;Refresh rate&quot;, depth: &quot;Color depth&quot;, chroma: &quot;Chroma subsampling&quot;,
    d8: &quot;SDR (8-bit)&quot;, d10: &quot;HDR (10-bit)&quot;, d12: &quot;12-bit&quot;, c444: &quot;None (4:4:4)&quot;, c420: &quot;4:2:0&quot;,
    key: { mode: &quot;Pick by&quot;, res: &quot;Res.&quot;, hz: &quot;Refresh&quot;, depth: &quot;Color&quot;, chroma: &quot;Chroma&quot; }, sh: { d8: &quot;SDR&quot;, d10: &quot;HDR&quot;, c444: &quot;None&quot;, byRes: &quot;Res.&quot; }, resShort: {}, rKey: &quot;Cable&quot;, rNeed: (x) =&gt; `Need ${x}`,
    rate: (x) =&gt; `Video data needed: ${x} (uncompressed)`,
    caps: (h, p, u) =&gt; `What each cable carries as video: High Speed ${h}, Premium High Speed ${p}, Ultra High Speed ${u}`,
    margin: (c, x) =&gt; `${c} has ${x}% to spare`,
    tightUp: &quot;For more headroom, go Ultra High Speed&quot;,
    condLow: (c) =&gt; `Depending on the device&apos;s signal, ${c} may also work`,
    table: (dsc) =&gt; dsc ? &quot;In HDMI.org&apos;s video table, this format needs Ultra High Speed + DSC (compression) or Ultra96&quot; : &quot;In HDMI.org&apos;s video table, Ultra High Speed carries this format uncompressed&quot;,
    tableOver: &quot;With TV signal timings the math lands just over capacity, so it&apos;s borderline&quot;,
    dsc: &quot;DSC only works when both the source and the TV support it&quot;,
    alt420: (x) =&gt; `With 4:2:0 subsampling: ${x}`,
    alt444: (x) =&gt; `Without subsampling (4:4:4): ${x}`,
    devNote: &quot;Consoles don&apos;t publish which chroma format they send, so try both settings&quot;,
    pickNote: &quot;The pick is a Premium High Speed cable, which you can verify by its certification label&quot;,
    vHs: &quot;✓ A High Speed cable or better is enough&quot;, vHsT: &quot;△ High Speed is borderline&quot;, vPr: &quot;✓ Premium High Speed is enough&quot;, vPrT: &quot;△ Premium High Speed just fits&quot;,
    vU: &quot;△ You need Ultra High Speed&quot;, vUT: &quot;△ You need Ultra High Speed (borderline)&quot;, vUC: &quot;△ Even Ultra High Speed is borderline (depends on the signal)&quot;,
    vDsc: &quot;△ You need Ultra High Speed + DSC (compression)&quot;, vOver: &quot;✕ Ultra High Speed falls short even with compression&quot;,
    note: &quot;This is a calculated estimate. Video data is uncompressed, as a range between PC (VESA CVT-RB2) and TV (CTA-861) signal timings. Cable length isn&apos;t part of the math. Picks come from models whose maker&apos;s official page states the certification.&quot;,
  },
};

// 札に出すゲーム機の短い名前（括弧の中の解像度・Hz は選択肢の一覧に残す）
const DEV_SHORT_ = { ps5: &quot;PS5&quot;, xsx: &quot;Xbox X&quot;, sw2_4k: &quot;Switch2 4K&quot;, sw2_1440: &quot;Switch2 1440p&quot;, sw2_1080: &quot;Switch2 1080p&quot; };
// 物差しの区切りの名前（区分の名前の短い形）
const CUT_ = { hs: &quot;High Speed&quot;, premium: &quot;Premium&quot;, uhs: &quot;Ultra&quot; };
const G_ = (x, lang) =&gt; `${Number(x.toFixed(2))}${lang === &quot;ja&quot; ? &quot;Gbps&quot; : &quot; Gbps&quot;}`;

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;mode&quot;, type: &quot;select&quot;, label: t.mode, value: &quot;res&quot;, options: [{ value: &quot;dev&quot;, label: t.byDev, short: t.sh.byDev }, { value: &quot;res&quot;, label: t.byRes, short: t.sh.byRes }] },
    // ゲーム機は、各社の公式ページにある最大の設定（解像度・Hz）だけ
    { name: &quot;dev&quot;, type: &quot;select&quot;, label: t.dev, value: &quot;ps5&quot;, when: (s) =&gt; s.mode === &quot;dev&quot;, options: Object.entries(M.devices).map(([k, d]) =&gt; ({ value: k, label: d[lang], short: DEV_SHORT_[k] })) },
    { name: &quot;res&quot;, type: &quot;select&quot;, label: t.res, short: t.key.res, value: &quot;4k&quot;, when: (s) =&gt; s.mode !== &quot;dev&quot;, options: Object.keys(M.hzOptions).map((k) =&gt; ({ value: k, label: M.resName[k][lang], short: t.resShort[k] })) },
    { name: &quot;hz&quot;, type: &quot;select&quot;, label: t.hz, short: t.key.hz, value: &quot;60&quot;, when: (s) =&gt; s.mode !== &quot;dev&quot;, dependsOn: &quot;res&quot;, options: (s) =&gt; (M.hzOptions[s.res] || M.hzOptions[&quot;4k&quot;]).map((x) =&gt; ({ value: String(x), label: `${x}Hz` })) },
    // HDR は10bit で計算する。ゲーム機は SDR / HDR だけ（12bit は出さない）
    { name: &quot;depth&quot;, type: &quot;select&quot;, label: t.depth, short: t.key.depth, value: &quot;8&quot;, dependsOn: &quot;mode&quot;, options: (s) =&gt; (s.mode === &quot;dev&quot; ? [&quot;8&quot;, &quot;10&quot;] : [&quot;8&quot;, &quot;10&quot;, &quot;12&quot;]).map((x) =&gt; ({ value: x, label: t[&quot;d&quot; + x], short: t.sh[&quot;d&quot; + x] })) },
    { name: &quot;chroma&quot;, type: &quot;select&quot;, label: t.chroma, short: t.key.chroma, value: &quot;444&quot;, options: [{ value: &quot;444&quot;, label: t.c444, short: t.sh.c444 }, { value: &quot;420&quot;, label: t.c420, short: t.sh.c420 }] },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const d = v.mode === &quot;dev&quot; ? M.devices[v.dev] : null;
  const res = d ? d.res : v.res, hz = d ? d.hz : Number(v.hz);
  let bpc = Number(v.depth);
  if (d &amp;&amp; bpc === 12) bpc = 10;
  const chroma = v.chroma === &quot;420&quot; ? &quot;420&quot; : &quot;444&quot;;
  if (!M.res[res] || !(M.hzOptions[res] || []).includes(hz) || ![8, 10, 12].includes(bpc)) return { status: &quot;error&quot;, lines: [] };
  const r = cableFit({ res, hz, bpc, chroma }, M);
  const [lo, hi] = r.rates;
  // 表示の丸め: 少ない側は切り捨て、多い側は切り上げ（本文の早見表と同じ）
  const loS = Math.floor(lo * 100 + 1e-9) / 100, hiS = Math.ceil(hi * 100 - 1e-9) / 100;
  const rateS = loS === hiS || hi - lo &lt; 1e-9 ? G_(hiS, lang) : `${G_(loS, lang).replace(/\s?Gbps$/, &quot;&quot;)}${lang === &quot;ja&quot; ? &quot;〜&quot; : &quot;–&quot;}${G_(hiS, lang)}`;
  const cap = (k) =&gt; M.capLabel[k];
  const name = (k) =&gt; M.cats[k][lang];
  const pct = (k) =&gt; Math.floor(((M.cats[k].payload - hi) / M.cats[k].payload) * 1000 + 1e-9) / 10;
  const lines = [t.rate(rateS), t.caps(G_(cap(&quot;hs&quot;), lang), G_(cap(&quot;premium&quot;), lang), G_(cap(&quot;uhs&quot;), lang))];
  let status, verdict, picks, mcat;
  const tight = (k) =&gt; r.fits[k] === &quot;tight&quot;;
  if (r.need === &quot;hs&quot;) { mcat = &quot;hs&quot;; status = tight(&quot;hs&quot;) ? &quot;cond&quot; : &quot;ok&quot;; verdict = tight(&quot;hs&quot;) ? t.vHsT : t.vHs; picks = M.slotIds.premium; lines.push(t.pickNote); }
  else if (r.need === &quot;premium&quot;) { mcat = &quot;premium&quot;; status = tight(&quot;premium&quot;) ? &quot;cond&quot; : &quot;ok&quot;; verdict = tight(&quot;premium&quot;) ? t.vPrT : t.vPr; picks = M.slotIds.premium; }
  else if (r.need === &quot;uhs&quot;) { mcat = &quot;uhs&quot;; status = &quot;cond&quot;; verdict = tight(&quot;uhs&quot;) ? t.vUT : t.vU; picks = M.slotIds.uhs; }
  else if (r.need === &quot;uhs_cond&quot;) { mcat = &quot;uhs&quot;; status = &quot;cond&quot;; verdict = t.vUC; picks = M.slotIds.uhs; }
  else if (r.need === &quot;dsc&quot;) { mcat = &quot;uhs&quot;; status = &quot;cond&quot;; verdict = t.vDsc; picks = M.slotIds.uhs; }
  else { mcat = &quot;uhs&quot;; status = &quot;ng&quot;; verdict = t.vOver; picks = []; }
  if (tight(mcat) &amp;&amp; r.need !== &quot;dsc&quot;) { lines.push(t.margin(name(mcat), Math.max(0, pct(mcat)))); if (mcat !== &quot;uhs&quot;) lines.push(t.tightUp); }
  // 1つ下の区分が「信号しだい」なら、そう書く（少ない側だけ収まる）
  const lower = { premium: &quot;hs&quot;, uhs: &quot;premium&quot; }[mcat];
  if (lower &amp;&amp; r.fits[lower] === &quot;cond&quot;) lines.push(t.condLow(name(lower)));
  if (r.cell) { lines.push(t.table(r.cell === &quot;dsc&quot;)); if (r.cell === &quot;uhs&quot; &amp;&amp; hi &gt; M.cats.uhs.payload) lines.push(t.tableOver); }
  if (r.need === &quot;dsc&quot;) lines.push(t.dsc);
  // 間引きを切り替えたときの判定（ゲーム機は送る形式が公表されていないので、いつも出す）
  if (chroma === &quot;444&quot; &amp;&amp; (d || r.need === &quot;dsc&quot; || r.need === &quot;over&quot;)) lines.push(t.alt420(M.need[needKeyOf(cableFit({ res, hz, bpc, chroma: &quot;420&quot; }, M))][lang]));
  if (chroma === &quot;420&quot; &amp;&amp; d) lines.push(t.alt444(M.need[needKeyOf(cableFit({ res, hz, bpc, chroma: &quot;444&quot; }, M))][lang]));
  if (d) lines.push(t.devNote);
  // ruler（帯の物差し 1 行）: 区分の区切り（M.capLabel）、判定した区分が映像に使える量（塗り）、要る量（rates の幅。印）。✕ は Ultra に足りない量
  const ruler = {
    unit: &quot;Gbps&quot;,
    need: { range: [loS, hiS], label: t.rNeed(rateS) },
    rows: [{ key: t.rKey, sub: name(mcat), limit: cap(mcat), cuts: [&quot;hs&quot;, &quot;premium&quot;, &quot;uhs&quot;].map((k) =&gt; ({ at: cap(k), label: CUT_[k], on: k === mcat })), status, gap: status === &quot;ng&quot; ? `−${G_(Math.ceil((hiS - cap(&quot;uhs&quot;)) * 100 - 1e-9) / 100, lang)}` : null, pick: picks }],
  };
  return { status, verdict, lines, picks, ruler };
}

// 早見表の判定の名前（calc の needKey と同じ規則）
function needKeyOf(r) {
  if (r.need === &quot;premium&quot; &amp;&amp; r.fits.premium === &quot;tight&quot;) return &quot;premium_t&quot;;
  if (r.need === &quot;hs&quot; &amp;&amp; r.fits.hs === &quot;tight&quot;) return &quot;hs_t&quot;;
  if (r.need === &quot;uhs&quot; &amp;&amp; r.fits.uhs === &quot;tight&quot;) return &quot;uhs_t&quot;;
  return r.need;
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（よく聞かれる形式とゲーム機）
function presets() {
  const R = (res, hz, depth, chroma = &quot;444&quot;) =&gt; ({ mode: &quot;res&quot;, res, hz: String(hz), depth: String(depth), chroma });
  const D = (dev, depth, chroma = &quot;444&quot;) =&gt; ({ mode: &quot;dev&quot;, dev, depth: String(depth), chroma });
  return [
    R(&quot;1080p&quot;, 60, 8), R(&quot;1080p&quot;, 120, 8), R(&quot;1440p&quot;, 144, 8), R(&quot;4k&quot;, 60, 8), R(&quot;4k&quot;, 60, 10), R(&quot;4k&quot;, 60, 10, &quot;420&quot;),
    R(&quot;4k&quot;, 120, 10), R(&quot;4k&quot;, 144, 10), R(&quot;8k&quot;, 60, 10), R(&quot;8k&quot;, 60, 10, &quot;420&quot;),
    D(&quot;ps5&quot;, 10), D(&quot;xsx&quot;, 10), D(&quot;sw2_4k&quot;, 8), D(&quot;sw2_4k&quot;, 10), D(&quot;sw2_1440&quot;, 10),
  ];
}

// カードに出す仕様（そのケーブルのメーカー公表の認証区分・帯域・長さ。絞り込みの条件＝必要な帯域は出さない）
function pickSpecs(id, v, M, lang) {
  const c = M.cables[id];
  if (!c) return [];
  const cat = M.cats[c.cat][lang];
  return lang === &quot;ja&quot;
    ? [`${cat} 認証・${c.rate}Gbps`, `長さ ${c.length}m`]
    : [`${cat} certified, ${c.rate} Gbps`, `${c.length} m (${Math.round(c.length / 0.3048)} ft)`];
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;ruler&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;p&gt;In the calculator, it checks whether the video data fits what each cable category can carry as video. With less than 3% to spare it says borderline.&lt;/p&gt;
&lt;h2 id=&quot;choose-by-category-and-certification-label&quot;&gt;Choose by category and certification label&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;High Speed: 10.2 Gbps of bandwidth. The 4K video HDMI.org names for it is 4K at 30Hz&lt;/li&gt;
&lt;li&gt;Premium High Speed: 18 Gbps of bandwidth. It is meant for 4K at 60Hz video&lt;/li&gt;
&lt;li&gt;Ultra High Speed: 48 Gbps of bandwidth. HDMI.org also lists 4K at 120Hz and 8K at 60Hz formats for it&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In fact, every HDMI 2.1 feature is optional. A product that says “2.1” may not support every feature.&lt;/p&gt;
&lt;p&gt;Check the certification label on the package.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Look for the label.&lt;/strong&gt; Ultra High Speed and Premium High Speed cables have one&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scan the label’s QR code with the official app.&lt;/strong&gt; It shows the brand, model and length&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Do not trust the listing title alone.&lt;/strong&gt; “4K ready” and “8K ready” are not certification marks&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;cables-for-ps5-xbox-and-switch-2&quot;&gt;Cables for PS5, Xbox and Switch 2&lt;/h2&gt;
&lt;p&gt;The SDR figures here assume 8-bit color. The PS5 and Xbox Series X can output 4K at 120Hz, so Ultra High Speed is the default choice.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PS5: Per PlayStation’s official pages, the PS5 supports 4K at 120Hz, and the recommended cable is the one in the box or an Ultra High Speed cable&lt;/li&gt;
&lt;li&gt;Xbox Series X: Per Xbox’s official page, the Xbox Series X outputs up to 4K at 120Hz and comes with an Ultra High Speed HDMI cable&lt;/li&gt;
&lt;li&gt;Nintendo Switch 2: The Switch 2 tops out at 60fps in 4K, where Premium High Speed just fits SDR. HDR without chroma subsampling needs Ultra High Speed. For SDR this is borderline. The official specs do not say which cable standard comes in the box, so this guide does not claim one&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;cable-length-and-optical-cables&quot;&gt;Cable length and optical cables&lt;/h2&gt;
&lt;p&gt;In HDMI.org’s pages, no figure for the maximum length of copper HDMI cables was found, and certification is done for each length. For long runs, active optical cables (AOC) are an option.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-condition&quot;&gt;Picks by condition&lt;/h2&gt;
&lt;p&gt;The SDR picks assume 8-bit color. Each pick is a certified cable, 1.8 m to 2 m (6 to 6.6 ft) long. The conditions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The maker’s official page states the certification&lt;/li&gt;
&lt;li&gt;At least 100 ratings and 4 stars or more&lt;/li&gt;
&lt;li&gt;Not a marked-up third-party import&lt;/li&gt;
&lt;li&gt;Sold new by Amazon or the maker&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Ultra High Speed pick is the cheapest listing that met these among the listings compared. Only one Premium High Speed candidate was compared, so no price ranking is claimed for it. Check prices on the store.&lt;/p&gt;
&lt;h3 id=&quot;4k-at-120hz-or-4k-at-60hz-hdr&quot;&gt;4K at 120Hz, or 4K at 60Hz HDR&lt;/h3&gt;
&lt;p&gt;It is Ultra High Speed certified and works as is with a PS5 or Xbox Series X.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Anker HDMI Cable (8K) A8742&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61ipbFnqFUL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Anker HDMI Cable (8K) A8742&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CFV3C779?q=Anker+HDMI+Cable+%288K%29+A8742&amp;amp;us=B0CFV3C779&amp;amp;l=en&quot; aria-label=&quot;View Anker HDMI Cable (8K) A8742 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Sold by AnkerDirect (ships from Amazon). The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h3 id=&quot;4k-at-60hz-sdr&quot;&gt;4K at 60Hz SDR&lt;/h3&gt;
&lt;p&gt;It is Premium High Speed certified. In this calculation, 4K at 60Hz in SDR is borderline for it.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Cable Matters Premium Certified HDMI Cable (300016)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71Vvx4inaML._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Cable Matters Premium Certified HDMI Cable (300016)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B005BZG8G4?q=Cable+Matters+Premium+Certified+HDMI+Cable+%28300016%29&amp;amp;us=B005BZG8G4&amp;amp;l=en&quot; aria-label=&quot;View Cable Matters Premium Certified HDMI Cable (300016) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Sold by Cable Matters (ships from Amazon). The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;which-hdmi-cable-is-required-for-4k-at-120hz&quot;&gt;Which HDMI cable is required for 4K at 120Hz?&lt;/h3&gt;
&lt;p&gt;An Ultra High Speed certified cable. Per HDMI.org’s video table, 4K at 120Hz, even 8- to 12-bit 4:4:4, is a format an Ultra High Speed cable carries uncompressed.&lt;/p&gt;
&lt;h3 id=&quot;what-is-the-difference-between-hdmi-20-and-21-is-a-new-cable-required&quot;&gt;What is the difference between HDMI 2.0 and 2.1? Is a new cable required?&lt;/h3&gt;
&lt;p&gt;2.0 and 2.1 are version numbers for devices such as TVs and game consoles. A cable is chosen by its category, not a number: High Speed, Premium High Speed or Ultra High Speed.&lt;/p&gt;
&lt;p&gt;Whether you need a new one depends on whether your current category can carry the video format you want.&lt;/p&gt;
&lt;h3 id=&quot;is-a-cable-that-says-hdmi-21-an-ultra-high-speed-cable&quot;&gt;Is a cable that says “HDMI 2.1” an Ultra High Speed cable?&lt;/h3&gt;
&lt;p&gt;Not necessarily. In fact, every HDMI 2.1 feature is optional.&lt;/p&gt;
&lt;p&gt;Look for the certification label, not the “2.1” in the product name.&lt;/p&gt;
&lt;h3 id=&quot;which-cable-works-with-a-ps5&quot;&gt;Which cable works with a PS5?&lt;/h3&gt;
&lt;p&gt;Per PlayStation’s official pages, the PS5 supports 4K at 120Hz, and the recommended cable is the one in the box or an Ultra High Speed cable.&lt;/p&gt;
&lt;h3 id=&quot;does-a-long-hdmi-cable-stop-working-what-is-the-maximum-length&quot;&gt;Does a long HDMI cable stop working? What is the maximum length?&lt;/h3&gt;
&lt;p&gt;In HDMI.org’s pages, no figure for the maximum length of copper HDMI cables was found, and certification is done for each length. For long runs, active optical cables (AOC) are an option.&lt;/p&gt;
&lt;p&gt;Look for a certification label on the exact length you are buying.&lt;/p&gt;
&lt;h3 id=&quot;which-cable-carries-8k-video&quot;&gt;Which cable carries 8K video?&lt;/h3&gt;
&lt;p&gt;HDMI.org lists Ultra High Speed for uncompressed 8K at 60Hz with 4:2:0 chroma subsampling. The PS5 Pro’s 8K output needs a screen that supports 8K at 60Hz and DSC, so a new cable alone will not do it.&lt;/p&gt;
&lt;p&gt;In HDMI.org’s table, 8K at 60Hz in 4:4:4 goes over Ultra High Speed with DSC, or over an Ultra96 cable at 96 Gbps. Ultra96 device compatibility was not checked.&lt;/p&gt;
&lt;p&gt;Up to 4K at 144Hz and 10-bit, Ultra High Speed is enough.&lt;/p&gt;
&lt;h3 id=&quot;does-earc-need-a-special-cable-is-a-cheap-cable-fine&quot;&gt;Does eARC need a special cable? Is a cheap cable fine?&lt;/h3&gt;
&lt;p&gt;Per HDMI.org, eARC works over a Premium High Speed cable with Ethernet. If you want every other HDMI 2.1 feature too, choose Ultra High Speed.&lt;/p&gt;
&lt;p&gt;Choose by certification label, not by price.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Worked out from HDMI.org and the makers’ official pages as of October 2026. No cable was tested in person.&lt;/p&gt;&lt;p&gt;Sources: &lt;a href=&quot;https://www.hdmi.org/resource/cables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;HDMI.org cable categories&lt;/a&gt; ／ &lt;a href=&quot;https://www.hdmi.org/blog/detail/117&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;HDMI.org certification program&lt;/a&gt; ／ &lt;a href=&quot;https://www.hdmi.org/spec2sub/ultrahdmicables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;HDMI.org Ultra High Speed cables&lt;/a&gt; ／ &lt;a href=&quot;https://www.hdmi.org/spec2sub/res-bandwidth&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;HDMI.org resolution and bandwidth table&lt;/a&gt; ／ &lt;a href=&quot;https://www.hdmi.org/blog/detail/139&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;HDMI.org HDMI 2.1 features&lt;/a&gt; ／ &lt;a href=&quot;https://www.hdmi.org/blog/detail/129&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;HDMI.org eARC&lt;/a&gt; ／ &lt;a href=&quot;https://www.hdmi.org/blog/detail/128&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;HDMI.org cable length&lt;/a&gt; ／ &lt;a href=&quot;https://blog.playstation.com/2020/11/09/ps5-the-ultimate-faq/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;PlayStation Blog PS5 FAQ&lt;/a&gt; ／ &lt;a href=&quot;https://www.playstation.com/en-us/support/hardware/ps5-4k-resolution-guide/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;PlayStation 4K resolution guide&lt;/a&gt; ／ &lt;a href=&quot;https://www.xbox.com/en-US/consoles/xbox-series-x&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Xbox Series X&lt;/a&gt; ／ &lt;a href=&quot;https://www.nintendo.com/us/gaming-systems/switch-2/tech-specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Nintendo Switch 2 tech specs&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Video data rate = pixel clock × bits per color × 3 × chroma factor (1 for 4:4:4, 0.5 for 4:2:0) ÷ 1000, in Gbps, uncompressed. HDR is counted as 10-bit. 4:2:2 isn’t covered.&lt;/li&gt;
&lt;li&gt;The pixel clock is a range: the VESA CVT-RB2 formula (the minimum blanking used by PCs; constants cross-checked against the Linux kernel and edid-decode) is compared with the confirmed CTA-861 and maker pixel clocks, and the minimum to the maximum is shown. CTA-861 is the timing used by TVs and consoles (4K at 60Hz 594 MHz, 4K at 120Hz 1188 MHz, 8K at 60Hz 2376 MHz and so on, checked against the Linux kernel and edid-decode tables) and Dell’s published timings. Formats with neither (1440p at 120, 165 and 240Hz, 4K at 240Hz and so on) use CVT-RB2 only, and real devices may send more. Shown to two decimals, the low end rounded down and the high end rounded up.&lt;/li&gt;
&lt;li&gt;What each category carries as video: High Speed 10.2 Gbps × 8/10 (TMDS encoding) = 8.16 Gbps, Premium High Speed 18 Gbps × 8/10 = 14.4 Gbps, Ultra High Speed 48 Gbps × 16/18 (FRL encoding) = 42.66 Gbps, rounded down to two decimals. Categories follow HDMI.org’s bandwidth descriptions; device HDMI version numbers aren’t used. FRL signaling over a Premium High Speed cable isn’t modeled.&lt;/li&gt;
&lt;li&gt;Verdict: if even the high end fits, it’s enough. If the room left (capacity − high end) ÷ capacity is under 3%, borderline. If only the low end fits, it depends on the device’s signal. The answer is the lowest category that fits.&lt;/li&gt;
&lt;li&gt;Formats in HDMI.org’s video table (4K at 120, 144 and 240Hz, 8K at 60Hz) need an Ultra High Speed or Ultra96 cable per HDMI.org, so they aren’t judged on High Speed or Premium High Speed; whether Ultra High Speed carries them uncompressed or needs DSC follows the table. Whether the low end (CVT-RB2) fits Ultra High Speed matched the table in every cell (4:4:4 and 4:2:0, 8-, 10- and 12-bit). 12-bit formats the table lists as uncompressed but that land just over capacity with TV timings (4K at 120Hz, 8K at 60Hz 4:2:0) are marked borderline.&lt;/li&gt;
&lt;li&gt;DSC supports compression ratios up to 3:1. Both the source and the display must support DSC. Console resolutions and refresh rates are the maximum settings on each maker’s official page; which chroma format they actually send isn’t published.&lt;/li&gt;
&lt;li&gt;Cable length isn’t part of the math (HDMI.org publishes no maximum length for copper cables, and certification is per length). No cable was tested in person. Picks are 1.8 to 2 m cables whose maker’s official page states that model’s Premium High Speed or Ultra High Speed certification, among new Amazon listings with at least 100 ratings and 4 stars, not sold as imports. The Ultra High Speed pick is the cheapest with shipping among the qualifying listings compared; the Premium High Speed pick is a qualifying listing that was found.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;




































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Standard HDMI Cable supported video&lt;/td&gt;&lt;td&gt;1080i or 720p&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/resource/cables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Standard HDMI Cable: 1080i or 720p video&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;High Speed cable bandwidth&lt;/td&gt;&lt;td&gt;10.2 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/resource/cables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; High Speed HDMI Cable: 10.2Gbps bandwidth, 1080p and beyond including 4K@30Hz, 3&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4K level targeted by High Speed cable&lt;/td&gt;&lt;td&gt;4K@30Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/resource/cables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; High Speed: 1080p and beyond including 4K@30Hz, 3D, and Deep Color&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Premium High Speed cable bandwidth&lt;/td&gt;&lt;td&gt;18 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/resource/cables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Premium High Speed HDMI Cable: up to 18Gbps bandwidth, 4K/UltraHD and 4K60&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ultra High Speed cable bandwidth&lt;/td&gt;&lt;td&gt;48 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/resource/cables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Ultra High Speed HDMI Cable: up to 48Gbps maximum bandwidth, 8K@60 and 4K@120 fo&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video formats targeted by Ultra High Speed cable&lt;/td&gt;&lt;td&gt;8K@60 and 4K@120&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/resource/cables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Ultra High Speed: 8K@60 and 4K@120 formats&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ultra96 cable bandwidth&lt;/td&gt;&lt;td&gt;96 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/resource/cables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Ultra96 HDMI Cable: up to 96Gbps, 8K@60/4:4:4 and 4K@240/4:4:4&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ultra High Speed certification being mandatory&lt;/td&gt;&lt;td&gt;mandatory certification program&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/spec2sub/ultrahdmicables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; It is a mandatory certification program and ensures high-quality tested, certifi&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Premium High Speed certification label&lt;/td&gt;&lt;td&gt;Premium HDMI Cable Certification Label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/resource/cables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Premium High Speed HDMI Cable: identified by HDMI LA’s Premium HDMI Cable Certif&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Label verification app&lt;/td&gt;&lt;td&gt;HDMI Cable Certification scanning app&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/blog/detail/117&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; HDMI LA provides a proprietary HDMI Cable Certification scanning app available t&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Certification being per length&lt;/td&gt;&lt;td&gt;each length tested and certified&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/blog/detail/122&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Every length of each cable must be tested and certified. Different lengths have&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Low-EMI testing of certified cables&lt;/td&gt;&lt;td&gt;low EMI tested&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/spec2sub/ultrahdmicables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Cables are tested and certified to ensure low EMI to reduce the possibility of i&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Post-certification market audit&lt;/td&gt;&lt;td&gt;marketplace audit&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/spec2sub/ultrahdmicables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; we purchase cables in stores and online marketplaces and send them in for testin&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cable needed for eARC&lt;/td&gt;&lt;td&gt;Premium High Speed with Ethernet works; Ultra High Speed for all HDMI 2.1 features&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/blog/detail/129&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; You can use a Premium High Speed HDMI Cable with Ethernet, but to enable all of&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;eARC audio ceiling&lt;/td&gt;&lt;td&gt;192 kHz / 24-bit&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/blog/detail/129&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; eARC transports audio signals at up to 192 kHz, 24-bit&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AOC for longer HDMI runs&lt;/td&gt;&lt;td&gt;AOC enables much longer lengths&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/blog/detail/128&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Many manufacturers are turning to active optical cable (AOC) assemblies, using a&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Passive cable max length (not published)&lt;/td&gt;&lt;td&gt;not found&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/blog/detail/128&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; passive cables getting shorter or made thicker to compensate for the higher oper&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.1 features being optional&lt;/td&gt;&lt;td&gt;optional&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/blog/detail/139&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Support for each HDMI 2.1 feature is optional.&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Duty to list HDMI 2.1 features&lt;/td&gt;&lt;td&gt;must list supported features&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/blog/detail/139&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Companies that claim HDMI 2.1 compliance are required to list the HDMI 2.1 featu&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Device certification tiers (no new 2.0)&lt;/td&gt;&lt;td&gt;HDMI 1.4b or HDMI 2.1 only&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/blog/detail/139&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; New products can no longer be certified as HDMI 2.0; they must be certified as e&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 HDMI 2.1 and 4K 120Hz&lt;/td&gt;&lt;td&gt;HDMI 2.1, 4K 120Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://blog.playstation.com/2020/11/09/ps5-the-ultimate-faq/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;blog.playstation.com&lt;/a&gt; Yes, PS5 supports the HDMI 2.1 specification. HDMI 2.1 supports 4K 120Hz, but HD&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 HDMI cable recommendation&lt;/td&gt;&lt;td&gt;included cable recommended; otherwise Ultra High Speed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://blog.playstation.com/2020/11/09/ps5-the-ultimate-faq/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;blog.playstation.com&lt;/a&gt; The included HDMI cable is recommended, but in general, use an Ultra High Speed&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 Pro 8K output condition&lt;/td&gt;&lt;td&gt;PS5 Pro: 8K output requires a screen supporting 8K at 60Hz with DSC&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.playstation.com/en-us/support/hardware/ps5-4k-resolution-guide/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;playstation.com&lt;/a&gt; PS5 Pro console 8K output requires a screen that supports 8K at 60Hz with Displa&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Xbox Series X HDMI 2.1 and included cable&lt;/td&gt;&lt;td&gt;HDMI 2.1 port, up to 120 FPS, Ultra High Speed HDMI cable included&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xbox.com/en-US/consoles/xbox-series-x&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xbox.com&lt;/a&gt; 1x HDMI 2.1 port; 4K at up to 120FPS: Requires supported content and display; Wi&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Switch 2 TV output&lt;/td&gt;&lt;td&gt;4K 60fps max; 120fps at 1080p/1440p; HDR10; VRR up to 120Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nintendo.com/us/gaming-systems/switch-2/tech-specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nintendo.com&lt;/a&gt; Maximum of 3840x2160 (4K) resolution at 60 fps (TV mode); Supports 120 fps when&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.0 encoding efficiency (8b/10b)&lt;/td&gt;&lt;td&gt;0.8&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xilinx.com/content/dam/xilinx/support/documents/ip_documentation/v_hdmi_rxss1/v1_2/pg351-v-hdmi-rxss1.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xilinx.com&lt;/a&gt; AMD/Xilinx PG351: TMDS up to 6 Gb/s @ 3 lanes&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.1 encoding efficiency (16b/18b)&lt;/td&gt;&lt;td&gt;0.8888888888888888&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xilinx.com/content/dam/xilinx/support/documents/ip_documentation/v_hdmi_rxss1/v1_2/pg351-v-hdmi-rxss1.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xilinx.com&lt;/a&gt; AMD/Xilinx PG351: FRL 12 Gb/s @ 4 lanes, decode the incoming 16-bit/18-bit encod&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DSC maximum compression ratio&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-publishes-displayport-standard-version-1-4/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt; DSC 1.2 enables up to 3:1 compression ratio and has been deemed visually lossles&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 horizontal blanking&lt;/td&gt;&lt;td&gt;80 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; CVT_RB_V2_H_BLANK 80 pixels&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 vertical blanking time&lt;/td&gt;&lt;td&gt;460 µs&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; CVT_RB_MIN_V_BLANK 460 us&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 vertical sync lines&lt;/td&gt;&lt;td&gt;8 lines&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; RB v2 is detected when vsync == 8&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 minimum back porch lines&lt;/td&gt;&lt;td&gt;6 lines&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; CVT_RB_V_BPORCH 6&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 minimum front porch lines&lt;/td&gt;&lt;td&gt;1 lines&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; CVT_RB_V2_MIN_V_FPORCH 1&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 4K and HDR support&lt;/td&gt;&lt;td&gt;all PS5 consoles have 4K and HDR capabilities&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.playstation.com/en-us/support/hardware/ps5-4k-resolution-guide/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;playstation.com&lt;/a&gt; Though all PS5 consoles have 4K and HDR capabilities, the availability of image&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI.org video table (cable per format)&lt;/td&gt;&lt;td&gt;HDMI Video Table: 4K100/120 all formats = UHS; 4K144 12-bit RGB/4:4:4 = UHS+DSC or Ultra96, others = UHS; 4K200/240 and 8K48/50/60 RGB/4:4:4/4:2:2 = UHS+DSC or Ultra96, 4:2:0 = UHS&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://hdmi.org/download/savefile?filekey=Marketing/HDMI-Video-Table-All-Formats-100.jpg&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; HDMI Video Table - All Formats (Copyright 2025 HDMI LA). BLACK = Support with UH&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cable required for higher formats&lt;/td&gt;&lt;td&gt;Ultra High Speed or Ultra96 required&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/spec2sub/res-bandwidth&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Will some resolutions and refresh rates require a specific cable? In order to en&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Compression (DSC) support&lt;/td&gt;&lt;td&gt;uncompressed and compressed (DSC 1.2a) modes; manufacturers can implement either or both&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/spec2sub/res-bandwidth&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; The specification supports both uncompressed and compressed modes. Manufacturers&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CTA-861 1080p60 pixel clock&lt;/td&gt;&lt;td&gt;148.5 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/gpu/drm/drm_edid.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; edid_cea_modes: /* 16 - 1920x1080@60Hz */ 148500 kHz&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CTA-861 1080p120 pixel clock&lt;/td&gt;&lt;td&gt;297 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/gpu/drm/drm_edid.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; edid_cea_modes: /* 63 - 1920x1080@120Hz */ 297000 kHz&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CTA-861 4K30 pixel clock&lt;/td&gt;&lt;td&gt;297 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/gpu/drm/drm_edid.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; edid_cea_modes: /* 95 - 3840x2160@30Hz */ 297000 kHz&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CTA-861 4K60 pixel clock&lt;/td&gt;&lt;td&gt;594 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/gpu/drm/drm_edid.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; edid_cea_modes: /* 97 - 3840x2160@60Hz */ 594000 kHz&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CTA-861 4K120 pixel clock&lt;/td&gt;&lt;td&gt;1188 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/gpu/drm/drm_edid.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; edid_cea_modes: /* 118 - 3840x2160@120Hz */ 1188000 kHz&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CTA-861 8K60 pixel clock&lt;/td&gt;&lt;td&gt;2376 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/gpu/drm/drm_edid.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; edid_cea_modes: /* 199 - 7680x4320@60Hz */ 2376000 kHz&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 4K60 pixel clock (CVT)&lt;/td&gt;&lt;td&gt;533.25 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual12109242-dell-u2723qe-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; UHD 3840x2160 (DP) 60Hz 533.25 MHz PDF p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 4K120 pixel clock (low)&lt;/td&gt;&lt;td&gt;1074.73 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual74300550-dell-g3223q-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; VESA 3840x2160 119.88Hz 1074.73 MHz PDF p.14&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 4K144 pixel clock&lt;/td&gt;&lt;td&gt;1250 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual74300550-dell-g3223q-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; VESA 3840x2160 144Hz 1250 MHz; Maximum preset 3840x2160 at 144Hz (DSC Enable and&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 1440p144 pixel clock&lt;/td&gt;&lt;td&gt;591.31 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual74300550-dell-g3223q-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; 2560x1440 144Hz 591.31 MHz PDF p.14&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Which HDMI cable category you need (from the data rate): quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;




















































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Resolution, 1080p, 60Hz, SDR (8-bit), None (4:4:4)&lt;/td&gt;&lt;td&gt;✓ A High Speed cable or better is enough. Video data needed: 3.19–3.57 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. The pick is a Premium High Speed cable, which you can verify by its certification label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=res&amp;amp;hdmi-cable-calc-res=1080p&amp;amp;hdmi-cable-calc-hz=60&amp;amp;hdmi-cable-calc-depth=8&amp;amp;hdmi-cable-calc-chroma=444#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Resolution, 1080p, 120Hz, SDR (8-bit), None (4:4:4)&lt;/td&gt;&lt;td&gt;✓ A High Speed cable or better is enough. Video data needed: 6.58–7.13 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. The pick is a Premium High Speed cable, which you can verify by its certification label&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=res&amp;amp;hdmi-cable-calc-res=1080p&amp;amp;hdmi-cable-calc-hz=120&amp;amp;hdmi-cable-calc-depth=8&amp;amp;hdmi-cable-calc-chroma=444#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Resolution, 1440p, 144Hz, SDR (8-bit), None (4:4:4)&lt;/td&gt;&lt;td&gt;△ Premium High Speed just fits. Video data needed: 14.07–14.2 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. Premium High Speed has 1.4% to spare. For more headroom, go Ultra High Speed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=res&amp;amp;hdmi-cable-calc-res=1440p&amp;amp;hdmi-cable-calc-hz=144&amp;amp;hdmi-cable-calc-depth=8&amp;amp;hdmi-cable-calc-chroma=444#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Resolution, 4K, 60Hz, SDR (8-bit), None (4:4:4)&lt;/td&gt;&lt;td&gt;△ Premium High Speed just fits. Video data needed: 12.54–14.26 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. Premium High Speed has 1% to spare. For more headroom, go Ultra High Speed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=res&amp;amp;hdmi-cable-calc-res=4k&amp;amp;hdmi-cable-calc-hz=60&amp;amp;hdmi-cable-calc-depth=8&amp;amp;hdmi-cable-calc-chroma=444#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Resolution, 4K, 60Hz, HDR (10-bit), None (4:4:4)&lt;/td&gt;&lt;td&gt;△ You need Ultra High Speed. Video data needed: 15.67–17.82 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=res&amp;amp;hdmi-cable-calc-res=4k&amp;amp;hdmi-cable-calc-hz=60&amp;amp;hdmi-cable-calc-depth=10&amp;amp;hdmi-cable-calc-chroma=444#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Resolution, 4K, 60Hz, HDR (10-bit), 4:2:0&lt;/td&gt;&lt;td&gt;✓ Premium High Speed is enough. Video data needed: 7.83–8.91 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. Depending on the device’s signal, High Speed may also work&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=res&amp;amp;hdmi-cable-calc-res=4k&amp;amp;hdmi-cable-calc-hz=60&amp;amp;hdmi-cable-calc-depth=10&amp;amp;hdmi-cable-calc-chroma=420#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Resolution, 4K, 120Hz, HDR (10-bit), None (4:4:4)&lt;/td&gt;&lt;td&gt;△ You need Ultra High Speed. Video data needed: 32.24–35.64 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. In HDMI.org’s video table, Ultra High Speed carries this format uncompressed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=res&amp;amp;hdmi-cable-calc-res=4k&amp;amp;hdmi-cable-calc-hz=120&amp;amp;hdmi-cable-calc-depth=10&amp;amp;hdmi-cable-calc-chroma=444#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Resolution, 4K, 144Hz, HDR (10-bit), None (4:4:4)&lt;/td&gt;&lt;td&gt;△ You need Ultra High Speed. Video data needed: 37.5–39.19 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. In HDMI.org’s video table, Ultra High Speed carries this format uncompressed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=res&amp;amp;hdmi-cable-calc-res=4k&amp;amp;hdmi-cable-calc-hz=144&amp;amp;hdmi-cable-calc-depth=10&amp;amp;hdmi-cable-calc-chroma=444#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Resolution, 8K, 60Hz, HDR (10-bit), None (4:4:4)&lt;/td&gt;&lt;td&gt;△ You need Ultra High Speed + DSC (compression). Video data needed: 62.05–71.28 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. In HDMI.org’s video table, this format needs Ultra High Speed + DSC (compression) or Ultra96. DSC only works when both the source and the TV support it. With 4:2:0 subsampling: Ultra High Speed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=res&amp;amp;hdmi-cable-calc-res=8k&amp;amp;hdmi-cable-calc-hz=60&amp;amp;hdmi-cable-calc-depth=10&amp;amp;hdmi-cable-calc-chroma=444#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Resolution, 8K, 60Hz, HDR (10-bit), 4:2:0&lt;/td&gt;&lt;td&gt;△ You need Ultra High Speed. Video data needed: 31.02–35.64 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. In HDMI.org’s video table, Ultra High Speed carries this format uncompressed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=res&amp;amp;hdmi-cable-calc-res=8k&amp;amp;hdmi-cable-calc-hz=60&amp;amp;hdmi-cable-calc-depth=10&amp;amp;hdmi-cable-calc-chroma=420#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Console, PS5 (4K at 120Hz), HDR (10-bit), None (4:4:4)&lt;/td&gt;&lt;td&gt;△ You need Ultra High Speed. Video data needed: 32.24–35.64 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. In HDMI.org’s video table, Ultra High Speed carries this format uncompressed. With 4:2:0 subsampling: Ultra High Speed. Consoles don’t publish which chroma format they send, so try both settings&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=dev&amp;amp;hdmi-cable-calc-dev=ps5&amp;amp;hdmi-cable-calc-depth=10&amp;amp;hdmi-cable-calc-chroma=444#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Console, Xbox Series X (4K at 120Hz), HDR (10-bit), None (4:4:4)&lt;/td&gt;&lt;td&gt;△ You need Ultra High Speed. Video data needed: 32.24–35.64 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. In HDMI.org’s video table, Ultra High Speed carries this format uncompressed. With 4:2:0 subsampling: Ultra High Speed. Consoles don’t publish which chroma format they send, so try both settings&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=dev&amp;amp;hdmi-cable-calc-dev=xsx&amp;amp;hdmi-cable-calc-depth=10&amp;amp;hdmi-cable-calc-chroma=444#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Console, Switch 2 (4K at 60Hz), SDR (8-bit), None (4:4:4)&lt;/td&gt;&lt;td&gt;△ Premium High Speed just fits. Video data needed: 12.54–14.26 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. Premium High Speed has 1% to spare. For more headroom, go Ultra High Speed. With 4:2:0 subsampling: High Speed or better. Consoles don’t publish which chroma format they send, so try both settings&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=dev&amp;amp;hdmi-cable-calc-dev=sw2_4k&amp;amp;hdmi-cable-calc-depth=8&amp;amp;hdmi-cable-calc-chroma=444#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Console, Switch 2 (4K at 60Hz), HDR (10-bit), None (4:4:4)&lt;/td&gt;&lt;td&gt;△ You need Ultra High Speed. Video data needed: 15.67–17.82 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. With 4:2:0 subsampling: Premium High Speed or better. Consoles don’t publish which chroma format they send, so try both settings&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=dev&amp;amp;hdmi-cable-calc-dev=sw2_4k&amp;amp;hdmi-cable-calc-depth=10&amp;amp;hdmi-cable-calc-chroma=444#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Console, Switch 2 (1440p at 120Hz), HDR (10-bit), None (4:4:4)&lt;/td&gt;&lt;td&gt;△ You need Ultra High Speed. Video data needed: 14.5 Gbps (uncompressed). What each cable carries as video: High Speed 8.16 Gbps, Premium High Speed 14.4 Gbps, Ultra High Speed 42.66 Gbps. With 4:2:0 subsampling: High Speed or better. Consoles don’t publish which chroma format they send, so try both settings&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-23-hdmi/?hdmi-cable-calc-mode=dev&amp;amp;hdmi-cable-calc-dev=sw2_1440&amp;amp;hdmi-cable-calc-depth=10&amp;amp;hdmi-cable-calc-chroma=444#hdmi-cable-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>hdmi</category></item><item><title>How to Choose a Monitor Arm: Weight, Desk Thickness, VESA</title><link>https://aulvem.com/blog/2021-03-22-monitor-arm/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-22-monitor-arm/</guid><description>Choose a monitor arm by matching its load range, desk clamp range and VESA pattern to your setup. Among current monitors from major brands, an arm with a minimum load of 2 kg or less and a maximum of 4.5 kg or more covers every monitor compared. Among the monitors compared, with an arm whose minimum load is exactly 2 kg, the lightest sits right on it, so it&apos;s borderline. Checked against makers&apos; specs in October 2026.</description><pubDate>Mon, 22 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Choose a monitor arm by matching its load range, desk clamp range and VESA pattern (the standard screw-hole layout on the back of a monitor) to your setup. Among current monitors from major brands, an arm with a minimum load of 2 kg or less and a maximum of 4.5 kg or more covers every monitor compared. The monitors checked weigh 2–4.5 kg without the stand.&lt;/p&gt;
&lt;p&gt;This compares current arms from Ergotron, ELECOM, Sanwa, VIVO and other major brands using the makers’ specs as of October 2026.&lt;/p&gt;
&lt;h2 id=&quot;the-three-conditions-an-arm-must-meet&quot;&gt;The three conditions an arm must meet&lt;/h2&gt;
&lt;p&gt;These are the three checks this article compares. An arm fits when all three pass.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Weight&lt;/strong&gt;: the monitor without its stand is at or above the arm’s minimum load and at or below its maximum&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Desk thickness&lt;/strong&gt;: the desktop is within the range the clamp can grip&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VESA&lt;/strong&gt;: the arm’s mounting plate matches the screw-hole spacing on the monitor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the maker also lists a supported screen size, check that too. This article did not look at whether screen size or load limit takes priority.&lt;/p&gt;
&lt;h2 id=&quot;arms-by-monitor-weight&quot;&gt;Arms by monitor weight&lt;/h2&gt;
&lt;p&gt;Compare the “without stand” weight from the monitor’s spec sheet.
(Assumptions: current arms from major brands and the makers’ published ranges. The weight compared is the monitor without its stand)&lt;/p&gt;













































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Weight without stand&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Arms in range&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Out of range&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 too light, 0 too heavy, 2 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;9&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 too light, 0 too heavy, 2 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;5 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;10&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1 too light, 0 too heavy, 2 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1 too light, 2 too heavy, 2 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;10 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;5&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;0 too light, 6 too heavy, 2 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;12 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;0 too light, 11 too heavy, 0 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;15 kg&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;0 too light, 12 too heavy, 0 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;“Can’t be checked” means the maker doesn’t publish a minimum load. Those arms are not counted as in range&lt;/li&gt;
&lt;li&gt;Among current arms from major brands, in range by weight, 2 kg to 4.5 kg: 8+; up to 11.3 kg: 3+; up to 19.1 kg: 1+; beyond that: none&lt;/li&gt;
&lt;li&gt;Among the monitors compared, 4 of them weigh less than the 3.2 kg minimum load of one arm checked. A monitor under the minimum can make the arm rise by itself&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;arms-by-desk-thickness&quot;&gt;Arms by desk thickness&lt;/h2&gt;
&lt;p&gt;Every arm clamps a fixed range of desktop thickness.
(Assumptions: the clamp specs of current arms from major brands, without counting grommet mounts that need a drilled hole)&lt;/p&gt;


















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Desk thickness&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Arms that clamp it&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Out of range&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;10 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;10&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 too thin, 0 too thick, 1 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;15 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;11&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1 too thin, 0 too thick, 1 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;20 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;12&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;0 too thin, 0 too thick, 1 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;30 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;12&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;0 too thin, 0 too thick, 1 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;50 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;12&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;0 too thin, 0 too thick, 1 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;60 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;10&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;0 too thin, 2 too thick, 1 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;70 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;0 too thin, 4 too thick, 1 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;85 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;6&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;0 too thin, 6 too thick, 1 can’t be checked&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;Among current arms from major brands, a 10 mm desk fits 10 and a 15 mm desk fits 11. Clamping by desk thickness, 20 mm to 50 mm: 12+; up to 85 mm: 6+; up to 108 mm: 1+; beyond that: none&lt;/li&gt;
&lt;li&gt;Glass and hollow desktops were not checked&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;how-to-check-your-own-setup&quot;&gt;How to check your own setup&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Find the monitor’s weight.&lt;/strong&gt; Use the “without stand” figure on the spec sheet&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Measure the desk thickness.&lt;/strong&gt; Measure the edge where the clamp will grip&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Match the monitor’s VESA spacing to the arm’s supported patterns.&lt;/strong&gt; Among the monitors compared, all use 100×100 mm screw holes, and every arm compared takes 100×100&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All three checks must pass. The tool below does them for you.&lt;/p&gt;
&lt;section id=&quot;monitor-arm-fit&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;monitor-arm-fit-title&quot;&gt; &lt;h3 id=&quot;monitor-arm-fit-title&quot;&gt;Monitor arm fit checker (weight, desk thickness, VESA)&lt;/h3&gt; &lt;p&gt;Enter your monitor&amp;#39;s weight without the stand, your desktop thickness and the VESA hole pattern to see which of the arms checked are within spec.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;arm_elecom&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ELECOM DPA-SS02BK&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/51A-CNbw-7L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ELECOM DPA-SS02BK&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B09DSCG8DC?q=ELECOM+DPA-SS02BK&amp;amp;l=en&quot; aria-label=&quot;View ELECOM DPA-SS02BK on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;DPA-SS02BK&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ELECOM DPA-SS02BK&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/51A-CNbw-7L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ELECOM DPA-SS02BK&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B09DSCG8DC?q=ELECOM+DPA-SS02BK&amp;amp;l=en&quot; aria-label=&quot;View ELECOM DPA-SS02BK on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;arm_hx&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Ergotron HX&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61efDpLHxmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Ergotron HX&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B08RD4FJ3Q?q=Ergotron+HX&amp;amp;l=en&quot; aria-label=&quot;View Ergotron HX on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;45-475-224&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Ergotron HX&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61efDpLHxmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Ergotron HX&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B08RD4FJ3Q?q=Ergotron+HX&amp;amp;l=en&quot; aria-label=&quot;View Ergotron HX on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;arm_vivo&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for VIVO STAND-V001O&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71fkiOKmycL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;VIVO STAND-V001O&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B01NH0HTM5?q=VIVO+STAND-V001O&amp;amp;us=B01NH0HTM5&amp;amp;l=en&quot; aria-label=&quot;View VIVO STAND-V001O on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;STAND-V001O&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for VIVO STAND-V001O&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71fkiOKmycL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;VIVO STAND-V001O&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B01NH0HTM5?q=VIVO+STAND-V001O&amp;amp;us=B01NH0HTM5&amp;amp;l=en&quot; aria-label=&quot;View VIVO STAND-V001O on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This checker needs JavaScript. If it doesn&amp;#39;t run, use the tables &amp;quot;Arms by monitor weight&amp;quot; and &amp;quot;Arms by desk thickness&amp;quot; above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;arms&quot;:[{&quot;id&quot;:&quot;arm_lx&quot;,&quot;key&quot;:&quot;lx&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;エルゴトロン LX&quot;,&quot;en&quot;:&quot;Ergotron LX&quot;},&quot;lo&quot;:3.2,&quot;hi&quot;:11.3,&quot;clampLo&quot;:10,&quot;clampHi&quot;:60,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_hx&quot;,&quot;key&quot;:&quot;hx&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;エルゴトロン HX&quot;,&quot;en&quot;:&quot;Ergotron HX&quot;},&quot;lo&quot;:9.1,&quot;hi&quot;:19.1,&quot;clampLo&quot;:16,&quot;clampHi&quot;:66,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;,&quot;200x100&quot;,&quot;200&quot;],&quot;clampLoUs&quot;:10},{&quot;id&quot;:&quot;arm_elecom&quot;,&quot;key&quot;:&quot;elecom&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;エレコム DPA-SS02BK&quot;,&quot;en&quot;:&quot;ELECOM DPA-SS02BK&quot;},&quot;lo&quot;:2,&quot;hi&quot;:9,&quot;clampLo&quot;:10,&quot;clampHi&quot;:85,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_lac003&quot;,&quot;key&quot;:&quot;lac003&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;サンワダイレクト 100-LAC003&quot;,&quot;en&quot;:&quot;Sanwa Direct 100-LAC003&quot;},&quot;lo&quot;:1.5,&quot;hi&quot;:12,&quot;clampLo&quot;:10,&quot;clampHi&quot;:85,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_la018&quot;,&quot;key&quot;:&quot;la018&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;サンワダイレクト 100-LA018&quot;,&quot;en&quot;:&quot;Sanwa Direct 100-LA018&quot;},&quot;lo&quot;:2,&quot;hi&quot;:10,&quot;clampLo&quot;:10,&quot;clampHi&quot;:50,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_lac1405&quot;,&quot;key&quot;:&quot;lac1405&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;サンワサプライ CR-LAC1405BK&quot;,&quot;en&quot;:&quot;Sanwa Supply CR-LAC1405BK&quot;},&quot;lo&quot;:2,&quot;hi&quot;:8,&quot;clampLo&quot;:10,&quot;clampHi&quot;:50,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_gh&quot;,&quot;key&quot;:&quot;gh&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;グリーンハウス GH-AMCS01A&quot;,&quot;en&quot;:&quot;Green House GH-AMCS01A&quot;},&quot;lo&quot;:2,&quot;hi&quot;:6.5,&quot;clampLo&quot;:10,&quot;clampHi&quot;:80,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_huanuo&quot;,&quot;key&quot;:&quot;huanuo&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;HUANUO HNSS6&quot;,&quot;en&quot;:&quot;HUANUO HNSS6&quot;},&quot;lo&quot;:2,&quot;hi&quot;:9,&quot;clampLo&quot;:15,&quot;clampHi&quot;:90,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_vivo&quot;,&quot;key&quot;:&quot;vivo&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;VIVO STAND-V001O&quot;,&quot;en&quot;:&quot;VIVO STAND-V001O&quot;},&quot;lo&quot;:2,&quot;hi&quot;:9,&quot;clampLo&quot;:10,&quot;clampHi&quot;:80,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_ab7&quot;,&quot;key&quot;:&quot;ab7&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;Amazonベーシック ガススプリング式（耐荷重7kg）&quot;,&quot;en&quot;:&quot;Amazon Basics gas spring arm (7 kg)&quot;},&quot;lo&quot;:2,&quot;hi&quot;:7,&quot;clampLo&quot;:10,&quot;clampHi&quot;:102,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_msa20&quot;,&quot;key&quot;:&quot;msa20&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;Dell MSA20&quot;,&quot;en&quot;:&quot;Dell MSA20&quot;},&quot;lo&quot;:2.2,&quot;hi&quot;:10,&quot;clampLo&quot;:null,&quot;clampHi&quot;:53,&quot;vesa&quot;:[&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_dlb111&quot;,&quot;key&quot;:&quot;dlb111&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;Amazonベーシック モニターアーム（スチール、ポール式）&quot;,&quot;en&quot;:&quot;Amazon Basics monitor arm (steel, pole)&quot;},&quot;lo&quot;:null,&quot;hi&quot;:10,&quot;clampLo&quot;:20,&quot;clampHi&quot;:100,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_dsma&quot;,&quot;key&quot;:&quot;dsma&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;Amazonベーシック 調整可能アーム（耐荷重10kg、ポール式）&quot;,&quot;en&quot;:&quot;Amazon Basics adjustable arm (10 kg, pole)&quot;},&quot;lo&quot;:null,&quot;hi&quot;:10,&quot;clampLo&quot;:10,&quot;clampHi&quot;:108,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null}],&quot;armsEn&quot;:[{&quot;id&quot;:&quot;arm_lx&quot;,&quot;key&quot;:&quot;lx&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;エルゴトロン LX&quot;,&quot;en&quot;:&quot;Ergotron LX&quot;},&quot;lo&quot;:3.2,&quot;hi&quot;:11.3,&quot;clampLo&quot;:10,&quot;clampHi&quot;:60,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_hx&quot;,&quot;key&quot;:&quot;hx&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;エルゴトロン HX&quot;,&quot;en&quot;:&quot;Ergotron HX&quot;},&quot;lo&quot;:9.1,&quot;hi&quot;:19.1,&quot;clampLo&quot;:10,&quot;clampHi&quot;:66,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;,&quot;200x100&quot;,&quot;200&quot;],&quot;clampLoUs&quot;:10},{&quot;id&quot;:&quot;arm_elecom&quot;,&quot;key&quot;:&quot;elecom&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;エレコム DPA-SS02BK&quot;,&quot;en&quot;:&quot;ELECOM DPA-SS02BK&quot;},&quot;lo&quot;:2,&quot;hi&quot;:9,&quot;clampLo&quot;:10,&quot;clampHi&quot;:85,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_lac003&quot;,&quot;key&quot;:&quot;lac003&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;サンワダイレクト 100-LAC003&quot;,&quot;en&quot;:&quot;Sanwa Direct 100-LAC003&quot;},&quot;lo&quot;:1.5,&quot;hi&quot;:12,&quot;clampLo&quot;:10,&quot;clampHi&quot;:85,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_la018&quot;,&quot;key&quot;:&quot;la018&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;サンワダイレクト 100-LA018&quot;,&quot;en&quot;:&quot;Sanwa Direct 100-LA018&quot;},&quot;lo&quot;:2,&quot;hi&quot;:10,&quot;clampLo&quot;:10,&quot;clampHi&quot;:50,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_lac1405&quot;,&quot;key&quot;:&quot;lac1405&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;サンワサプライ CR-LAC1405BK&quot;,&quot;en&quot;:&quot;Sanwa Supply CR-LAC1405BK&quot;},&quot;lo&quot;:2,&quot;hi&quot;:8,&quot;clampLo&quot;:10,&quot;clampHi&quot;:50,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_gh&quot;,&quot;key&quot;:&quot;gh&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;グリーンハウス GH-AMCS01A&quot;,&quot;en&quot;:&quot;Green House GH-AMCS01A&quot;},&quot;lo&quot;:2,&quot;hi&quot;:6.5,&quot;clampLo&quot;:10,&quot;clampHi&quot;:80,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_huanuo&quot;,&quot;key&quot;:&quot;huanuo&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;HUANUO HNSS6&quot;,&quot;en&quot;:&quot;HUANUO HNSS6&quot;},&quot;lo&quot;:2,&quot;hi&quot;:9,&quot;clampLo&quot;:15,&quot;clampHi&quot;:90,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_vivo&quot;,&quot;key&quot;:&quot;vivo&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;VIVO STAND-V001O&quot;,&quot;en&quot;:&quot;VIVO STAND-V001O&quot;},&quot;lo&quot;:2,&quot;hi&quot;:9,&quot;clampLo&quot;:10,&quot;clampHi&quot;:80,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_ab7&quot;,&quot;key&quot;:&quot;ab7&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;Amazonベーシック ガススプリング式（耐荷重7kg）&quot;,&quot;en&quot;:&quot;Amazon Basics gas spring arm (7 kg)&quot;},&quot;lo&quot;:2,&quot;hi&quot;:7,&quot;clampLo&quot;:10,&quot;clampHi&quot;:102,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_msa20&quot;,&quot;key&quot;:&quot;msa20&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;Dell MSA20&quot;,&quot;en&quot;:&quot;Dell MSA20&quot;},&quot;lo&quot;:2.2,&quot;hi&quot;:10,&quot;clampLo&quot;:null,&quot;clampHi&quot;:53,&quot;vesa&quot;:[&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_dlb111&quot;,&quot;key&quot;:&quot;dlb111&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;Amazonベーシック モニターアーム（スチール、ポール式）&quot;,&quot;en&quot;:&quot;Amazon Basics monitor arm (steel, pole)&quot;},&quot;lo&quot;:null,&quot;hi&quot;:10,&quot;clampLo&quot;:20,&quot;clampHi&quot;:100,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null},{&quot;id&quot;:&quot;arm_dsma&quot;,&quot;key&quot;:&quot;dsma&quot;,&quot;name&quot;:{&quot;ja&quot;:&quot;Amazonベーシック 調整可能アーム（耐荷重10kg、ポール式）&quot;,&quot;en&quot;:&quot;Amazon Basics adjustable arm (10 kg, pole)&quot;},&quot;lo&quot;:null,&quot;hi&quot;:10,&quot;clampLo&quot;:10,&quot;clampHi&quot;:108,&quot;vesa&quot;:[&quot;75&quot;,&quot;100&quot;],&quot;clampLoUs&quot;:null}],&quot;buy&quot;:{&quot;arm_elecom&quot;:{&quot;type&quot;:&quot;arm&quot;,&quot;ja&quot;:&quot;エレコム DPA-SS02BK&quot;,&quot;en&quot;:&quot;ELECOM DPA-SS02BK&quot;,&quot;jp&quot;:&quot;B09DSCG8DC&quot;,&quot;us&quot;:&quot;B09DSCG8DC&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B09DSCG8DC&quot;,&quot;title&quot;:&quot;エレコム DPA-SS02BK&quot;,&quot;searchQuery&quot;:&quot;エレコム DPA-SS02BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51A-CNbw-7L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549550217569&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B09DSCG8DC&quot;,&quot;title&quot;:&quot;ELECOM DPA-SS02BK&quot;,&quot;searchQuery&quot;:&quot;ELECOM DPA-SS02BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51A-CNbw-7L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:1},&quot;DPA-SS02BK&quot;:{&quot;type&quot;:&quot;arm&quot;,&quot;ja&quot;:&quot;エレコム DPA-SS02BK&quot;,&quot;en&quot;:&quot;ELECOM DPA-SS02BK&quot;,&quot;jp&quot;:&quot;B09DSCG8DC&quot;,&quot;us&quot;:&quot;B09DSCG8DC&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B09DSCG8DC&quot;,&quot;title&quot;:&quot;エレコム DPA-SS02BK&quot;,&quot;searchQuery&quot;:&quot;エレコム DPA-SS02BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51A-CNbw-7L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4549550217569&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B09DSCG8DC&quot;,&quot;title&quot;:&quot;ELECOM DPA-SS02BK&quot;,&quot;searchQuery&quot;:&quot;ELECOM DPA-SS02BK&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51A-CNbw-7L._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:1},&quot;arm_lx&quot;:{&quot;type&quot;:&quot;arm&quot;,&quot;ja&quot;:&quot;エルゴトロン LX&quot;,&quot;en&quot;:&quot;Ergotron LX&quot;,&quot;jp&quot;:&quot;B07Q8TJ2KL&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B07Q8TJ2KL&quot;,&quot;title&quot;:&quot;エルゴトロン LX&quot;,&quot;searchQuery&quot;:&quot;エルゴトロン LX&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/610HqQsInRL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;0698833073829&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2},&quot;45-241-224&quot;:{&quot;type&quot;:&quot;arm&quot;,&quot;ja&quot;:&quot;エルゴトロン LX&quot;,&quot;en&quot;:&quot;Ergotron LX&quot;,&quot;jp&quot;:&quot;B07Q8TJ2KL&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B07Q8TJ2KL&quot;,&quot;title&quot;:&quot;エルゴトロン LX&quot;,&quot;searchQuery&quot;:&quot;エルゴトロン LX&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/610HqQsInRL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;0698833073829&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2},&quot;arm_hx&quot;:{&quot;type&quot;:&quot;arm&quot;,&quot;ja&quot;:&quot;エルゴトロン HX&quot;,&quot;en&quot;:&quot;Ergotron HX&quot;,&quot;jp&quot;:&quot;B08RD4FJ3Q&quot;,&quot;us&quot;:&quot;B08RD4FJ3Q&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B08RD4FJ3Q&quot;,&quot;title&quot;:&quot;エルゴトロン HX&quot;,&quot;searchQuery&quot;:&quot;エルゴトロン HX&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61iV6+cuzbL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;0698833084474&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B08RD4FJ3Q&quot;,&quot;title&quot;:&quot;Ergotron HX&quot;,&quot;searchQuery&quot;:&quot;Ergotron HX&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61efDpLHxmL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:3,&quot;rank_us&quot;:2},&quot;45-475-224&quot;:{&quot;type&quot;:&quot;arm&quot;,&quot;ja&quot;:&quot;エルゴトロン HX&quot;,&quot;en&quot;:&quot;Ergotron HX&quot;,&quot;jp&quot;:&quot;B08RD4FJ3Q&quot;,&quot;us&quot;:&quot;B08RD4FJ3Q&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B08RD4FJ3Q&quot;,&quot;title&quot;:&quot;エルゴトロン HX&quot;,&quot;searchQuery&quot;:&quot;エルゴトロン HX&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61iV6+cuzbL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;0698833084474&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B08RD4FJ3Q&quot;,&quot;title&quot;:&quot;Ergotron HX&quot;,&quot;searchQuery&quot;:&quot;Ergotron HX&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61efDpLHxmL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:3,&quot;rank_us&quot;:2},&quot;arm_lac003&quot;:{&quot;type&quot;:&quot;arm&quot;,&quot;ja&quot;:&quot;サンワダイレクト 100-LAC003&quot;,&quot;en&quot;:&quot;Sanwa Direct 100-LAC003&quot;,&quot;jp&quot;:&quot;B0CQNK2XQ6&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CQNK2XQ6&quot;,&quot;title&quot;:&quot;サンワダイレクト 100-LAC003&quot;,&quot;searchQuery&quot;:&quot;サンワダイレクト 100-LAC003&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51jC4DTM8gL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4969887196519&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;100-LAC003&quot;:{&quot;type&quot;:&quot;arm&quot;,&quot;ja&quot;:&quot;サンワダイレクト 100-LAC003&quot;,&quot;en&quot;:&quot;Sanwa Direct 100-LAC003&quot;,&quot;jp&quot;:&quot;B0CQNK2XQ6&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CQNK2XQ6&quot;,&quot;title&quot;:&quot;サンワダイレクト 100-LAC003&quot;,&quot;searchQuery&quot;:&quot;サンワダイレクト 100-LAC003&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/51jC4DTM8gL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4969887196519&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;arm_vivo&quot;:{&quot;type&quot;:&quot;arm&quot;,&quot;ja&quot;:&quot;VIVO STAND-V001O&quot;,&quot;en&quot;:&quot;VIVO STAND-V001O&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B01NH0HTM5&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B01NH0HTM5&quot;,&quot;asinUS&quot;:&quot;B01NH0HTM5&quot;,&quot;title&quot;:&quot;VIVO STAND-V001O&quot;,&quot;searchQuery&quot;:&quot;VIVO STAND-V001O&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71fkiOKmycL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;STAND-V001O&quot;:{&quot;type&quot;:&quot;arm&quot;,&quot;ja&quot;:&quot;VIVO STAND-V001O&quot;,&quot;en&quot;:&quot;VIVO STAND-V001O&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B01NH0HTM5&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B01NH0HTM5&quot;,&quot;asinUS&quot;:&quot;B01NH0HTM5&quot;,&quot;title&quot;:&quot;VIVO STAND-V001O&quot;,&quot;searchQuery&quot;:&quot;VIVO STAND-V001O&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71fkiOKmycL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;arm&quot;:&quot;arm_lac003&quot;},&quot;en&quot;:{&quot;arm&quot;:&quot;arm_vivo&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;monitor-arm-fit&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。
// 依存なし・副作用なしの関数だけを置く。build-tool.mjs がこのファイルをそのまま記事のツールに埋め込む。
//
// アームが使えるかは、次の3つが全部そろうかで決まる（どれもメーカーの仕様の範囲で判定する）:
//   1. 重さ: スタンドを外したモニターの重さ（＋一緒に付けるもの）が、アームの耐荷重の下限以上・上限以下
//   2. 天板の厚さ: クランプで挟める厚さの範囲に入る
//   3. VESA: モニター裏のネジ穴の間隔に、アームの取り付け板が対応している

// 重さの判定: &quot;ok&quot; / &quot;below&quot;（下限未満）/ &quot;above&quot;（上限超え）/ &quot;unknown&quot;（下限の記載なし）
function weightFit(weight, arm) {
  if (weight &gt; arm.hi) return &quot;above&quot;;
  if (arm.lo == null) return &quot;unknown&quot;;
  return weight &gt;= arm.lo ? &quot;ok&quot; : &quot;below&quot;;
}

// 天板の厚さの判定（クランプ）: &quot;ok&quot; / &quot;thin&quot; / &quot;thick&quot; / &quot;unknown&quot;
function clampFit(thick, arm) {
  if (arm.clampLo == null || arm.clampHi == null) return &quot;unknown&quot;;
  if (thick &lt; arm.clampLo) return &quot;thin&quot;;
  if (thick &gt; arm.clampHi) return &quot;thick&quot;;
  return &quot;ok&quot;;
}

// VESA の判定: &quot;ok&quot; / &quot;no&quot;
function vesaFit(vesa, arm) {
  return arm.vesa.includes(vesa) ? &quot;ok&quot; : &quot;no&quot;;
}

// 3つまとめて判定。ok は3つとも &quot;ok&quot; のときだけ
function fitArm({ weight, thick, vesa }, arm) {
  const w = weightFit(weight, arm);
  const c = thick == null ? &quot;ok&quot; : clampFit(thick, arm);
  const v = vesa == null ? &quot;ok&quot; : vesaFit(vesa, arm);
  return { ok: w === &quot;ok&quot; &amp;&amp; c === &quot;ok&quot; &amp;&amp; v === &quot;ok&quot;, weight: w, clamp: c, vesa: v };
}

// 条件に合うアームの一覧
function fittingArms(input, m) {
  return m.arms.filter((a) =&gt; fitArm(input, a).ok);
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。
// 入力は条件だけ（重さ・天板の厚さ・VESA）。機種は選ばせない。結果の picks は、条件に合うアームの商品 id。

const T_ = {
  ja: {
    weight: &quot;モニターの重さ（スタンドなし）&quot;, thick: &quot;天板の厚さ&quot;, vesa: &quot;背面のネジ穴（VESA）&quot;,
    v75: &quot;75×75&quot;, v100: &quot;100×100&quot;,
    vOk: &quot;○ 条件に合うアームがあります&quot;, vNg: &quot;✕ 3つの条件が全部合うアームはありません&quot;,
    mYou: (x) =&gt; `あなた ${x}kg`, mOk: (a, b) =&gt; `対応アームの耐荷重 ${a}〜${b}kg`,
    load: (a, b) =&gt; (a == null ? `耐荷重 〜${b}kg` : `耐荷重 ${a}〜${b}kg`), clamp: (a, b) =&gt; `天板 ${a}〜${b}mm`, vesaChip: (x) =&gt; `VESA ${x}`,
    // 調べた本数は出さない（ユーザー指示 2026-10: 件数が出ると厳選した感じがしない）
    fit: (n, all) =&gt; `主要メーカーの現行のアームのうち、条件に合うのは${n}本です`, nofit: (all) =&gt; `主要メーカーの現行のアームに、3つの条件が全部合うものはありません`,
    why: (w, c, v, u) =&gt; `合わない内訳: 重さ${w}本、天板の厚さ${c}本、ネジ穴${v}本、下限や厚さが書かれておらず判定できない${u}本`,
    note: &quot;判定はメーカーの仕様の範囲だけで出しています（2026年10月確認）。Webカメラなどを一緒に付けるなら、その重さも足してください。&quot;,
  },
  en: {
    weight: &quot;Monitor weight (without stand)&quot;, thick: &quot;Desktop thickness&quot;, vesa: &quot;Mounting holes on the back (VESA)&quot;,
    v75: &quot;75×75&quot;, v100: &quot;100×100&quot;,
    vOk: &quot;✓ Arms fit your conditions&quot;, vNg: &quot;✕ No arm meets all three conditions&quot;,
    mYou: (x) =&gt; `You: ${x} kg`, mOk: (a, b) =&gt; `Arm load range ${a}–${b} kg`,
    load: (a, b) =&gt; (a == null ? `Load up to ${b} kg` : `Load ${a}–${b} kg`), clamp: (a, b) =&gt; `Desk ${a}–${b} mm`, vesaChip: (x) =&gt; `VESA ${x}`,
    fit: (n, all) =&gt; `Among current arms from major brands, ${n} fit your conditions`, nofit: (all) =&gt; `No current arm from a major brand meets all three conditions`,
    why: (w, c, v, u) =&gt; `Why the others don&apos;t fit: weight ${w}, desktop thickness ${c}, hole pattern ${v}, can&apos;t be checked (no minimum load or clamp range published) ${u}`,
    note: &quot;Results use only the makers&apos; published ranges (checked October 2026). If you mount a webcam or similar on the monitor, add its weight.&quot;,
  },
};

function fields(M, lang) {
  const t = T_[lang];
  const kg = (x) =&gt; (lang === &quot;ja&quot; ? `${x}kg` : `${x} kg (${Math.round(x * 2.2046 * 10) / 10} lb)`);
  const mm = (x) =&gt; (lang === &quot;ja&quot; ? `${x}mm` : `${x} mm (${Math.round((x / 25.4) * 100) / 100} in)`);
  return [
    // 重さは1kg刻み、天板の厚さは市販の机でよくある値から選ぶ（ユーザー指示 2026-10）
    { name: &quot;weight&quot;, type: &quot;select&quot;, label: t.weight, value: &quot;5&quot;, options: Array.from({ length: 20 }, (_, i) =&gt; i + 1).map((x) =&gt; ({ value: String(x), label: kg(x) })) },
    { name: &quot;thick&quot;, type: &quot;select&quot;, label: t.thick, value: &quot;25&quot;, options: [10, 15, 18, 20, 25, 30, 40, 50, 60, 70, 80, 90, 100].map((x) =&gt; ({ value: String(x), label: mm(x) })) },
    { name: &quot;vesa&quot;, type: &quot;select&quot;, label: t.vesa, value: &quot;100&quot;, options: [{ value: &quot;75&quot;, label: t.v75 }, { value: &quot;100&quot;, label: t.v100 }] },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const weight = Number(v.weight), thick = Number(v.thick);
  if (!(weight &gt; 0) || !(thick &gt; 0)) return { status: &quot;error&quot;, lines: [] };
  const input = { weight, thick, vesa: v.vesa };
  const fitting = [];
  let w = 0, c = 0, ve = 0, u = 0;
  // 日米で仕様が違うアーム（HX のクランプ下限）は、日本語版は日本の値、英語版は米国の値で判定する
  for (const a of (lang === &quot;en&quot; &amp;&amp; M.armsEn ? M.armsEn : M.arms)) {
    const r = fitArm(input, a);
    if (r.ok) { fitting.push(a); continue; }
    if (r.weight === &quot;unknown&quot; || r.clamp === &quot;unknown&quot;) u++;
    else if (r.weight !== &quot;ok&quot;) w++;
    else if (r.clamp !== &quot;ok&quot;) c++;
    else ve++;
  }
  const lines = [fitting.length ? t.fit(fitting.length, M.arms.length) : t.nofit(M.arms.length)];
  if (fitting.length &lt; M.arms.length) lines.push(t.why(w, c, ve, u));
  // 条件に合うアーム（lib が、その国で買える選定基準を満たすものだけを商品カードにする）
  // メーター: 重さが、調べたアームのどれかの耐荷重の範囲に入るか（下限が分かるアームの範囲の合計）
  const los = M.arms.filter((a) =&gt; a.lo != null).map((a) =&gt; a.lo), his = M.arms.map((a) =&gt; a.hi);
  const lo = Math.min(...los), hi = Math.max(...his);
  const meter = { min: 0, max: 20, value: weight, ok: [lo, hi], unit: &quot;kg&quot;, valueLabel: t.mYou(weight), okLabel: t.mOk(lo, hi) };
  // 型 C の表: 調べたアーム × 耐荷重・天板の厚さ・VESA（fitArm の判定だけ。範囲は各メーカーの公式値）
  const ja = lang === &quot;ja&quot;;
  const arms = lang === &quot;en&quot; &amp;&amp; M.armsEn ? M.armsEn : M.arms;
  const mk = ja ? &quot;jp&quot; : &quot;us&quot;, rk = &quot;rank_&quot; + mk;
  const cell = (st, text) =&gt; (st === &quot;unknown&quot; ? &quot;na&quot; : { text, ok: st === &quot;ok&quot;, miss: st !== &quot;ok&quot; });
  const rows = arms.map((a) =&gt; {
    const f = fitArm(input, a);
    return { id: a.id, label: a.name[lang], short: shortName_(a.name[lang]), hit: f.ok, pick: [a.id],
      cells: { w: cell(f.weight, `${a.lo ?? &quot;?&quot;}–${a.hi}`), c: cell(f.clamp, a.clampLo == null ? &quot;?&quot; : `${a.clampLo}–${a.clampHi}`), v: f.vesa === &quot;ok&quot; ? &quot;ok&quot; : &quot;no&quot; },
      miss: [&quot;weight&quot;, &quot;clamp&quot;, &quot;vesa&quot;].filter((k) =&gt; f[k] !== &quot;ok&quot;).length };
  });
  const buyable = (id) =&gt; M.buy &amp;&amp; M.buy[id] &amp;&amp; M.buy[id][mk];
  const hits = rows.filter((x) =&gt; x.hit).sort((x, y) =&gt; ((M.buy[x.id] || {})[rk] ?? 999) - ((M.buy[y.id] || {})[rk] ?? 999));
  const highlight = (hits.find((x) =&gt; buyable(x.id)) || hits[0] || {}).id;
  const closest = hits.length ? null : rows.slice().sort((x, y) =&gt; x.miss - y.miss)[0].id;
  const matrix = { head: ja ? &quot;アーム&quot; : &quot;Arm&quot;, cols: [{ key: &quot;w&quot;, label: ja ? &quot;耐荷重 kg&quot; : &quot;Load kg&quot; }, { key: &quot;c&quot;, label: ja ? &quot;天板 mm&quot; : &quot;Desk mm&quot; }, { key: &quot;v&quot;, label: &quot;VESA&quot; }],
    rows, highlight, closest, bestLabel: ja ? &quot;合う&quot; : &quot;Fits&quot;, legend: ja ? &quot;○ 合う — 合わない（下線は外れた条件）&quot; : &quot;○ fits — doesn&apos;t (underlined: the miss)&quot; };
  return { status: fitting.length ? &quot;ok&quot; : &quot;ng&quot;, verdict: fitting.length ? t.vOk : t.vNg, lines, picks: fitting.map((a) =&gt; a.id), meter, matrix };
}

const NOTE = (lang) =&gt; T_[lang].note;

// 表の短い名前（スマホ）: メーカー名と括弧書きを落とし、14文字まで
function shortName_(n) { const x = n.replace(/（.*?）|\(.*?\)/g, &quot;&quot;).trim().split(/\s+/); return (x.length &gt; 1 ? x.slice(1).join(&quot; &quot;) : x[0]).slice(0, 14); }

// AI・検索向けの早見表に出す条件（よくあるモニターの重さ×机の厚さ×VESA）
function presets() {
  const out = [];
  for (const weight of [&quot;3&quot;, &quot;5&quot;, &quot;7&quot;, &quot;9&quot;, &quot;12&quot;]) for (const thick of [&quot;25&quot;, &quot;40&quot;]) out.push({ weight, thick, vesa: &quot;100&quot; });
  out.push({ weight: &quot;5&quot;, thick: &quot;10&quot;, vesa: &quot;100&quot; }, { weight: &quot;5&quot;, thick: &quot;80&quot;, vesa: &quot;100&quot; }, { weight: &quot;5&quot;, thick: &quot;25&quot;, vesa: &quot;75&quot; });
  return out;
}

// カードに出す仕様（そのアームの耐荷重・クランプで挟める天板の厚さ・VESA。メーカー仕様の値だけ）
function pickSpecs(id, v, M, lang) {
  const t = T_[lang];
  const a = (lang === &quot;en&quot; &amp;&amp; M.armsEn ? M.armsEn : M.arms).find((x) =&gt; x.id === id);
  if (!a) return [];
  const out = [t.load(a.lo, a.hi)];
  if (a.clampLo != null &amp;&amp; a.clampHi != null) out.push(t.clamp(a.clampLo, a.clampHi));
  out.push(t.vesaChip(a.vesa.join(&quot;・&quot;)));
  return out;
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;matrix&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;picks-by-condition&quot;&gt;Picks by condition&lt;/h2&gt;
&lt;p&gt;One pick per condition. These were not tested in person.&lt;/p&gt;
&lt;h3 id=&quot;monitor-245-kg-without-the-stand-desk-2050-mm-vesa-100100&quot;&gt;Monitor 2–4.5 kg without the stand, desk 20–50 mm, VESA 100×100&lt;/h3&gt;
&lt;p&gt;The maker’s spec covers 2–9 kg load, VESA 75x75 / 100x100, desktops 10–80 mm thick (&lt;a href=&quot;https://vivo-us.com/products/stand-v001o&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;maker specs&lt;/a&gt;). With a minimum load of exactly 2 kg, this pick is borderline for the lightest monitor checked.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for VIVO STAND-V001O&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71fkiOKmycL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;VIVO STAND-V001O&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B01NH0HTM5?q=VIVO+STAND-V001O&amp;amp;us=B01NH0HTM5&amp;amp;l=en&quot; aria-label=&quot;View VIVO STAND-V001O on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Sold by VIVO (ships from Amazon). Black (STAND-V001O). The maker also sells a white version; whether the rating count is shared across colors was not verified.&lt;/p&gt;
&lt;h3 id=&quot;monitor-15-kg-without-the-stand-desk-2050-mm-vesa-100100&quot;&gt;Monitor 15 kg without the stand, desk 20–50 mm, VESA 100×100&lt;/h3&gt;
&lt;p&gt;The maker’s spec covers 9.1–19.1 kg load, VESA 75x75 / 100x100 / 200x100 / 200x200, desktops 10–66 mm thick (&lt;a href=&quot;https://media.ergotron.com/reserved/resources/05-hxarms-ea-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;maker specs&lt;/a&gt;). It suits monitors around 15 kg.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Ergotron HX&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61efDpLHxmL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Ergotron HX&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B08RD4FJ3Q?q=Ergotron+HX&amp;amp;l=en&quot; aria-label=&quot;View Ergotron HX on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Sold by Ergotron, Inc (maker). Matte black, standard pivot (45-475-224). Delivery was free to New York 10001 on the check date. Whether the rating count is shared with other models on the listing wasn&amp;#39;t checked.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;why-does-my-monitor-arm-keep-rising-with-a-light-monitor&quot;&gt;Why does my monitor arm keep rising with a light monitor?&lt;/h3&gt;
&lt;p&gt;A monitor lighter than the arm’s minimum load can make it rise by itself. 4 of the monitors compared weigh less than the 3.2 kg minimum load of one arm compared.&lt;/p&gt;
&lt;h3 id=&quot;is-an-arms-weight-limit-compared-with-the-monitor-with-or-without-its-stand&quot;&gt;Is an arm’s weight limit compared with the monitor with or without its stand?&lt;/h3&gt;
&lt;p&gt;Use the weight without the stand, because the stand comes off when you mount the arm. Among current arms from major brands, in range by weight, 2 kg to 4.5 kg: 8+; up to 11.3 kg: 3+; up to 19.1 kg: 1+; beyond that: none.&lt;/p&gt;
&lt;h3 id=&quot;can-a-monitor-arm-clamp-onto-a-thin-or-thick-desk&quot;&gt;Can a monitor arm clamp onto a thin or thick desk?&lt;/h3&gt;
&lt;p&gt;Each arm clamps only a set range of thickness. Among current arms from major brands, a 10 mm desk fits 10 and a 15 mm desk fits 11.&lt;/p&gt;
&lt;p&gt;Clamping by desk thickness, 20 mm to 50 mm: 12+; up to 85 mm: 6+; up to 108 mm: 1+; beyond that: none.&lt;/p&gt;
&lt;h3 id=&quot;can-a-monitor-with-no-vesa-holes-go-on-an-arm&quot;&gt;Can a monitor with no VESA holes go on an arm?&lt;/h3&gt;
&lt;p&gt;A monitor with no VESA holes cannot attach directly to the arm; check whether a compatible mounting adapter exists. This article did not check adapter fit.&lt;/p&gt;
&lt;p&gt;Every monitor compared uses 100×100 mm holes, and every arm compared takes 100×100.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Weight ranges, clamp thickness and VESA come from each maker’s own documents, checked in October 2026. An arm with no published minimum load is not counted as a fit, since the minimum can’t be checked. Each pick is the cheapest, shipping included, of the current arms from major brands that have a maker-published spec and enough ratings. Check prices on Amazon.com. Ergotron’s Japan page and US PDF differ on the HX clamp minimum, and this article uses the US PDF’s 10 mm.&lt;/p&gt;&lt;p&gt;Sources: &lt;a href=&quot;https://media.ergotron.com/reserved/resources/05-056-ea-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Ergotron&lt;/a&gt; ／ &lt;a href=&quot;https://media.ergotron.com/reserved/resources/05-hxarms-ea-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Ergotron HX (US PDF)&lt;/a&gt; ／ &lt;a href=&quot;https://www.ergotron.com/ja-jp/%E8%A3%BD%E5%93%81/%E8%A3%BD%E5%93%81%E8%A9%B3%E7%B4%B0/45-475&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Ergotron HX (Japan page)&lt;/a&gt; ／ &lt;a href=&quot;https://www.elecom.co.jp/products/DPA-SS02BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ELECOM&lt;/a&gt; ／ &lt;a href=&quot;https://direct.sanwa.co.jp/ItemPage/100-LAC003&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Sanwa Direct&lt;/a&gt; ／ &lt;a href=&quot;https://www.green-house.co.jp/products/gh-amcs01a/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Green House&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Population: 13 monitors with a maker-published weight without stand, and 13 arms with maker documents (load range, clamp thickness and VESA are the makers’ own figures)&lt;/li&gt;
&lt;li&gt;Weight check: minimum ≤ weight without stand ≤ maximum is in range; below the minimum is ‘below’; above the maximum is ‘above’. An arm with no published minimum is ‘can’t be checked’ and is not counted as in range&lt;/li&gt;
&lt;li&gt;Desk-thickness check: clamp minimum ≤ thickness ≤ clamp maximum clamps. Missing figures mean ‘can’t be checked’. The Ergotron HX clamp minimum is 16 mm on the Japan page and 10 mm in the US PDF, so the Japanese article counts 16 mm and the English article 10 mm&lt;/li&gt;
&lt;li&gt;VESA check: whether the arm’s supported list includes 100×100. All 13 monitors checked are 100×100&lt;/li&gt;
&lt;li&gt;Counts per band (for example 8+ in the table) are the minimum number of arms in range over every weight or thickness inside the band, in 0.01 steps; the count beyond the last band is checked to be zero&lt;/li&gt;
&lt;li&gt;‘Covers all monitors’ means minimum load ≤ the lightest monitor and maximum load ≥ the heaviest. An arm whose minimum equals the lightest monitor has zero margin (borderline)&lt;/li&gt;
&lt;li&gt;The heavy-monitor pick assumes 15 kg and desks of 20–50 mm (a common range, not measured). No unit was tested&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;






































































































































































































































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Ergotron LX minimum load&lt;/td&gt;&lt;td&gt;3.2 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://media.ergotron.com/reserved/resources/05-056-ea-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;media.ergotron.com&lt;/a&gt; Weight Capacity 7–25 lbs (3,2–11,3 kg)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ergotron LX maximum load&lt;/td&gt;&lt;td&gt;11.3 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://media.ergotron.com/reserved/resources/05-056-ea-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;media.ergotron.com&lt;/a&gt; Weight Capacity 7–25 lbs (3,2–11,3 kg)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ergotron LX clamp minimum thickness&lt;/td&gt;&lt;td&gt;10 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ergotron.com/en-us/products/product-details/45-241&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ergotron.com&lt;/a&gt; Desk Clamp attaches to surface edge 0.4” to 2.4” (10 to 60 mm) thick&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ergotron LX clamp maximum thickness&lt;/td&gt;&lt;td&gt;60 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ergotron.com/en-us/products/product-details/45-241&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ergotron.com&lt;/a&gt; Desk Clamp attaches to surface edge 0.4” to 2.4” (10 to 60 mm) thick&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ergotron LX warranty&lt;/td&gt;&lt;td&gt;10 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://media.ergotron.com/reserved/resources/05-056-ea-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;media.ergotron.com&lt;/a&gt; Weight Capacity 7–25 lbs (3,2–11,3 kg)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ergotron HX minimum load&lt;/td&gt;&lt;td&gt;9.1 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://media.ergotron.com/reserved/resources/05-hxarms-ea-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;media.ergotron.com&lt;/a&gt; Weight Capacity 20–42 lbs (9,1–19,1 kg)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ergotron HX maximum load&lt;/td&gt;&lt;td&gt;19.1 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://media.ergotron.com/reserved/resources/05-hxarms-ea-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;media.ergotron.com&lt;/a&gt; Weight Capacity 20–42 lbs (9,1–19,1 kg)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ergotron HX clamp minimum thickness&lt;/td&gt;&lt;td&gt;16 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ergotron.com/ja-jp/%E8%A3%BD%E5%93%81/%E8%A3%BD%E5%93%81%E8%A9%B3%E7%B4%B0/45-475&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ergotron.com&lt;/a&gt; JP page: 16–66 mm (US page says 0.4–2.6 in = 10–66 mm; the narrower JP range is&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ergotron HX clamp minimum thickness (US)&lt;/td&gt;&lt;td&gt;10 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://media.ergotron.com/reserved/resources/05-hxarms-ea-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;media.ergotron.com&lt;/a&gt; US PDF: desk thickness 10–66 mm (0.4–2.6 in). The JP page says 16–66 mm; the Eng&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ergotron HX clamp maximum thickness&lt;/td&gt;&lt;td&gt;66 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ergotron.com/ja-jp/%E8%A3%BD%E5%93%81/%E8%A3%BD%E5%93%81%E8%A9%B3%E7%B4%B0/45-475&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ergotron.com&lt;/a&gt; JP page: 16–66 mm (US page says 0.4–2.6 in = 10–66 mm; the narrower JP range is&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ergotron HX warranty&lt;/td&gt;&lt;td&gt;10 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://media.ergotron.com/reserved/resources/05-hxarms-ea-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;media.ergotron.com&lt;/a&gt; Weight Capacity 20–42 lbs (9,1–19,1 kg)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM DPA-SS02BK minimum load&lt;/td&gt;&lt;td&gt;2 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/DPA-SS02BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM DPA-SS02BK maximum load&lt;/td&gt;&lt;td&gt;9 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/DPA-SS02BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM DPA-SS02BK clamp minimum thickness&lt;/td&gt;&lt;td&gt;10 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/DPA-SS02BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM DPA-SS02BK clamp maximum thickness&lt;/td&gt;&lt;td&gt;85 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/products/DPA-SS02BK.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Direct 100-LAC003 minimum load&lt;/td&gt;&lt;td&gt;1.5 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://direct.sanwa.co.jp/ItemPage/100-LAC003&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;direct.sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Direct 100-LAC003 maximum load&lt;/td&gt;&lt;td&gt;12 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://direct.sanwa.co.jp/ItemPage/100-LAC003&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;direct.sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Direct 100-LAC003 clamp minimum thickness&lt;/td&gt;&lt;td&gt;10 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://direct.sanwa.co.jp/ItemPage/100-LAC003&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;direct.sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Direct 100-LAC003 clamp maximum thickness&lt;/td&gt;&lt;td&gt;85 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://direct.sanwa.co.jp/ItemPage/100-LAC003&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;direct.sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Direct 100-LAC003 warranty&lt;/td&gt;&lt;td&gt;1 year&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://direct.sanwa.co.jp/ItemPage/100-LAC003&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;direct.sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Direct 100-LA018 minimum load&lt;/td&gt;&lt;td&gt;2 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://direct.sanwa.co.jp/ItemPage/100-LA018&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;direct.sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Direct 100-LA018 maximum load&lt;/td&gt;&lt;td&gt;10 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://direct.sanwa.co.jp/ItemPage/100-LA018&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;direct.sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Direct 100-LA018 clamp minimum thickness&lt;/td&gt;&lt;td&gt;10 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://direct.sanwa.co.jp/ItemPage/100-LA018&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;direct.sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Direct 100-LA018 clamp maximum thickness&lt;/td&gt;&lt;td&gt;50 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://direct.sanwa.co.jp/ItemPage/100-LA018&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;direct.sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Direct 100-LA018 warranty&lt;/td&gt;&lt;td&gt;1 year&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://direct.sanwa.co.jp/ItemPage/100-LA018&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;direct.sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply CR-LAC1405BK minimum load&lt;/td&gt;&lt;td&gt;2 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=CR-LAC1405BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply CR-LAC1405BK maximum load&lt;/td&gt;&lt;td&gt;8 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=CR-LAC1405BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply CR-LAC1405BK clamp minimum thickness&lt;/td&gt;&lt;td&gt;10 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=CR-LAC1405BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sanwa Supply CR-LAC1405BK clamp maximum thickness&lt;/td&gt;&lt;td&gt;50 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=CR-LAC1405BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Green House GH-AMCS01A minimum load&lt;/td&gt;&lt;td&gt;2 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.green-house.co.jp/products/gh-amcs01a/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;green-house.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Green House GH-AMCS01A maximum load&lt;/td&gt;&lt;td&gt;6.5 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.green-house.co.jp/products/gh-amcs01a/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;green-house.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Green House GH-AMCS01A clamp minimum thickness&lt;/td&gt;&lt;td&gt;10 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.green-house.co.jp/products/gh-amcs01a/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;green-house.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Green House GH-AMCS01A clamp maximum thickness&lt;/td&gt;&lt;td&gt;80 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.green-house.co.jp/products/gh-amcs01a/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;green-house.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Green House GH-AMCS01A warranty&lt;/td&gt;&lt;td&gt;3 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.green-house.co.jp/products/gh-amcs01a/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;green-house.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUANUO HNSS6 minimum load&lt;/td&gt;&lt;td&gt;2 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://cdn.shopify.com/s/files/1/0647/5389/3622/files/HNSS6-Manual.pdf?v=1719478018&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cdn.shopify.com&lt;/a&gt; weight of your monitor (including accessories) is between 4.4-19.8 lbs (2-9kg)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUANUO HNSS6 maximum load&lt;/td&gt;&lt;td&gt;9 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://cdn.shopify.com/s/files/1/0647/5389/3622/files/HNSS6-Manual.pdf?v=1719478018&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cdn.shopify.com&lt;/a&gt; weight of your monitor (including accessories) is between 4.4-19.8 lbs (2-9kg)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUANUO HNSS6 clamp minimum thickness&lt;/td&gt;&lt;td&gt;15 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://cdn.shopify.com/s/files/1/0647/5389/3622/files/HNSS6-Manual.pdf?v=1719478018&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cdn.shopify.com&lt;/a&gt; C-Clamp 0.59”-3.54” (15-90mm)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUANUO HNSS6 clamp maximum thickness&lt;/td&gt;&lt;td&gt;90 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://cdn.shopify.com/s/files/1/0647/5389/3622/files/HNSS6-Manual.pdf?v=1719478018&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cdn.shopify.com&lt;/a&gt; C-Clamp 0.59”-3.54” (15-90mm)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VIVO STAND-V001O minimum load&lt;/td&gt;&lt;td&gt;2 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vivo-us.com/products/stand-v001o&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vivo-us.com&lt;/a&gt; Weight Capacity: 4.4 lbs to 19.8 lbs&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VIVO STAND-V001O maximum load&lt;/td&gt;&lt;td&gt;9 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vivo-us.com/products/stand-v001o&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vivo-us.com&lt;/a&gt; Weight Capacity: 4.4 lbs to 19.8 lbs&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VIVO STAND-V001O clamp minimum thickness&lt;/td&gt;&lt;td&gt;10 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vivo-us.com/products/stand-v001o&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vivo-us.com&lt;/a&gt; Desktop Thickness for Clamp: 0.4” to 3.1”&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VIVO STAND-V001O clamp maximum thickness&lt;/td&gt;&lt;td&gt;80 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vivo-us.com/products/stand-v001o&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vivo-us.com&lt;/a&gt; Desktop Thickness for Clamp: 0.4” to 3.1”&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VIVO STAND-V001O warranty&lt;/td&gt;&lt;td&gt;3 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vivo-us.com/products/stand-v001o&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vivo-us.com&lt;/a&gt; Weight Capacity: 4.4 lbs to 19.8 lbs&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazon Basics gas spring arm (7 kg) minimum load&lt;/td&gt;&lt;td&gt;2 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://m.media-amazon.com/images/I/D1XLEJgU6ZL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;m.media-amazon.com&lt;/a&gt; manual: Maximum weight capacity 15.4 lbs (7 kg)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazon Basics gas spring arm (7 kg) maximum load&lt;/td&gt;&lt;td&gt;7 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://m.media-amazon.com/images/I/D1XLEJgU6ZL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;m.media-amazon.com&lt;/a&gt; manual: Maximum weight capacity 15.4 lbs (7 kg)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazon Basics gas spring arm (7 kg) clamp minimum thickness&lt;/td&gt;&lt;td&gt;10 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://m.media-amazon.com/images/I/D1XLEJgU6ZL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;m.media-amazon.com&lt;/a&gt; screw positions 1-7.3 cm / 3.5-10.2 cm&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazon Basics gas spring arm (7 kg) clamp maximum thickness&lt;/td&gt;&lt;td&gt;102 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://m.media-amazon.com/images/I/D1XLEJgU6ZL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;m.media-amazon.com&lt;/a&gt; screw positions 1-7.3 cm / 3.5-10.2 cm&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazon Basics gas spring arm (7 kg) warranty&lt;/td&gt;&lt;td&gt;1 year&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://m.media-amazon.com/images/I/D1XLEJgU6ZL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;m.media-amazon.com&lt;/a&gt; manual: Maximum weight capacity 15.4 lbs (7 kg)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell MSA20 minimum load&lt;/td&gt;&lt;td&gt;2.2 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://i.dell.com/sites/csdocuments/Merchandizing_Docs/ja/dell_%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC%E3%82%A2%E3%83%BC%E3%83%A0_msa20.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;i.dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell MSA20 maximum load&lt;/td&gt;&lt;td&gt;10 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://i.dell.com/sites/csdocuments/Merchandizing_Docs/ja/dell_%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC%E3%82%A2%E3%83%BC%E3%83%A0_msa20.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;i.dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell MSA20 clamp maximum thickness&lt;/td&gt;&lt;td&gt;53 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://i.dell.com/sites/csdocuments/Merchandizing_Docs/ja/dell_%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC%E3%82%A2%E3%83%BC%E3%83%A0_msa20.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;i.dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell MSA20 warranty&lt;/td&gt;&lt;td&gt;3 years&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://i.dell.com/sites/csdocuments/Merchandizing_Docs/ja/dell_%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC%E3%82%A2%E3%83%BC%E3%83%A0_msa20.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;i.dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazon Basics monitor arm (steel, pole) maximum load&lt;/td&gt;&lt;td&gt;10 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://m.media-amazon.com/images/I/C1rJsuWQUrL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;m.media-amazon.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazon Basics monitor arm (steel, pole) clamp minimum thickness&lt;/td&gt;&lt;td&gt;20 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://m.media-amazon.com/images/I/C1rJsuWQUrL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;m.media-amazon.com&lt;/a&gt; p.13 Step 3 ‘20 - 100 mm’&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazon Basics monitor arm (steel, pole) clamp maximum thickness&lt;/td&gt;&lt;td&gt;100 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://m.media-amazon.com/images/I/C1rJsuWQUrL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;m.media-amazon.com&lt;/a&gt; p.13 Step 3 ‘20 - 100 mm’&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazon Basics monitor arm (steel, pole) warranty&lt;/td&gt;&lt;td&gt;1 year&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://m.media-amazon.com/images/I/C1rJsuWQUrL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;m.media-amazon.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazon Basics adjustable arm (10 kg, pole) maximum load&lt;/td&gt;&lt;td&gt;10 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://m.media-amazon.com/images/I/D1H5LEJY3SL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;m.media-amazon.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazon Basics adjustable arm (10 kg, pole) clamp minimum thickness&lt;/td&gt;&lt;td&gt;10 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://m.media-amazon.com/images/I/D1H5LEJY3SL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;m.media-amazon.com&lt;/a&gt; Assembly A: 0.39-4.25” (1-10.8 cm)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazon Basics adjustable arm (10 kg, pole) clamp maximum thickness&lt;/td&gt;&lt;td&gt;108 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://m.media-amazon.com/images/I/D1H5LEJY3SL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;m.media-amazon.com&lt;/a&gt; Assembly A: 0.39-4.25” (1-10.8 cm)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Amazon Basics adjustable arm (10 kg, pole) warranty&lt;/td&gt;&lt;td&gt;1 year&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://m.media-amazon.com/images/I/D1H5LEJY3SL.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;m.media-amazon.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung S30GD weight without stand&lt;/td&gt;&lt;td&gt;2 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/ca/monitors/full-hd-1080p/essential-monitor-s3-s30gd-24-inch-fhd-ips-100hz-ls24d300ganxza/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; weight without stand 2.0 kg&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 24MR400-B weight without stand&lt;/td&gt;&lt;td&gt;2.34 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/uk/monitors/fhd-qhd/24mr400-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt; weight without stand 2.34 kg&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VA24EHF weight without stand&lt;/td&gt;&lt;td&gt;2.46 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/eye-care/va24ehf/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; net weight without stand 2.46 kg&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell P2425H weight without stand&lt;/td&gt;&lt;td&gt;3.12 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual18231535-dell-p2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; weight panel only 3.12 kg&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell S2425H weight without stand&lt;/td&gt;&lt;td&gt;3.29 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; weight panel only 3.29 kg&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ GW2490 weight without stand&lt;/td&gt;&lt;td&gt;3.54 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/home/gw2490/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt; net weight without stand 3.54 kg&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 27MR400-B weight without stand&lt;/td&gt;&lt;td&gt;3.26 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/uk/monitors/fhd-qhd/27mr400-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt; weight without stand 3.26 kg&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MSI MAG 275QF weight without stand&lt;/td&gt;&lt;td&gt;3.57 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.msi.com/Monitor/MAG-275QF/Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;msi.com&lt;/a&gt; weight without stand 3.57 kg&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG27AQ3A weight without stand&lt;/td&gt;&lt;td&gt;3.6 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27aq3a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; net weight without stand 3.6 kg&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell P2725H weight without stand&lt;/td&gt;&lt;td&gt;4.03 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual18231535-dell-p2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; weight panel only 4.03 kg&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell S2725H weight without stand&lt;/td&gt;&lt;td&gt;4.3 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; weight panel only 4.30 kg&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell S2725DS weight without stand&lt;/td&gt;&lt;td&gt;4.49 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2537948-dell-s2725ds-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; weight panel only 4.49 kg&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ GW2790 weight without stand&lt;/td&gt;&lt;td&gt;4.5 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/home/gw2790/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt; net weight without stand 4.5 kg&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Monitors with VESA 100×100&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LX durability test cycles&lt;/td&gt;&lt;td&gt;10,000 cycles&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://media.ergotron.com/reserved/resources/05-056-ea-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;media.ergotron.com&lt;/a&gt; Passes Ergotron’s 10,000-cycle motion test&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LX tension screw turns&lt;/td&gt;&lt;td&gt;40 full turns&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://media.ergotron.com/reserved/resources/888-45-040-w-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;media.ergotron.com&lt;/a&gt; p.10 May take 40 full revolutions&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LX hex key size&lt;/td&gt;&lt;td&gt;4 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://media.ergotron.com/reserved/resources/888-45-040-w-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;media.ergotron.com&lt;/a&gt; p.2 tools needed 4mm hex key&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LX desk depth guide&lt;/td&gt;&lt;td&gt;64 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://media.ergotron.com/reserved/resources/dim2-056-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;media.ergotron.com&lt;/a&gt; Monitor depth greater than 2.5” (64 mm) may diminish capacity&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LX desk depth (page)&lt;/td&gt;&lt;td&gt;89 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ergotron.com/en-us/products/product-details/45-241&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ergotron.com&lt;/a&gt; Monitor depth greater than 3.5” (8.9 cm) may diminish capacity&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LX heavy-monitor threshold&lt;/td&gt;&lt;td&gt;9.1 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ergotron.com/en-us/products/product-details/45-241&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ergotron.com&lt;/a&gt; With monitors greater than 20 lbs (9.1 kg) in weight, the vertical range of moti&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LX heavy-monitor offset&lt;/td&gt;&lt;td&gt;11 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ergotron.com/en-us/products/product-details/45-241&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ergotron.com&lt;/a&gt; reduced up to 4.5” (11 cm)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LX reach&lt;/td&gt;&lt;td&gt;64 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://media.ergotron.com/reserved/resources/05-056-ea-orig.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;media.ergotron.com&lt;/a&gt; Extension ≤ 25″ (64 cm)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUANUO durability test cycles&lt;/td&gt;&lt;td&gt;20,000 cycles&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huanuo.com/products/huanuo-hnss6-single-monitor-mount-for-13-to-32-inch-screens-bundle&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huanuo.com&lt;/a&gt; The premium gas spring is 20,000 times cycle-tested&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUANUO factory preset&lt;/td&gt;&lt;td&gt;4–5 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://cdn.shopify.com/s/files/1/0647/5389/3622/files/HNSS6-Manual.pdf?v=1719478018&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cdn.shopify.com&lt;/a&gt; p.09 Gas spring tension is preset at 8.8-11 lbs (4-5kg)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUANUO Japan warranty&lt;/td&gt;&lt;td&gt;24 months&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huanuo.co.jp/products/hnss6-j&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huanuo.co.jp&lt;/a&gt; 24-Month Warranty&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ELECOM hex key size&lt;/td&gt;&lt;td&gt;5 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.elecom.co.jp/support/manual/displayarm/dpa-ss02bk/dpa-ss02bk_v01.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;elecom.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;100-LAC1405 curved-monitor limit&lt;/td&gt;&lt;td&gt;5 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.sanwa.co.jp/product/syohin?code=CR-LAC1405BK&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;sanwa.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Max weight with offset VESA holes&lt;/td&gt;&lt;td&gt;14 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ergotron.com/en-us/support/vesa-standard&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ergotron.com&lt;/a&gt; FDMI MIS-D ／ 75 x 75 or 100 x 100 mm ／ M4 x 10 mm ／ ≤ 14 kg&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GH-AMCS01A top clearance&lt;/td&gt;&lt;td&gt;105 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.green-house.co.jp/products/gh-amcs01a/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;green-house.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GH-AMCS01A desk depth&lt;/td&gt;&lt;td&gt;100 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.green-house.co.jp/products/gh-amcs01a/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;green-house.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Monitor arm fit checker (weight, desk thickness, VESA): quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;










































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;3 kg (6.6 lb), 25 mm (0.98 in), 100×100&lt;/td&gt;&lt;td&gt;✓ Arms fit your conditions. Among current arms from major brands, 8 fit your conditions. Why the others don’t fit: weight 2, desktop thickness 0, hole pattern 0, can’t be checked (no minimum load or clamp range published) 3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-22-monitor-arm/?monitor-arm-fit-weight=3&amp;amp;monitor-arm-fit-thick=25&amp;amp;monitor-arm-fit-vesa=100#monitor-arm-fit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3 kg (6.6 lb), 40 mm (1.57 in), 100×100&lt;/td&gt;&lt;td&gt;✓ Arms fit your conditions. Among current arms from major brands, 8 fit your conditions. Why the others don’t fit: weight 2, desktop thickness 0, hole pattern 0, can’t be checked (no minimum load or clamp range published) 3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-22-monitor-arm/?monitor-arm-fit-weight=3&amp;amp;monitor-arm-fit-thick=40&amp;amp;monitor-arm-fit-vesa=100#monitor-arm-fit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5 kg (11 lb), 25 mm (0.98 in), 100×100&lt;/td&gt;&lt;td&gt;✓ Arms fit your conditions. Among current arms from major brands, 9 fit your conditions. Why the others don’t fit: weight 1, desktop thickness 0, hole pattern 0, can’t be checked (no minimum load or clamp range published) 3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-22-monitor-arm/?monitor-arm-fit-weight=5&amp;amp;monitor-arm-fit-thick=25&amp;amp;monitor-arm-fit-vesa=100#monitor-arm-fit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5 kg (11 lb), 40 mm (1.57 in), 100×100&lt;/td&gt;&lt;td&gt;✓ Arms fit your conditions. Among current arms from major brands, 9 fit your conditions. Why the others don’t fit: weight 1, desktop thickness 0, hole pattern 0, can’t be checked (no minimum load or clamp range published) 3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-22-monitor-arm/?monitor-arm-fit-weight=5&amp;amp;monitor-arm-fit-thick=40&amp;amp;monitor-arm-fit-vesa=100#monitor-arm-fit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7 kg (15.4 lb), 25 mm (0.98 in), 100×100&lt;/td&gt;&lt;td&gt;✓ Arms fit your conditions. Among current arms from major brands, 8 fit your conditions. Why the others don’t fit: weight 2, desktop thickness 0, hole pattern 0, can’t be checked (no minimum load or clamp range published) 3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-22-monitor-arm/?monitor-arm-fit-weight=7&amp;amp;monitor-arm-fit-thick=25&amp;amp;monitor-arm-fit-vesa=100#monitor-arm-fit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7 kg (15.4 lb), 40 mm (1.57 in), 100×100&lt;/td&gt;&lt;td&gt;✓ Arms fit your conditions. Among current arms from major brands, 8 fit your conditions. Why the others don’t fit: weight 2, desktop thickness 0, hole pattern 0, can’t be checked (no minimum load or clamp range published) 3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-22-monitor-arm/?monitor-arm-fit-weight=7&amp;amp;monitor-arm-fit-thick=40&amp;amp;monitor-arm-fit-vesa=100#monitor-arm-fit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;9 kg (19.8 lb), 25 mm (0.98 in), 100×100&lt;/td&gt;&lt;td&gt;✓ Arms fit your conditions. Among current arms from major brands, 6 fit your conditions. Why the others don’t fit: weight 4, desktop thickness 0, hole pattern 0, can’t be checked (no minimum load or clamp range published) 3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-22-monitor-arm/?monitor-arm-fit-weight=9&amp;amp;monitor-arm-fit-thick=25&amp;amp;monitor-arm-fit-vesa=100#monitor-arm-fit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;9 kg (19.8 lb), 40 mm (1.57 in), 100×100&lt;/td&gt;&lt;td&gt;✓ Arms fit your conditions. Among current arms from major brands, 6 fit your conditions. Why the others don’t fit: weight 4, desktop thickness 0, hole pattern 0, can’t be checked (no minimum load or clamp range published) 3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-22-monitor-arm/?monitor-arm-fit-weight=9&amp;amp;monitor-arm-fit-thick=40&amp;amp;monitor-arm-fit-vesa=100#monitor-arm-fit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;12 kg (26.5 lb), 25 mm (0.98 in), 100×100&lt;/td&gt;&lt;td&gt;✓ Arms fit your conditions. Among current arms from major brands, 2 fit your conditions. Why the others don’t fit: weight 10, desktop thickness 0, hole pattern 0, can’t be checked (no minimum load or clamp range published) 1&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-22-monitor-arm/?monitor-arm-fit-weight=12&amp;amp;monitor-arm-fit-thick=25&amp;amp;monitor-arm-fit-vesa=100#monitor-arm-fit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;12 kg (26.5 lb), 40 mm (1.57 in), 100×100&lt;/td&gt;&lt;td&gt;✓ Arms fit your conditions. Among current arms from major brands, 2 fit your conditions. Why the others don’t fit: weight 10, desktop thickness 0, hole pattern 0, can’t be checked (no minimum load or clamp range published) 1&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-22-monitor-arm/?monitor-arm-fit-weight=12&amp;amp;monitor-arm-fit-thick=40&amp;amp;monitor-arm-fit-vesa=100#monitor-arm-fit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5 kg (11 lb), 10 mm (0.39 in), 100×100&lt;/td&gt;&lt;td&gt;✓ Arms fit your conditions. Among current arms from major brands, 8 fit your conditions. Why the others don’t fit: weight 1, desktop thickness 1, hole pattern 0, can’t be checked (no minimum load or clamp range published) 3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-22-monitor-arm/?monitor-arm-fit-weight=5&amp;amp;monitor-arm-fit-thick=10&amp;amp;monitor-arm-fit-vesa=100#monitor-arm-fit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5 kg (11 lb), 80 mm (3.15 in), 100×100&lt;/td&gt;&lt;td&gt;✓ Arms fit your conditions. Among current arms from major brands, 6 fit your conditions. Why the others don’t fit: weight 1, desktop thickness 3, hole pattern 0, can’t be checked (no minimum load or clamp range published) 3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-22-monitor-arm/?monitor-arm-fit-weight=5&amp;amp;monitor-arm-fit-thick=80&amp;amp;monitor-arm-fit-vesa=100#monitor-arm-fit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5 kg (11 lb), 25 mm (0.98 in), 75×75&lt;/td&gt;&lt;td&gt;✓ Arms fit your conditions. Among current arms from major brands, 9 fit your conditions. Why the others don’t fit: weight 1, desktop thickness 0, hole pattern 0, can’t be checked (no minimum load or clamp range published) 3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-22-monitor-arm/?monitor-arm-fit-weight=5&amp;amp;monitor-arm-fit-thick=25&amp;amp;monitor-arm-fit-vesa=75#monitor-arm-fit&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>monitor</category></item><item><title>IPS vs VA vs TN vs OLED: Which Monitor Panel to Buy</title><link>https://aulvem.com/blog/2021-03-21-monitor-panel/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-21-monitor-panel/</guid><description>IPS, VA, TN and OLED compared on maker spec sheets and warranty pages checked in October 2026. Among current models from major brands, VA or OLED suit dark-room movies and games, IPS suits office work, and TN or OLED suit high refresh rates. How makers word OLED burn-in coverage differs.</description><pubDate>Sun, 21 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Among current models from major brands, VA or OLED suit dark-room movies and games, IPS suits office work, and TN or OLED suit high refresh rates. Stated contrast is 1,000:1–1,500:1 for IPS and 3,000:1–5,000:1 for VA, against 1,000,000:1–1,500,000:1 for OLED.&lt;/p&gt;
&lt;p&gt;As of October 2026, this compares current models from Dell, LG, ASUS, MSI and other major brands on their official specs, plus each maker’s warranty page. If you’re unsure, find the row below that matches how you use the monitor. None of the models was tested in person, so there’s no verdict on how they look.&lt;/p&gt;
&lt;h2 id=&quot;quick-guide-which-panel-for-which-use&quot;&gt;Quick guide: which panel for which use&lt;/h2&gt;
&lt;p&gt;Assumptions: spec-sheet numbers for current models from major brands; none of the models was tested in person. Refresh rate (Hz) is how many times per second the screen updates.&lt;/p&gt;

























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Use&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Panel to consider&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Spec behind it&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Movies and games in a dark room&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;VA or OLED&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Contrast: VA 3,000:1–5,000:1, OLED 1,000,000:1–1,500,000:1; IPS and TN 1,000:1–1,500:1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Competitive FPS and fighting games&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;TN or OLED&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Max refresh: TN 280Hz–600Hz, OLED 240Hz–360Hz, VA 165Hz–280Hz, IPS 100Hz–180Hz. The VA range overlaps TN and OLED, so refresh rate alone doesn’t separate VA from them. OLED response time is 0.03 ms (GtG) on every model&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Office work, or viewing from an angle&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;IPS&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Spec viewing angles are 178°/178° for IPS, VA and OLED alike. EIZO says that among LCDs (IPS, VA, TN) IPS shows the least change in brightness and color from an angle. There is no source comparing OLED&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;When no row fits, go by this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Not sure:&lt;/strong&gt; IPS if you want an LCD. EIZO says that among LCDs it shows the least change in brightness and color from an angle&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deeper blacks matter most:&lt;/strong&gt; VA&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OLED:&lt;/strong&gt; check the maker’s warranty page for your country before you buy&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;what-each-panel-type-does-best&quot;&gt;What each panel type does best&lt;/h2&gt;
&lt;p&gt;IPS, VA and TN are LCDs. On an OLED, every pixel makes its own light.&lt;/p&gt;
&lt;p&gt;The numbers cover the official specs of current models from major brands.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IPS:&lt;/strong&gt; the liquid crystals lie parallel to the screen. Contrast is 1,000:1–1,500:1 and max refresh is 100Hz–180Hz&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VA:&lt;/strong&gt; the highest contrast among the LCDs, at 3,000:1–5,000:1. Max refresh is 165Hz–280Hz&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TN:&lt;/strong&gt; only 24.1-inch 1080p models turned up. Max refresh is 280Hz–600Hz&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OLED:&lt;/strong&gt; contrast is 1,000,000:1–1,500,000:1 and max refresh is 240Hz–360Hz. BenQ says burn-in, a lingering image, is more likely&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;how-to-check-a-spec-sheet&quot;&gt;How to check a spec sheet&lt;/h2&gt;
&lt;p&gt;Look for these four things on the spec sheet of any monitor you’re considering.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Panel type.&lt;/strong&gt; The “panel” line says IPS, VA, TN or OLED. “Fast IPS” and “Rapid VA” are maker names for the same types&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How contrast is labeled.&lt;/strong&gt; Compare “typical”, “static” or “native” numbers with each other. Keep “dynamic” numbers separate&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Viewing angle condition.&lt;/strong&gt; “CR≥10” means the angle where contrast drops to 10:1. Among current models from major brands, IPS and VA both list 178°/178°&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How response time is measured.&lt;/strong&gt; GtG and MPRT are different numbers, so compare like with like&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Black level is white brightness divided by contrast. On the published numbers, at the same white brightness, a VA black is 1/2 to 1/5 the brightness of an IPS black. Those are maker claims, so what you see may not match the math.&lt;/p&gt;
&lt;h2 id=&quot;reading-viewing-angle-and-response-time-numbers&quot;&gt;Reading viewing angle and response time numbers&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Viewing angle:&lt;/strong&gt; Among current models from major brands, the viewing angle spec is 178°/178° on every IPS, VA and OLED model compared, so it doesn’t tell them apart. EIZO says the number doesn’t describe brightness or color shift from an angle&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Response time:&lt;/strong&gt; Among current models from major brands, GtG and MPRT response times measure different things, so only same-method numbers can be compared. 3 models list MPRT only. GtG is how long a pixel takes to switch from one gray to another. MPRT expresses motion blur as a time&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OLED response time:&lt;/strong&gt; every OLED model compared lists 0.03 ms (GtG), which is under 1/6 the shortest LCD GtG&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;oled-burn-in-warranty-by-maker-and-country&quot;&gt;OLED burn-in warranty by maker and country&lt;/h2&gt;
&lt;p&gt;This table shows what each maker’s warranty and product pages said. A product page covers only the model on that page.&lt;/p&gt;








































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Maker&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Japan&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;US&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Dell (Alienware)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Up to 3 years, including burn-in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Up to 3 years, including burn-in&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;ASUS (ROG)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 years; the Japanese page says “including panel burn-in” in English&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 years, including burn-in&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;LG&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 years, including burn-in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;2 years; burn-in coverage isn’t stated&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;MSI&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 years; burn-in coverage isn’t stated&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 years, including burn-in&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Samsung&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;No official sales or warranty page found&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Select models: 3 years, including burn-in. Commercial use and misuse excluded&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;GIGABYTE&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;3 years, including burn-in&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Product page: 3 years incl. burn-in. Warranty page: OLED 1 year, burn-in repairs paid — they conflict&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;If you’ll use an OLED for office work, pick a maker that covers burn-in and read the years and conditions.&lt;/p&gt;
&lt;p&gt;Makers warn that static images left on screen for long stretches can burn in. None publishes how many hours it takes, so that isn’t covered here.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-use&quot;&gt;Picks by use&lt;/h2&gt;
&lt;p&gt;These come from current models from major brands, limited to new listings on Amazon.com sold by Amazon or the maker. Each has 100 or more ratings and at least 4 stars.&lt;/p&gt;
&lt;p&gt;Amazon.com listings of two AOC and three ZOWIE models weren’t checked, so they aren’t picks. Among the other models checked, each pick is the cheapest with shipping. Prices and ratings were checked in October 2026, and none was tested in person.&lt;/p&gt;
&lt;p&gt;Check the price before you buy.&lt;/p&gt;
&lt;h3 id=&quot;office-work-ips&quot;&gt;Office work, IPS&lt;/h3&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG27AQ3A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71awxc1RPRL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG27AQ3A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0BZR9TMBJ?q=ASUS+TUF+Gaming+VG27AQ3A&amp;amp;us=B0BZR9TMBJ&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG27AQ3A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;
&lt;h3 id=&quot;movies-and-games-in-a-dark-room-va&quot;&gt;Movies and games in a dark room, VA&lt;/h3&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG 27GS60QC-B&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81twLlLSkUL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG 27GS60QC-B&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0D2FZS3JM?q=LG+27GS60QC-B&amp;amp;us=B0D2FZS3JM&amp;amp;l=en&quot; aria-label=&quot;View LG 27GS60QC-B on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Competitive FPS, TN: none confirmed&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No Amazon.com listing was confirmed for one TN model, the ASUS ROG Swift Pro PG248QP. The Amazon.com listings of the other three weren’t checked.&lt;/p&gt;
&lt;h3 id=&quot;oled-with-burn-in-coverage-stated-on-the-makers-us-page&quot;&gt;OLED with burn-in coverage stated on the maker’s US page&lt;/h3&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS ROG Strix OLED XG27AQDMG&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/91sUXo2ytHL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS ROG Strix OLED XG27AQDMG&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CZWM44QP?q=ASUS+ROG+Strix+OLED+XG27AQDMG&amp;amp;us=B0CZWM44QP&amp;amp;l=en&quot; aria-label=&quot;View ASUS ROG Strix OLED XG27AQDMG on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;ips-or-va-which-is-better&quot;&gt;IPS or VA: which is better?&lt;/h3&gt;
&lt;p&gt;VA if you watch movies or play games in a dark room, IPS if you mostly work or sit off to the side. Stated contrast among current models from major brands is 3,000:1–5,000:1 for VA and 1,000:1–1,500:1 for IPS.&lt;/p&gt;
&lt;h3 id=&quot;is-the-viewing-angle-the-same-on-ips-and-va&quot;&gt;Is the viewing angle the same on IPS and VA?&lt;/h3&gt;
&lt;p&gt;On paper, yes. Among current models from major brands, the viewing angle spec is 178°/178° on every IPS, VA and OLED model compared, so it doesn’t tell them apart.&lt;/p&gt;
&lt;p&gt;EIZO says the number doesn’t describe brightness or color shift from an angle, and that among LCDs (IPS, VA, TN) IPS shifts the least. There is no source comparing OLED, so it isn’t covered.&lt;/p&gt;
&lt;h3 id=&quot;can-you-compare-response-times-in-gtg-and-mprt&quot;&gt;Can you compare response times in GtG and MPRT?&lt;/h3&gt;
&lt;p&gt;No. Among current models from major brands, GtG and MPRT response times measure different things, so only same-method numbers can be compared. 3 models list MPRT only.&lt;/p&gt;
&lt;p&gt;The same model can also list a different GtG in each mode.&lt;/p&gt;
&lt;h3 id=&quot;does-the-warranty-cover-oled-burn-in&quot;&gt;Does the warranty cover OLED burn-in?&lt;/h3&gt;
&lt;p&gt;On the 6 makers’ warranty pages checked in October 2026, LG and MSI state burn-in coverage on only one of the two countries’ pages checked. The other page says nothing either way, so whether the actual coverage differs is unconfirmed.&lt;/p&gt;
&lt;p&gt;Samsung’s Japan page was not found, so it is unconfirmed; GIGABYTE’s US pages conflict. Coverage differs by country, and some countries’ pages say nothing.&lt;/p&gt;
&lt;p&gt;Check the warranty page for your country before you buy.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Specs come from maker spec pages, manuals and user guides, checked in October 2026. Some pages are for other countries. Everything was checked twice, and pages that could only be read once were opened again. The only calculation is the black-level ratio (black = white ÷ contrast). IPS corner glow, VA dark smearing and OLED text fringing aren’t covered, because no maker source was found. Guides: &lt;a href=&quot;https://www.eizo.com/library/basics/difference_in_image_quality/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;EIZO viewing angle&lt;/a&gt;, &lt;a href=&quot;https://www.eizo.com/library/basics/response_time_figures/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;EIZO response time&lt;/a&gt;, &lt;a href=&quot;https://www.benq.com/en-us/knowledge-center/knowledge/oled-monitor.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;BenQ OLED&lt;/a&gt;, &lt;a href=&quot;https://www.samsung.com/au/monitors/monitor-buying-guide/ip-va-tn-oled/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Samsung&lt;/a&gt;. Warranty pages: &lt;a href=&quot;https://www.dell.com/support/contents/ja-jp/article/warranty/alienware-monitor-support-services&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell JP&lt;/a&gt;, &lt;a href=&quot;https://www.dell.com/support/contents/en-us/article/warranty/alienware-monitor-support-services&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell US&lt;/a&gt;, &lt;a href=&quot;https://rog.asus.com/jp/monitors/27-to-31-5-inches/rog-strix-oled-xg27aqdmg/spec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ASUS JP&lt;/a&gt;, &lt;a href=&quot;https://rog.asus.com/us/monitors/27-to-31-5-inches/rog-strix-oled-xg27aqdmg/spec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ASUS US&lt;/a&gt;, &lt;a href=&quot;https://www.lg.com/jp/support/monitor-warranty/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;LG JP&lt;/a&gt;, &lt;a href=&quot;https://www.lg.com/us/PDF/warranty/he/gaming_oled_monitor_warranty.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;LG US&lt;/a&gt;, &lt;a href=&quot;https://storage-asset.msi.com/datasheet/monitor/jp/MAG-271QP-QD-OLED-X28.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;MSI JP&lt;/a&gt;, &lt;a href=&quot;https://us.msi.com/Monitor/MAG-271QP-QD-OLED-X28/Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;MSI US&lt;/a&gt;, &lt;a href=&quot;https://www.samsung.com/jp/support/warranty/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Samsung JP&lt;/a&gt;, &lt;a href=&quot;https://www.samsung.com/us/monitors/gaming/27-inch-odyssey-oled-g6-g60sd-qhd-360hz-03ms-freesync-sku-ls27dg602snxza/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Samsung US&lt;/a&gt;, &lt;a href=&quot;https://www.gigabyte.com/jp/Support/Consumer/Warranty/Monitor&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;GIGABYTE JP&lt;/a&gt;, &lt;a href=&quot;https://www.gigabyte.com/us/Support/Consumer/Warranty/Monitor&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;GIGABYTE US&lt;/a&gt;. Spec pages: &lt;a href=&quot;https://dl.dell.com/content/manual2537948-dell-s2725ds-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell 1&lt;/a&gt;, &lt;a href=&quot;https://www.dell.com/ja-jp/shop/monitors/apd/dell-27-plus-qhd%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-s2725dsm/s2725dsm/-&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell 2&lt;/a&gt;, &lt;a href=&quot;https://www.dell.com/en-us/shop/monitors/apd/alienware-27-360hz-qd-oled-gaming-monitor-aw2725df/aw2725df/-&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell 3&lt;/a&gt;, &lt;a href=&quot;https://www.benq.com/ja-jp/monitor/home/gw2790/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;BenQ 1&lt;/a&gt;, &lt;a href=&quot;https://www.benq.com/en-us/monitor/gaming/ex2710r/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;BenQ 2&lt;/a&gt;, &lt;a href=&quot;https://zowie.benq.com/en-us/monitor/xl2546x-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ZOWIE 1&lt;/a&gt;, &lt;a href=&quot;https://zowie.benq.com/ja-jp/monitor/xl2566x-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ZOWIE 2&lt;/a&gt;, &lt;a href=&quot;https://zowie.benq.com/en-us/monitor/xl2586x-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ZOWIE 3&lt;/a&gt;, &lt;a href=&quot;https://www.asus.com/jp/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27aq3a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ASUS 1&lt;/a&gt;, &lt;a href=&quot;https://rog.asus.com/jp/monitors/23-to-24-5-inches/rog-swift-pro-pg248qp/spec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ASUS 2&lt;/a&gt;, &lt;a href=&quot;https://www.lg.com/jp/monitors/gaming-monitors/27gs75q-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;LG 1&lt;/a&gt;, &lt;a href=&quot;https://www.lg.com/jp/monitors/gaming-monitors/27gs60qc-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;LG 2&lt;/a&gt;, &lt;a href=&quot;https://www.lg.com/jp/monitors/gaming-monitors/27gs95qe-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;LG 3&lt;/a&gt;, &lt;a href=&quot;https://storage-asset.msi.com/datasheet/monitor/jp/MAG-275QF.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;MSI 1&lt;/a&gt;, &lt;a href=&quot;https://storage-asset.msi.com/datasheet/monitor/us/MAG-27C6X.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;MSI 2&lt;/a&gt;, &lt;a href=&quot;https://storage-asset.msi.com/datasheet/monitor/jp/MAG-275CQRF-QD-E2.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;MSI 3&lt;/a&gt;, &lt;a href=&quot;https://us.msi.com/Monitor/MAG-271QPX-QD-OLED-E2/Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;MSI 4&lt;/a&gt;, &lt;a href=&quot;https://jp.msi.com/Monitor/MAG-271QP-QD-OLED-X28/Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;MSI 5&lt;/a&gt;, &lt;a href=&quot;https://www.aoc.com/us/gaming/monitors/cq27g4x&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;AOC 1&lt;/a&gt;, &lt;a href=&quot;https://www.aoc.com/us/gaming/monitors/c27g4zh&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;AOC 2&lt;/a&gt;, &lt;a href=&quot;https://www.samsung.com/us/monitors/gaming/27-inch-odyssey-oled-g6-g60sd-qhd-360hz-03ms-freesync-sku-ls27dg602snxza/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Samsung&lt;/a&gt;, &lt;a href=&quot;https://www.gigabyte.com/jp/Monitor/MO27Q28G/sp&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;GIGABYTE&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Population: spec sheets of 23 models (IPS, VA, TN, OLED) from the makers’ own spec pages and manuals. Size, resolution, max refresh rate, contrast, viewing angle and response time are used as published&lt;/li&gt;
&lt;li&gt;Each panel’s range is the minimum to maximum of the models checked. Contrast uses only typical, static and native labels; the one model labeled dynamic is left out of the range&lt;/li&gt;
&lt;li&gt;Black level = white level ÷ contrast. At the same white level, a VA black is (IPS contrast ÷ VA contrast) times an IPS black. The range comes from the min/max combinations and is checked to be whole numbers&lt;/li&gt;
&lt;li&gt;GtG and MPRT are treated as different measurements and compared only like with like. The ratio between the shortest LCD GtG and the OLED 0.03 ms is rounded down and shown as ‘under 1/N’&lt;/li&gt;
&lt;li&gt;Burn-in warranty is classified from each maker’s Japan and US warranty and product pages (stated, stated in English only, not stated, no official page, pages conflict). Not stated is never read as not covered. A product-page entry applies to the model on that page&lt;/li&gt;
&lt;li&gt;The auto-refresh interval in days is Dell’s 1,500 hours ÷ 8 hours a day (assumed), rounded down&lt;/li&gt;
&lt;li&gt;Picks use Amazon listings checked on 2026-10-07 (amazon.co.jp for Japan, amazon.com for the US): new, sold by Amazon or the maker, 100+ ratings, 4+ stars, no review-checker warning, not an import; cheapest with shipping wins. US listings of two AOC and three ZOWIE models were not checked because amazon.com would not open&lt;/li&gt;
&lt;li&gt;No unit was tested, so nothing is said about how the screens look&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;










































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Dell S2725DS specs&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2537948-dell-s2725ds-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; User’s Guide 2025-03 Rev. A01: IPS, 100 Hz, 1500 to 1 (typical), 178° (typical),&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell S2725DSM specs&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/ja-jp/shop/monitors/apd/dell-27-plus-qhd%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-s2725dsm/s2725dsm/-&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ GW2790 specs&lt;/td&gt;&lt;td&gt;panel: IPS / label: IPS / size: 27 / res: 1920×1080 / hz: 100 / cr: 1300 / cr_label: native / va: [178,178] / va_cond: true / rt: [“ms”:5,“method”:“GtG”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/home/gw2790/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt; Native contrast 1300:1, Viewing Angle (L/R) (CR=10) 178°/178°, Response Times (G&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS TUF Gaming VG27AQ3A specs&lt;/td&gt;&lt;td&gt;panel: IPS / label: Fast IPS / size: 27 / res: 2560×1440 / hz: 180 / cr: 1000 / cr_label: typical / va: [178,178] / va_cond: true / rt: [“ms”:1,“method”:“GtG”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27aq3a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Fast IPS, 180Hz, 1000:1, 1ms (GTG), Viewing Angle (CR≧10) 178°/178°&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 27GS75Q-B specs&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/jp/monitors/gaming-monitors/27gs75q-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MSI MAG 275QF specs&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://storage-asset.msi.com/datasheet/monitor/us/MAG-275QF.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;storage-asset.msi.com&lt;/a&gt; Rapid IPS, 180Hz, 0.5ms (GtG, Min.), 1000:1 (Typ.), 178°(H)/178°(V), Adobe RGB /&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ MOBIUZ EX2710R specs&lt;/td&gt;&lt;td&gt;panel: VA / label: VA / size: 27 / res: 2560×1440 / hz: 165 / cr: 3000 / cr_label: native / va: [178,178] / va_cond: true / rt: [“ms”:1,“method”:“MPRT”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/gaming/ex2710r/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt; VA 1000R, 165Hz, Native Contrast 3000:1, Viewing Angle (CR=10) 178°/178°, Respon&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 27GS60QC-B specs&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/jp/monitors/gaming-monitors/27gs60qc-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MSI MAG 27C6X specs&lt;/td&gt;&lt;td&gt;panel: VA / label: VA / size: 27 / res: 1920×1080 / hz: 250 / cr: 3000 / cr_label: typical / va: [178,178] / va_cond: false / rt: [“ms”:1,“method”:“MPRT”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://storage-asset.msi.com/datasheet/monitor/us/MAG-27C6X.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;storage-asset.msi.com&lt;/a&gt; VA Curve 1500R, 250Hz (OC), 1ms (MPRT), 3000:1 (Typ.), 178°(H)/178°(V)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MSI MAG 275CQRF QD E2 specs&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://storage-asset.msi.com/datasheet/monitor/us/MAG-275CQRF-QD-E2.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;storage-asset.msi.com&lt;/a&gt; MAG 275CQRF QD E2: Rapid VA Curve 1500R, 180Hz, 0.5ms (GtG, Min.), 5000:1 (Typ.)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AOC CQ27G4X specs&lt;/td&gt;&lt;td&gt;panel: VA / label: Fast VA / size: 27 / res: 2560×1440 / hz: 180 / cr: 4000 / cr_label: static / va: [178,178] / va_cond: true / rt: [“ms”:1,“method”:“GtG”,“ms”:0.5,“method”:“MPRT”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.aoc.com/us/gaming/monitors/cq27g4x&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;aoc.com&lt;/a&gt; Fast VA 1500R, 180 Hz, STATIC CONTRAST RATIO 4000:1, VIEWING ANGLE (CR10) 178/17&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AOC C27G4ZH specs&lt;/td&gt;&lt;td&gt;panel: VA / label: VA / size: 27 / res: 1920×1080 / hz: 280 / cr: 3000 / cr_label: static / va: [178,178] / va_cond: true / rt: [“ms”:0.3,“method”:“MPRT”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.aoc.com/us/gaming/monitors/c27g4zh&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;aoc.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS ROG Swift Pro PG248QP specs&lt;/td&gt;&lt;td&gt;panel: TN / label: TN / size: 24.1 / res: 1920×1080 / hz: 540 / cr: 1000 / cr_label: typical / va: [170,160] / va_cond: true / rt: [“ms”:0.2,“method”:“GtG”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://rog.asus.com/jp/monitors/23-to-24-5-inches/rog-swift-pro-pg248qp/spec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;rog.asus.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ ZOWIE XL2546X+ specs&lt;/td&gt;&lt;td&gt;panel: TN / label: TN / size: 24.1 / res: 1920×1080 / hz: 280 / cr: 1000 / cr_label: native / va: null / va_cond: false / rt: []&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://zowie.benq.com/en-us/monitor/xl2546x-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;zowie.benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ ZOWIE XL2566X+ specs&lt;/td&gt;&lt;td&gt;panel: TN / label: TN / size: 24.1 / res: 1920×1080 / hz: 400 / cr: 1000 / cr_label: native / va: null / va_cond: false / rt: []&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://zowie.benq.com/en-us/monitor/xl2566x-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;zowie.benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ ZOWIE XL2586X+ specs&lt;/td&gt;&lt;td&gt;panel: TN / label: TN / size: 24.1 / res: 1920×1080 / hz: 600 / cr: 1000 / cr_label: native / va: null / va_cond: false / rt: []&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://zowie.benq.com/en-us/monitor/xl2586x-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;zowie.benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 27GS95QE-B specs&lt;/td&gt;&lt;td&gt;panel: OLED / label: OLED / size: 26.5 / res: 2560×1440 / hz: 240 / cr: 1500000 / cr_label: typical / va: [178,178] / va_cond: true / rt: [“ms”:0.03,“method”:“GtG”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/us/monitors/lg-27gs95qe-b-gaming-monitor&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt; Contrast Ratio 1.5M:1 (Typ.), Response Time (GTG) 0.03ms, 240Hz, DCI-P3 98.5% (C&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS ROG Strix OLED XG27AQDMG specs&lt;/td&gt;&lt;td&gt;panel: OLED / label: WOLED / size: 26.5 / res: 2560×1440 / hz: 240 / cr: 1500000 / cr_label: typical / va: [178,178] / va_cond: true / rt: [“ms”:0.03,“method”:“GtG”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://rog.asus.com/jp/monitors/27-to-31-5-inches/rog-strix-oled-xg27aqdmg/spec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;rog.asus.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Alienware AW2725DF specs&lt;/td&gt;&lt;td&gt;panel: OLED / label: QD-OLED / size: 26.7 / res: 2560×1440 / hz: 360 / cr: 1500000 / cr_label: dynamic / va: [178,178] / va_cond: false / rt: [“ms”:0.03,“method”:“GtG”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/en-us/shop/monitors/apd/alienware-27-360hz-qd-oled-gaming-monitor-aw2725df/aw2725df/-&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt; Panel Technology Quantum Dot OLED, 360Hz, Dynamic Contrast Ratio 1,500,000:1, 0.&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MSI MAG 271QPX QD-OLED E2 specs&lt;/td&gt;&lt;td&gt;panel: OLED / label: QD-OLED / size: 26.5 / res: 2560×1440 / hz: 240 / cr: 1500000 / cr_label: typical / va: [178,178] / va_cond: false / rt: [“ms”:0.03,“method”:“GtG”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://us.msi.com/Monitor/MAG-271QPX-QD-OLED-E2/Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;us.msi.com&lt;/a&gt; QD-OLED, 240Hz, 0.03ms (GtG), 1500000:1 (Typ.), 178°(H)/178°(V)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MSI MAG 271QP QD-OLED X28 specs&lt;/td&gt;&lt;td&gt;panel: OLED / label: QD-OLED / size: 26.5 / res: 2560×1440 / hz: 280 / cr: 1500000 / cr_label: typical / va: [178,178] / va_cond: false / rt: [“ms”:0.03,“method”:“GtG”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://us.msi.com/Monitor/MAG-271QP-QD-OLED-X28/Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;us.msi.com&lt;/a&gt; QD-OLED, 280Hz, 0.03ms (GTG), 1500000:1 (Typ.), 178°(H)/178°(V)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung Odyssey OLED G6 G60SD specs&lt;/td&gt;&lt;td&gt;panel: OLED / label: OLED / size: 27 / res: 2560×1440 / hz: 360 / cr: 1000000 / cr_label: static / va: [178,178] / va_cond: false / rt: [“ms”:0.03,“method”:“GtG”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/monitors/gaming/27-inch-odyssey-oled-g6-g60sd-qhd-360hz-03ms-freesync-sku-ls27dg602snxza/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Contrast Ratio Static 1,000,000:1, 0.03ms(GTG), 360Hz, 178°(H)/178°(V)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GIGABYTE MO27Q28G specs&lt;/td&gt;&lt;td&gt;panel: OLED / label: WOLED / size: 27 / res: 2560×1440 / hz: 280 / cr: 1500000 / cr_label: typical / va: [178,178] / va_cond: false / rt: [“ms”:0.03,“method”:“GtG”]&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.gigabyte.com/us/Monitor/MO27Q28G/sp&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;gigabyte.com&lt;/a&gt; Panel Type WOLED, 280Hz, 0.03ms GTG, Contrast Ratio (Typ.) 1.5M:1, 178°(H)/178°(&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell Japan burn-in warranty&lt;/td&gt;&lt;td&gt;years: 3 / covered: yes / upto: true&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/support/contents/ja-jp/article/warranty/alienware-monitor-support-services&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell US burn-in warranty&lt;/td&gt;&lt;td&gt;years: 3 / covered: yes / upto: true&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/support/contents/en-us/article/warranty/alienware-monitor-support-services&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt; QD–OLED panel technology is limited to a 3-year maximum warranty term, includes&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS Japan burn-in warranty&lt;/td&gt;&lt;td&gt;years: 3 / covered: yes_en_only&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://rog.asus.com/jp/monitors/27-to-31-5-inches/rog-strix-oled-xg27aqdmg/spec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;rog.asus.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS US burn-in warranty&lt;/td&gt;&lt;td&gt;years: 3 / covered: yes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://rog.asus.com/us/monitors/27-to-31-5-inches/rog-strix-oled-xg27aqdmg/spec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;rog.asus.com&lt;/a&gt; Warranty: 3 years (including panel burn-in)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG Japan burn-in warranty&lt;/td&gt;&lt;td&gt;years: 2 / covered: yes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/jp/support/monitor-warranty/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG US burn-in warranty&lt;/td&gt;&lt;td&gt;years: 2 / covered: not_stated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/us/PDF/warranty/he/gaming_oled_monitor_warranty.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MSI Japan burn-in warranty&lt;/td&gt;&lt;td&gt;years: 3 / covered: not_stated&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://storage-asset.msi.com/datasheet/monitor/jp/MAG-271QP-QD-OLED-X28.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;storage-asset.msi.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MSI US burn-in warranty&lt;/td&gt;&lt;td&gt;years: 3 / covered: yes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://us.msi.com/Monitor/MAG-271QP-QD-OLED-X28/Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;us.msi.com&lt;/a&gt; WARRANTY 3 years (including panel burn-in)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung Japan burn-in warranty&lt;/td&gt;&lt;td&gt;years: null / covered: not_sold&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/jp/support/warranty/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung US burn-in warranty&lt;/td&gt;&lt;td&gt;years: 3 / covered: yes / excl: true / hub: true&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/us/monitors/gaming/27-inch-odyssey-oled-g6-g60sd-qhd-360hz-03ms-freesync-sku-ls27dg602snxza/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; Burn-in at normal usage covered within warranty. (But, not covered for Commercia&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GIGABYTE Japan burn-in warranty&lt;/td&gt;&lt;td&gt;years: 3 / covered: yes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.gigabyte.com/jp/Support/Consumer/Warranty/Monitor&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;gigabyte.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GIGABYTE US burn-in warranty&lt;/td&gt;&lt;td&gt;years: 3 / covered: conflict&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.gigabyte.com/us/Monitor/MO27Q28G/sp&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;gigabyte.com&lt;/a&gt; Warranty 3 years (including panel burn-in)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell pixel refresh interval&lt;/td&gt;&lt;td&gt;four hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/support/kbdoc/en-us/000131796/dell-gaming-monitor-frequently-asked-questions&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt; Pixel Refresh: activated automatically when the monitor is used for at least fou&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell panel refresh interval&lt;/td&gt;&lt;td&gt;1,500 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/support/kbdoc/en-us/000131796/dell-gaming-monitor-frequently-asked-questions&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt; Panel Refresh: activated automatically when the accumulated usage time exceeds t&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS OLED cleaning interval&lt;/td&gt;&lt;td&gt;four hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/support/faq/1048131/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; recommends pixel cleaning every four hours; process about 6 minutes&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell pixel refresh duration&lt;/td&gt;&lt;td&gt;about 6 to 8 minutes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/support/kbdoc/en-us/000131796/dell-gaming-monitor-frequently-asked-questions&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt; The process takes approximately 6 to 8 minutes to complete.&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell panel refresh duration&lt;/td&gt;&lt;td&gt;about an hour&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/support/kbdoc/en-us/000131796/dell-gaming-monitor-frequently-asked-questions&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt; The process takes approximately an hour to complete.&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS cleaning duration&lt;/td&gt;&lt;td&gt;about 6 minutes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/support/faq/1048131/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; The process will take approximately 6 minutes.&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung panel guide&lt;/td&gt;&lt;td&gt;Samsung panel guide&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/au/monitors/monitor-buying-guide/ip-va-tn-oled/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; IPS: liquid crystals arranged parallel to the screen; OLED: individually lit pix&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayHDR True Black 400 black-level limit&lt;/td&gt;&lt;td&gt;0.0005 cd/m²&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://displayhdr.org/performance-criteria/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;displayhdr.org&lt;/a&gt; DisplayHDR True Black: Dual Corner Box Test maximum black 0.0005 cd/m² (all True&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayHDR 400 black-level limit&lt;/td&gt;&lt;td&gt;0.4 cd/m²&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://displayhdr.org/performance-criteria/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;displayhdr.org&lt;/a&gt; DisplayHDR 400: maximum black 0.4 cd/m²&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Static-image burn-in warning&lt;/td&gt;&lt;td&gt;static image burn-in warning&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/support/faq/1048131/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Image persistence, or burn-in, on an OLED display can occur if a static high-con&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ OLED explainer&lt;/td&gt;&lt;td&gt;OLED explanation&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/knowledge-center/knowledge/oled-monitor.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt; the individual pixel control of OLEDs leaves them more vulnerable to image reten&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GtG and MPRT definitions&lt;/td&gt;&lt;td&gt;GtG / MPRT definitions&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.com/library/basics/response_time_figures/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.com&lt;/a&gt; Gray-to-gray: the time it takes a pixel to change from one gradation of gray to&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Contrast ratio at the viewing-angle limit (CR)&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.com/library/basics/difference_in_image_quality/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.com&lt;/a&gt; spec viewing angle = angle until the contrast ratio drops to 10:1 or 5:1; does n&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>monitor</category></item><item><title>Does refresh rate need to match FPS? 144Hz vs 240Hz</title><link>https://aulvem.com/blog/2021-03-20-gaming-monitor/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-20-gaming-monitor/</guid><description>In this calculation, a 240Hz monitor shows more new frames than a 144Hz one only when a game runs above 144 fps. A quick table by FPS, console limits, and how to read VRR and HDMI 2.1, from official specs checked in October 2026.</description><pubDate>Sat, 20 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;No, your game’s FPS does not need to match your monitor’s refresh rate. In this calculation, a 240Hz monitor shows more new frames than a 144Hz one only when a game runs above 144 fps.&lt;/p&gt;
&lt;p&gt;Per the official specs, the PS5, Xbox Series X|S and Switch 2 output up to 120 fps, so a 120Hz or higher monitor is enough; 240Hz doesn’t raise the limit. FPS is how many pictures (frames) a game draws each second. Refresh rate (Hz) is how many times the monitor redraws the screen each second.&lt;/p&gt;
&lt;p&gt;The numbers come from official specs as of October 2026 and from “1000 ÷ refresh rate”. No monitors were tested for this article.&lt;/p&gt;
&lt;h2 id=&quot;quick-table-by-fps&quot;&gt;Quick table by FPS&lt;/h2&gt;
&lt;p&gt;If your game runs at 144 fps or less, 144Hz and 240Hz monitors show the same number of new frames. Assumption: the game holds a steady fps, and input lag is not included.&lt;/p&gt;









































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Your FPS&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;144Hz monitor&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;240Hz monitor&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Extra new frames per second&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;60 fps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;60&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;60&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;No difference&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;120 fps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;120&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;120&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;No difference&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;144 fps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;No difference&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;180 fps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;180&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;36 more on 240Hz&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;240 fps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;144&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;240&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;96 more on 240Hz&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Each monitor column is the smaller of your FPS and the refresh rate. Any other FPS works the same way.&lt;/p&gt;
&lt;h2 id=&quot;how-to-check-your-own-fps&quot;&gt;How to check your own FPS&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Show the FPS counter in the games you play.&lt;/strong&gt; Most games have one in the settings. With an NVIDIA graphics card, the overlay in the &lt;a href=&quot;https://www.nvidia.com/en-us/software/nvidia-app/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;NVIDIA app&lt;/a&gt; works too&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Look at heavy scenes (lots of players or objects).&lt;/strong&gt; Judging by light scenes alone leaves a high refresh rate unused&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compare that FPS with 144Hz.&lt;/strong&gt; A 144Hz monitor is enough if heavy scenes stay at 144 fps or below, a 240Hz one if they go above that, and a monitor that accepts 120Hz for console-only use&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For example, a PC that holds 180 fps in heavy scenes shows 144 on a 144Hz monitor and 180 on a 240Hz one.&lt;/p&gt;
&lt;section id=&quot;fps-hz-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;fps-hz-calc-title&quot;&gt; &lt;h3 id=&quot;fps-hz-calc-title&quot;&gt;144Hz vs 240Hz calculator by fps&lt;/h3&gt; &lt;p&gt;Pick your device and the fps you get in heavy scenes to see how many new frames a 144Hz and a 240Hz monitor can show, plus a matching pick.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;msi_mag272qp_x24&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for MSI MAG 272QP QD-OLED X24&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MSI MAG 272QP QD-OLED X24&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0G53VCGQB?q=MSI+MAG+272QP+QD-OLED+X24&amp;amp;us=B0G53VCGQB&amp;amp;l=en&quot; aria-label=&quot;View MSI MAG 272QP QD-OLED X24 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;MAG 272QP QD-OLED X24&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for MSI MAG 272QP QD-OLED X24&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MSI MAG 272QP QD-OLED X24&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0G53VCGQB?q=MSI+MAG+272QP+QD-OLED+X24&amp;amp;us=B0G53VCGQB&amp;amp;l=en&quot; aria-label=&quot;View MSI MAG 272QP QD-OLED X24 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;asus_vg27aqm5a&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG27AQM5A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71-woCs5tFL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG27AQM5A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F233D6W1?q=ASUS+TUF+Gaming+VG27AQM5A&amp;amp;us=B0F233D6W1&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG27AQM5A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;VG27AQM5A&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG27AQM5A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71-woCs5tFL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG27AQM5A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F233D6W1?q=ASUS+TUF+Gaming+VG27AQM5A&amp;amp;us=B0F233D6W1&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG27AQM5A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;lg_27gr83q&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for LG UltraGear 27GR83Q-B&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG UltraGear 27GR83Q-B&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C63HDHPR?q=LG+UltraGear+27GR83Q-B&amp;amp;us=B0C63HDHPR&amp;amp;l=en&quot; aria-label=&quot;View LG UltraGear 27GR83Q-B on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;27GR83Q-B&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for LG UltraGear 27GR83Q-B&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG UltraGear 27GR83Q-B&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C63HDHPR?q=LG+UltraGear+27GR83Q-B&amp;amp;us=B0C63HDHPR&amp;amp;l=en&quot; aria-label=&quot;View LG UltraGear 27GR83Q-B on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;dell_g2725d&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for Dell G2725D&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell G2725D&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DGMQ2M1G?q=Dell+G2725D&amp;amp;us=B0DGMQ2M1G&amp;amp;l=en&quot; aria-label=&quot;View Dell G2725D on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;G2725D&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for Dell G2725D&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell G2725D&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DGMQ2M1G?q=Dell+G2725D&amp;amp;us=B0DGMQ2M1G&amp;amp;l=en&quot; aria-label=&quot;View Dell G2725D on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;aoc_q27g41ze&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for AOC Q27G41ZE&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;AOC Q27G41ZE&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FF5HXGJK?q=AOC+Q27G41ZE&amp;amp;us=B0FF5HXGJK&amp;amp;l=en&quot; aria-label=&quot;View AOC Q27G41ZE on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;Q27G41ZE&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for AOC Q27G41ZE&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;AOC Q27G41ZE&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FF5HXGJK?q=AOC+Q27G41ZE&amp;amp;us=B0FF5HXGJK&amp;amp;l=en&quot; aria-label=&quot;View AOC Q27G41ZE on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;msi_mag274qp_x24&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for MSI MAG 274QP QD-OLED X24&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MSI MAG 274QP QD-OLED X24&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0G4P697M8?q=MSI+MAG+274QP+QD-OLED+X24&amp;amp;us=B0G4P697M8&amp;amp;l=en&quot; aria-label=&quot;View MSI MAG 274QP QD-OLED X24 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;MAG 274QP QD-OLED X24&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for MSI MAG 274QP QD-OLED X24&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MSI MAG 274QP QD-OLED X24&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0G4P697M8?q=MSI+MAG+274QP+QD-OLED+X24&amp;amp;us=B0G4P697M8&amp;amp;l=en&quot; aria-label=&quot;View MSI MAG 274QP QD-OLED X24 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;lg_27g610a&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG UltraGear 27G610A-B&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81z1o5y64wL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG UltraGear 27G610A-B&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FLM15Q5L?q=LG+UltraGear+27G610A-B&amp;amp;us=B0FLM15Q5L&amp;amp;l=en&quot; aria-label=&quot;View LG UltraGear 27G610A-B on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;27G610A-B&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG UltraGear 27G610A-B&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81z1o5y64wL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG UltraGear 27G610A-B&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FLM15Q5L?q=LG+UltraGear+27G610A-B&amp;amp;us=B0FLM15Q5L&amp;amp;l=en&quot; aria-label=&quot;View LG UltraGear 27G610A-B on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;dell_s2725qs&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for Dell S2725QS (27 4K 120Hz)&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell S2725QS (27 4K 120Hz)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F1GF1KFC?q=Dell+S2725QS+%2827+4K+120Hz%29&amp;amp;us=B0F1GF1KFC&amp;amp;l=en&quot; aria-label=&quot;View Dell S2725QS (27 4K 120Hz) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;S2725QS&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for Dell S2725QS (27 4K 120Hz)&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell S2725QS (27 4K 120Hz)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F1GF1KFC?q=Dell+S2725QS+%2827+4K+120Hz%29&amp;amp;us=B0F1GF1KFC&amp;amp;l=en&quot; aria-label=&quot;View Dell S2725QS (27 4K 120Hz) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;asus_vg27aq3a&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG27AQ3A&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG27AQ3A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0BZR9TMBJ?q=ASUS+TUF+Gaming+VG27AQ3A&amp;amp;us=B0BZR9TMBJ&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG27AQ3A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;VG27AQ3A&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG27AQ3A&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG27AQ3A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0BZR9TMBJ?q=ASUS+TUF+Gaming+VG27AQ3A&amp;amp;us=B0BZR9TMBJ&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG27AQ3A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;msi_pro_mp243l_e14&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for MSI PRO MP243L E14&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MSI PRO MP243L E14&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FG5XLWNV?q=MSI+PRO+MP243L+E14&amp;amp;us=B0FG5XLWNV&amp;amp;l=en&quot; aria-label=&quot;View MSI PRO MP243L E14 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;PRO MP243L E14&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for MSI PRO MP243L E14&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;MSI PRO MP243L E14&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FG5XLWNV?q=MSI+PRO+MP243L+E14&amp;amp;us=B0FG5XLWNV&amp;amp;l=en&quot; aria-label=&quot;View MSI PRO MP243L E14 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;dell_se2426h&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for Dell SE2426H&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell SE2426H&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GLQXKKVY?q=Dell+SE2426H&amp;amp;us=B0GLQXKKVY&amp;amp;l=en&quot; aria-label=&quot;View Dell SE2426H on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;SE2426H&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for Dell SE2426H&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell SE2426H&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GLQXKKVY?q=Dell+SE2426H&amp;amp;us=B0GLQXKKVY&amp;amp;l=en&quot; aria-label=&quot;View Dell SE2426H on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;asus_tuf_24_curved&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for ASUS TUF Gaming 24 1080p 180Hz curved (US B0CXS73LRP)&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming 24 1080p 180Hz curved (US B0CXS73LRP)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CXS73LRP?q=ASUS+TUF+Gaming+24+1080p+180Hz+curved+%28US+B0CXS73LRP%29&amp;amp;us=B0CXS73LRP&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming 24 1080p 180Hz curved (US B0CXS73LRP) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;not captured&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for ASUS TUF Gaming 24 1080p 180Hz curved (US B0CXS73LRP)&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming 24 1080p 180Hz curved (US B0CXS73LRP)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CXS73LRP?q=ASUS+TUF+Gaming+24+1080p+180Hz+curved+%28US+B0CXS73LRP%29&amp;amp;us=B0CXS73LRP&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming 24 1080p 180Hz curved (US B0CXS73LRP) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;dell_se2426hg&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for Dell SE2426HG&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell SE2426HG&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0G6JV85HG?q=Dell+SE2426HG&amp;amp;us=B0GKFLQ9SW&amp;amp;l=en&quot; aria-label=&quot;View Dell SE2426HG on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;SE2426HG&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for Dell SE2426HG&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell SE2426HG&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0G6JV85HG?q=Dell+SE2426HG&amp;amp;us=B0GKFLQ9SW&amp;amp;l=en&quot; aria-label=&quot;View Dell SE2426HG on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;acer_kg251q_z1&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for Acer Nitro KG251Q Z1biip&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Acer Nitro KG251Q Z1biip&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DJTTB6V9?q=Acer+Nitro+KG251Q+Z1biip&amp;amp;us=B0DJTTB6V9&amp;amp;l=en&quot; aria-label=&quot;View Acer Nitro KG251Q Z1biip on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;KG251Q Z1biip&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for Acer Nitro KG251Q Z1biip&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Acer Nitro KG251Q Z1biip&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DJTTB6V9?q=Acer+Nitro+KG251Q+Z1biip&amp;amp;us=B0DJTTB6V9&amp;amp;l=en&quot; aria-label=&quot;View Acer Nitro KG251Q Z1biip on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;dell_se2726hg&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for Dell SE2726HG (27 FHD 240Hz)&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell SE2726HG (27 FHD 240Hz)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GGRKQ494?q=Dell+SE2726HG+%2827+FHD+240Hz%29&amp;amp;us=B0GGRKQ494&amp;amp;l=en&quot; aria-label=&quot;View Dell SE2726HG (27 FHD 240Hz) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;SE2726HG&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6&quot; aria-label=&quot;Buy links for Dell SE2726HG (27 FHD 240Hz)&quot; data-astro-cid-jx6ez42w&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell SE2726HG (27 FHD 240Hz)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GGRKQ494?q=Dell+SE2726HG+%2827+FHD+240Hz%29&amp;amp;us=B0GGRKQ494&amp;amp;l=en&quot; aria-label=&quot;View Dell SE2726HG (27 FHD 240Hz) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;asus_vg249qe5a&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG249QE5A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71j50tGvDFL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG249QE5A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F234D8G9?q=ASUS+TUF+Gaming+VG249QE5A&amp;amp;us=B0F234D8G9&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG249QE5A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;VG249QE5A&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG249QE5A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71j50tGvDFL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG249QE5A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F234D8G9?q=ASUS+TUF+Gaming+VG249QE5A&amp;amp;us=B0F234D8G9&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG249QE5A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the fps table and the &amp;quot;smaller of fps and Hz&amp;quot; rule in the steps above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;lo&quot;:144,&quot;hi&quot;:240,&quot;devices&quot;:{&quot;pc&quot;:{&quot;max&quot;:null},&quot;ps5&quot;:{&quot;max&quot;:120},&quot;xbox&quot;:{&quot;max&quot;:120},&quot;sw2&quot;:{&quot;max&quot;:120}},&quot;groups&quot;:{&quot;console&quot;:[&quot;msi_mag272qp_x24&quot;,&quot;msi_mag274qpf_x32&quot;,&quot;asus_vg27aqm5a&quot;,&quot;lg_27g640a&quot;,&quot;japannext_jn_ia27g120u2&quot;,&quot;msi_mag274qp_x24&quot;,&quot;msi_mag271qp_x28&quot;,&quot;msi_mag272up_x24&quot;,&quot;sony_inzone_m3&quot;,&quot;lg_27g610a&quot;,&quot;asus_vg27aq5a&quot;,&quot;asus_vg27aq3a&quot;,&quot;msi_mag275qf_e20&quot;,&quot;msi_mag255f_e20&quot;,&quot;asus_vg259q5a&quot;,&quot;benq_ex251&quot;,&quot;msi_mag242c&quot;,&quot;msi_mag245f_x24&quot;,&quot;msi_mag255f_x24&quot;,&quot;iodata_ex_gd251uh&quot;,&quot;iodata_ex_gd243udw&quot;,&quot;asus_vg249qml5a&quot;,&quot;asus_vg259qm5a&quot;,&quot;lg_25g550b&quot;],&quot;pc_fhd&quot;:[&quot;lg_24g411b&quot;,&quot;lg_24g414b&quot;,&quot;lg_24gs60f&quot;,&quot;msi_mag255f_e20&quot;,&quot;asus_vg259q5a&quot;,&quot;benq_ex251&quot;,&quot;msi_mag242c&quot;,&quot;asus_vg249qe5a&quot;],&quot;pc_240&quot;:[&quot;msi_mag272qp_x24&quot;,&quot;msi_mag274qpf_x32&quot;,&quot;benq_ex270qm&quot;,&quot;benq_ex271qm&quot;,&quot;asus_vg27aqm5a&quot;,&quot;lg_27g640a&quot;,&quot;iodata_ex_gdq271ua&quot;,&quot;msi_mag274qp_x24&quot;,&quot;msi_mag271qp_x28&quot;,&quot;msi_mag272up_x24&quot;,&quot;sony_inzone_m3&quot;,&quot;msi_mag245f_x24&quot;,&quot;msi_mag255f_x24&quot;,&quot;iodata_ex_gd251uh&quot;,&quot;iodata_ex_gd243udw&quot;,&quot;asus_vg249qml5a&quot;,&quot;asus_vg259qm5a&quot;,&quot;lg_25g550b&quot;]},&quot;specs&quot;:{&quot;msi_mag272qp_x24&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:240,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440&quot;},&quot;msi_mag274qpf_x32&quot;:{&quot;hz&quot;:320,&quot;hdmiHz&quot;:320,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440&quot;},&quot;benq_ex270qm&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:true,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440&quot;},&quot;benq_ex271qm&quot;:{&quot;hz&quot;:320,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440&quot;},&quot;asus_vg27aqm5a&quot;:{&quot;hz&quot;:300,&quot;hdmiHz&quot;:300,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440&quot;},&quot;lg_27g640a&quot;:{&quot;hz&quot;:300,&quot;hdmiHz&quot;:300,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440&quot;},&quot;lg_27gr83q&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;2560x1440&quot;},&quot;dell_g2725d&quot;:{&quot;hz&quot;:180,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;2560x1440&quot;},&quot;iodata_ex_gdq271rab&quot;:{&quot;hz&quot;:320,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;2560x1440 (WQHD)&quot;},&quot;iodata_ex_gdq271ua&quot;:{&quot;hz&quot;:275,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440 (WQHD)&quot;},&quot;lenovo_legion_27q15&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;2560x1440&quot;},&quot;acer_27_320_jp&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;acer_kg271u_f3&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;aoc_q27g41ze&quot;:{&quot;hz&quot;:260,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;2560x1440&quot;},&quot;ktc_h27e6&quot;:{&quot;hz&quot;:320,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;2560x1440&quot;},&quot;regza_rm_g276n&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;2560x1440&quot;},&quot;dell_aw2726dl&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;2560x1440&quot;},&quot;japannext_jn_ia27g120u2&quot;:{&quot;hz&quot;:120,&quot;hdmiHz&quot;:120,&quot;vrr&quot;:true,&quot;sync&quot;:true,&quot;res&quot;:&quot;3840x2160&quot;},&quot;msi_mag274qp_x24&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:240,&quot;vrr&quot;:true,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440&quot;},&quot;msi_mag271qp_x28&quot;:{&quot;hz&quot;:280,&quot;hdmiHz&quot;:280,&quot;vrr&quot;:true,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440&quot;},&quot;msi_mag272up_x24&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:240,&quot;vrr&quot;:true,&quot;sync&quot;:true,&quot;res&quot;:&quot;3840x2160&quot;},&quot;sony_inzone_m3&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:240,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;sony_inzone_m9ii&quot;:{&quot;hz&quot;:160,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;3840x2160&quot;},&quot;lenovo_legion_pro_27q15&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;lg_27g610a&quot;:{&quot;hz&quot;:200,&quot;hdmiHz&quot;:144,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440&quot;},&quot;dell_s2725qs&quot;:{&quot;hz&quot;:120,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;3840x2160&quot;},&quot;pixio_px27u_wave&quot;:{&quot;hz&quot;:160,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;3840x2160&quot;},&quot;asus_vg27aq5a&quot;:{&quot;hz&quot;:210,&quot;hdmiHz&quot;:144,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440&quot;},&quot;asus_vg27aq3a&quot;:{&quot;hz&quot;:180,&quot;hdmiHz&quot;:144,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440&quot;},&quot;asus_xg27acs&quot;:{&quot;hz&quot;:180,&quot;hdmiHz&quot;:48,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440&quot;},&quot;gigabyte_gs27qxa&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;2560x1440&quot;},&quot;msi_mag275qf_e20&quot;:{&quot;hz&quot;:200,&quot;hdmiHz&quot;:144,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;2560x1440&quot;},&quot;aoc_24g42e&quot;:{&quot;hz&quot;:180,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;1920x1080&quot;},&quot;lg_24g411b&quot;:{&quot;hz&quot;:144,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;lg_24g414b&quot;:{&quot;hz&quot;:144,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;lg_24gs60f&quot;:{&quot;hz&quot;:180,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;msi_mag255f_e20&quot;:{&quot;hz&quot;:200,&quot;hdmiHz&quot;:200,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;asus_vg259q5a&quot;:{&quot;hz&quot;:200,&quot;hdmiHz&quot;:200,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;benq_ex251&quot;:{&quot;hz&quot;:220,&quot;hdmiHz&quot;:220,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;acer_24_200va&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;msi_mag242c&quot;:{&quot;hz&quot;:180,&quot;hdmiHz&quot;:180,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;koorui_24_180_jp&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;philips_evnia_24_180&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;philips_24m2n3201a&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;acer_nitro_24_180_jp&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;aoc_24g51f2&quot;:{&quot;hz&quot;:180,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;1920x1080&quot;},&quot;msi_pro_mp243l_e14&quot;:{&quot;hz&quot;:144,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;1920x1080&quot;},&quot;dell_se2426h&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;koorui_24e3&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;philips_24e2g2200&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;viewsonic_vx2428a&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;asus_tuf_24_curved&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;ktc_h24f8&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;dell_se2426hg&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;1920x1080&quot;},&quot;msi_mag245f_x24&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:240,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;msi_mag255f_x24&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:240,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;iodata_ex_gd251uh&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:240,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;iodata_ex_gd243udw&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:240,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;asus_vg249qml5a&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:240,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;asus_vg259qm5a&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:240,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;acer_nitro_245_240_jp&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;philips_evnia_245_240&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;aoc_24_260_jp&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;dell_aw2525hm&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;lg_25g550b&quot;:{&quot;hz&quot;:300,&quot;hdmiHz&quot;:240,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;},&quot;ktc_h25t7&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;1920x1080&quot;},&quot;xiaomi_g25i&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;1920x1080&quot;},&quot;lenovo_legion_24_15&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;gigabyte_gs25f2a&quot;:{&quot;hz&quot;:240,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:&quot;1920x1080 (FHD)&quot;},&quot;acer_kg251q_z1&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;dell_se2726hg&quot;:{&quot;hz&quot;:null,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:false,&quot;res&quot;:null},&quot;asus_vg249qe5a&quot;:{&quot;hz&quot;:146,&quot;hdmiHz&quot;:null,&quot;vrr&quot;:false,&quot;sync&quot;:true,&quot;res&quot;:&quot;1920x1080&quot;}},&quot;buy&quot;:{&quot;msi_mag272qp_x24&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;MSI MAG 272QP QD-OLED X24&quot;,&quot;en&quot;:&quot;MSI MAG 272QP QD-OLED X24&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0G53VCGQB&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0G53VCGQB&quot;,&quot;asinUS&quot;:&quot;B0G53VCGQB&quot;,&quot;title&quot;:&quot;MSI MAG 272QP QD-OLED X24&quot;,&quot;searchQuery&quot;:&quot;MSI MAG 272QP QD-OLED X24&quot;}},&quot;rank_us&quot;:14},&quot;MAG 272QP QD-OLED X24&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;MSI MAG 272QP QD-OLED X24&quot;,&quot;en&quot;:&quot;MSI MAG 272QP QD-OLED X24&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0G53VCGQB&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0G53VCGQB&quot;,&quot;asinUS&quot;:&quot;B0G53VCGQB&quot;,&quot;title&quot;:&quot;MSI MAG 272QP QD-OLED X24&quot;,&quot;searchQuery&quot;:&quot;MSI MAG 272QP QD-OLED X24&quot;}},&quot;rank_us&quot;:14},&quot;asus_vg27aqm5a&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG27AQM5A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG27AQM5A&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F233D6W1&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F233D6W1&quot;,&quot;asinUS&quot;:&quot;B0F233D6W1&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG27AQM5A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG27AQM5A&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71-woCs5tFL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:11},&quot;VG27AQM5A&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG27AQM5A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG27AQM5A&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F233D6W1&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F233D6W1&quot;,&quot;asinUS&quot;:&quot;B0F233D6W1&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG27AQM5A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG27AQM5A&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71-woCs5tFL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:11},&quot;lg_27gr83q&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG UltraGear 27GR83Q-B&quot;,&quot;en&quot;:&quot;LG UltraGear 27GR83Q-B&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0C63HDHPR&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0C63HDHPR&quot;,&quot;asinUS&quot;:&quot;B0C63HDHPR&quot;,&quot;title&quot;:&quot;LG UltraGear 27GR83Q-B&quot;,&quot;searchQuery&quot;:&quot;LG UltraGear 27GR83Q-B&quot;}},&quot;rank_us&quot;:13},&quot;27GR83Q-B&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG UltraGear 27GR83Q-B&quot;,&quot;en&quot;:&quot;LG UltraGear 27GR83Q-B&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0C63HDHPR&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0C63HDHPR&quot;,&quot;asinUS&quot;:&quot;B0C63HDHPR&quot;,&quot;title&quot;:&quot;LG UltraGear 27GR83Q-B&quot;,&quot;searchQuery&quot;:&quot;LG UltraGear 27GR83Q-B&quot;}},&quot;rank_us&quot;:13},&quot;dell_g2725d&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell G2725D&quot;,&quot;en&quot;:&quot;Dell G2725D&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DGMQ2M1G&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DGMQ2M1G&quot;,&quot;asinUS&quot;:&quot;B0DGMQ2M1G&quot;,&quot;title&quot;:&quot;Dell G2725D&quot;,&quot;searchQuery&quot;:&quot;Dell G2725D&quot;}},&quot;rank_us&quot;:8},&quot;G2725D&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell G2725D&quot;,&quot;en&quot;:&quot;Dell G2725D&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DGMQ2M1G&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DGMQ2M1G&quot;,&quot;asinUS&quot;:&quot;B0DGMQ2M1G&quot;,&quot;title&quot;:&quot;Dell G2725D&quot;,&quot;searchQuery&quot;:&quot;Dell G2725D&quot;}},&quot;rank_us&quot;:8},&quot;iodata_ex_gdq271ua&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;I-O DATA EX-GDQ271UA&quot;,&quot;en&quot;:&quot;I-O DATA EX-GDQ271UA&quot;,&quot;jp&quot;:&quot;B0FRS96GV9&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0FRS96GV9&quot;,&quot;title&quot;:&quot;I-O DATA EX-GDQ271UA&quot;,&quot;searchQuery&quot;:&quot;I-O DATA EX-GDQ271UA&quot;,&quot;jan&quot;:&quot;4957180185682&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:7},&quot;EX-GDQ271UA&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;I-O DATA EX-GDQ271UA&quot;,&quot;en&quot;:&quot;I-O DATA EX-GDQ271UA&quot;,&quot;jp&quot;:&quot;B0FRS96GV9&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0FRS96GV9&quot;,&quot;title&quot;:&quot;I-O DATA EX-GDQ271UA&quot;,&quot;searchQuery&quot;:&quot;I-O DATA EX-GDQ271UA&quot;,&quot;jan&quot;:&quot;4957180185682&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:7},&quot;aoc_q27g41ze&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;AOC Q27G41ZE&quot;,&quot;en&quot;:&quot;AOC Q27G41ZE&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FF5HXGJK&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FF5HXGJK&quot;,&quot;asinUS&quot;:&quot;B0FF5HXGJK&quot;,&quot;title&quot;:&quot;AOC Q27G41ZE&quot;,&quot;searchQuery&quot;:&quot;AOC Q27G41ZE&quot;}},&quot;rank_us&quot;:7},&quot;Q27G41ZE&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;AOC Q27G41ZE&quot;,&quot;en&quot;:&quot;AOC Q27G41ZE&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FF5HXGJK&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FF5HXGJK&quot;,&quot;asinUS&quot;:&quot;B0FF5HXGJK&quot;,&quot;title&quot;:&quot;AOC Q27G41ZE&quot;,&quot;searchQuery&quot;:&quot;AOC Q27G41ZE&quot;}},&quot;rank_us&quot;:7},&quot;regza_rm_g276n&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;REGZA RM-G276N&quot;,&quot;en&quot;:&quot;REGZA RM-G276N&quot;,&quot;jp&quot;:&quot;B0DMN94Q8M&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DMN94Q8M&quot;,&quot;title&quot;:&quot;REGZA RM-G276N&quot;,&quot;searchQuery&quot;:&quot;REGZA RM-G276N&quot;,&quot;jan&quot;:&quot;4580652114202&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:8},&quot;RM-G276N&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;REGZA RM-G276N&quot;,&quot;en&quot;:&quot;REGZA RM-G276N&quot;,&quot;jp&quot;:&quot;B0DMN94Q8M&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DMN94Q8M&quot;,&quot;title&quot;:&quot;REGZA RM-G276N&quot;,&quot;searchQuery&quot;:&quot;REGZA RM-G276N&quot;,&quot;jan&quot;:&quot;4580652114202&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:8},&quot;dell_aw2726dl&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell Alienware AW2726DL&quot;,&quot;en&quot;:&quot;Dell Alienware AW2726DL&quot;,&quot;jp&quot;:&quot;B0H3HC1L6Q&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0H3HC1L6Q&quot;,&quot;title&quot;:&quot;Dell Alienware AW2726DL&quot;,&quot;searchQuery&quot;:&quot;Dell Alienware AW2726DL&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:9},&quot;AW2726DL&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell Alienware AW2726DL&quot;,&quot;en&quot;:&quot;Dell Alienware AW2726DL&quot;,&quot;jp&quot;:&quot;B0H3HC1L6Q&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0H3HC1L6Q&quot;,&quot;title&quot;:&quot;Dell Alienware AW2726DL&quot;,&quot;searchQuery&quot;:&quot;Dell Alienware AW2726DL&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:9},&quot;msi_mag274qp_x24&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;MSI MAG 274QP QD-OLED X24&quot;,&quot;en&quot;:&quot;MSI MAG 274QP QD-OLED X24&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0G4P697M8&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0G4P697M8&quot;,&quot;asinUS&quot;:&quot;B0G4P697M8&quot;,&quot;title&quot;:&quot;MSI MAG 274QP QD-OLED X24&quot;,&quot;searchQuery&quot;:&quot;MSI MAG 274QP QD-OLED X24&quot;}},&quot;rank_us&quot;:15},&quot;MAG 274QP QD-OLED X24&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;MSI MAG 274QP QD-OLED X24&quot;,&quot;en&quot;:&quot;MSI MAG 274QP QD-OLED X24&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0G4P697M8&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0G4P697M8&quot;,&quot;asinUS&quot;:&quot;B0G4P697M8&quot;,&quot;title&quot;:&quot;MSI MAG 274QP QD-OLED X24&quot;,&quot;searchQuery&quot;:&quot;MSI MAG 274QP QD-OLED X24&quot;}},&quot;rank_us&quot;:15},&quot;lg_27g610a&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG UltraGear 27G610A-B&quot;,&quot;en&quot;:&quot;LG UltraGear 27G610A-B&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FLM15Q5L&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FLM15Q5L&quot;,&quot;asinUS&quot;:&quot;B0FLM15Q5L&quot;,&quot;title&quot;:&quot;LG UltraGear 27G610A-B&quot;,&quot;searchQuery&quot;:&quot;LG UltraGear 27G610A-B&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81z1o5y64wL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:9},&quot;27G610A-B&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG UltraGear 27G610A-B&quot;,&quot;en&quot;:&quot;LG UltraGear 27G610A-B&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FLM15Q5L&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FLM15Q5L&quot;,&quot;asinUS&quot;:&quot;B0FLM15Q5L&quot;,&quot;title&quot;:&quot;LG UltraGear 27G610A-B&quot;,&quot;searchQuery&quot;:&quot;LG UltraGear 27G610A-B&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81z1o5y64wL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:9},&quot;dell_s2725qs&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2725QS (27\&quot; 4K 120Hz)&quot;,&quot;en&quot;:&quot;Dell S2725QS (27\&quot; 4K 120Hz)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F1GF1KFC&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F1GF1KFC&quot;,&quot;asinUS&quot;:&quot;B0F1GF1KFC&quot;,&quot;title&quot;:&quot;Dell S2725QS (27 4K 120Hz)&quot;,&quot;searchQuery&quot;:&quot;Dell S2725QS (27 4K 120Hz)&quot;}},&quot;rank_us&quot;:12},&quot;S2725QS&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2725QS (27\&quot; 4K 120Hz)&quot;,&quot;en&quot;:&quot;Dell S2725QS (27\&quot; 4K 120Hz)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F1GF1KFC&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F1GF1KFC&quot;,&quot;asinUS&quot;:&quot;B0F1GF1KFC&quot;,&quot;title&quot;:&quot;Dell S2725QS (27 4K 120Hz)&quot;,&quot;searchQuery&quot;:&quot;Dell S2725QS (27 4K 120Hz)&quot;}},&quot;rank_us&quot;:12},&quot;asus_vg27aq5a&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG27AQ5A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG27AQ5A&quot;,&quot;jp&quot;:&quot;B0F9WHRY36&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0F9WHRY36&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG27AQ5A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG27AQ5A&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:6},&quot;VG27AQ5A&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG27AQ5A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG27AQ5A&quot;,&quot;jp&quot;:&quot;B0F9WHRY36&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0F9WHRY36&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG27AQ5A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG27AQ5A&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:6},&quot;asus_vg27aq3a&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG27AQ3A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG27AQ3A&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0BZR9TMBJ&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0BZR9TMBJ&quot;,&quot;asinUS&quot;:&quot;B0BZR9TMBJ&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG27AQ3A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG27AQ3A&quot;}},&quot;rank_us&quot;:10},&quot;VG27AQ3A&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG27AQ3A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG27AQ3A&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0BZR9TMBJ&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0BZR9TMBJ&quot;,&quot;asinUS&quot;:&quot;B0BZR9TMBJ&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG27AQ3A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG27AQ3A&quot;}},&quot;rank_us&quot;:10},&quot;lg_24g411b&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG 24G411B-B&quot;,&quot;en&quot;:&quot;LG 24G411B-B&quot;,&quot;jp&quot;:&quot;B0GYPP63DR&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GYPP63DR&quot;,&quot;title&quot;:&quot;LG 24G411B-B&quot;,&quot;searchQuery&quot;:&quot;LG 24G411B-B&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71EnzI0zYcL._AC_SL320_.jpg&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;24G411B-B (JP) / 24G411A-B (US)&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG 24G411B-B&quot;,&quot;en&quot;:&quot;LG 24G411B-B&quot;,&quot;jp&quot;:&quot;B0GYPP63DR&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GYPP63DR&quot;,&quot;title&quot;:&quot;LG 24G411B-B&quot;,&quot;searchQuery&quot;:&quot;LG 24G411B-B&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71EnzI0zYcL._AC_SL320_.jpg&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;asus_vg259q5a&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;jp&quot;:&quot;B0F9WJLW45&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0F9WJLW45&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71hhyOqLuZL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4711387918951&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1},&quot;VG259Q5A&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;jp&quot;:&quot;B0F9WJLW45&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0F9WJLW45&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG259Q5A&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71hhyOqLuZL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4711387918951&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1},&quot;benq_ex251&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;BenQ MOBIUZ EX251&quot;,&quot;en&quot;:&quot;BenQ MOBIUZ EX251&quot;,&quot;jp&quot;:&quot;B0DT3NLNCC&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DT3NLNCC&quot;,&quot;title&quot;:&quot;BenQ MOBIUZ EX251&quot;,&quot;searchQuery&quot;:&quot;BenQ MOBIUZ EX251&quot;,&quot;jan&quot;:&quot;4544438016708&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:5},&quot;EX251&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;BenQ MOBIUZ EX251&quot;,&quot;en&quot;:&quot;BenQ MOBIUZ EX251&quot;,&quot;jp&quot;:&quot;B0DT3NLNCC&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DT3NLNCC&quot;,&quot;title&quot;:&quot;BenQ MOBIUZ EX251&quot;,&quot;searchQuery&quot;:&quot;BenQ MOBIUZ EX251&quot;,&quot;jan&quot;:&quot;4544438016708&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:5},&quot;msi_pro_mp243l_e14&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;en&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FG5XLWNV&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FG5XLWNV&quot;,&quot;asinUS&quot;:&quot;B0FG5XLWNV&quot;,&quot;title&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;searchQuery&quot;:&quot;MSI PRO MP243L E14&quot;}},&quot;rank_us&quot;:0},&quot;PRO MP243L E14&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;en&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FG5XLWNV&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FG5XLWNV&quot;,&quot;asinUS&quot;:&quot;B0FG5XLWNV&quot;,&quot;title&quot;:&quot;MSI PRO MP243L E14&quot;,&quot;searchQuery&quot;:&quot;MSI PRO MP243L E14&quot;}},&quot;rank_us&quot;:0},&quot;dell_se2426h&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell SE2426H&quot;,&quot;en&quot;:&quot;Dell SE2426H&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GLQXKKVY&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GLQXKKVY&quot;,&quot;asinUS&quot;:&quot;B0GLQXKKVY&quot;,&quot;title&quot;:&quot;Dell SE2426H&quot;,&quot;searchQuery&quot;:&quot;Dell SE2426H&quot;}},&quot;rank_us&quot;:1},&quot;SE2426H&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell SE2426H&quot;,&quot;en&quot;:&quot;Dell SE2426H&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GLQXKKVY&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GLQXKKVY&quot;,&quot;asinUS&quot;:&quot;B0GLQXKKVY&quot;,&quot;title&quot;:&quot;Dell SE2426H&quot;,&quot;searchQuery&quot;:&quot;Dell SE2426H&quot;}},&quot;rank_us&quot;:1},&quot;asus_tuf_24_curved&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming 24\&quot; 1080p 180Hz curved (US B0CXS73LRP)&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming 24\&quot; 1080p 180Hz curved (US B0CXS73LRP)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0CXS73LRP&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0CXS73LRP&quot;,&quot;asinUS&quot;:&quot;B0CXS73LRP&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming 24 1080p 180Hz curved (US B0CXS73LRP)&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming 24 1080p 180Hz curved (US B0CXS73LRP)&quot;}},&quot;rank_us&quot;:5},&quot;not captured&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming 24\&quot; 1080p 180Hz curved (US B0CXS73LRP)&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming 24\&quot; 1080p 180Hz curved (US B0CXS73LRP)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0CXS73LRP&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0CXS73LRP&quot;,&quot;asinUS&quot;:&quot;B0CXS73LRP&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming 24 1080p 180Hz curved (US B0CXS73LRP)&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming 24 1080p 180Hz curved (US B0CXS73LRP)&quot;}},&quot;rank_us&quot;:5},&quot;dell_se2426hg&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell SE2426HG&quot;,&quot;en&quot;:&quot;Dell SE2426HG&quot;,&quot;jp&quot;:&quot;B0G6JV85HG&quot;,&quot;us&quot;:&quot;B0GKFLQ9SW&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0G6JV85HG&quot;,&quot;asinUS&quot;:&quot;B0GKFLQ9SW&quot;,&quot;title&quot;:&quot;Dell SE2426HG&quot;,&quot;searchQuery&quot;:&quot;Dell SE2426HG&quot;,&quot;jan&quot;:&quot;4573661279796&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0G6JV85HG&quot;,&quot;asinUS&quot;:&quot;B0GKFLQ9SW&quot;,&quot;title&quot;:&quot;Dell SE2426HG&quot;,&quot;searchQuery&quot;:&quot;Dell SE2426HG&quot;}},&quot;rank_jp&quot;:3,&quot;rank_us&quot;:2},&quot;SE2426HG&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell SE2426HG&quot;,&quot;en&quot;:&quot;Dell SE2426HG&quot;,&quot;jp&quot;:&quot;B0G6JV85HG&quot;,&quot;us&quot;:&quot;B0GKFLQ9SW&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0G6JV85HG&quot;,&quot;asinUS&quot;:&quot;B0GKFLQ9SW&quot;,&quot;title&quot;:&quot;Dell SE2426HG&quot;,&quot;searchQuery&quot;:&quot;Dell SE2426HG&quot;,&quot;jan&quot;:&quot;4573661279796&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0G6JV85HG&quot;,&quot;asinUS&quot;:&quot;B0GKFLQ9SW&quot;,&quot;title&quot;:&quot;Dell SE2426HG&quot;,&quot;searchQuery&quot;:&quot;Dell SE2426HG&quot;}},&quot;rank_jp&quot;:3,&quot;rank_us&quot;:2},&quot;iodata_ex_gd251uh&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;I-O DATA EX-GD251UH&quot;,&quot;en&quot;:&quot;I-O DATA EX-GD251UH&quot;,&quot;jp&quot;:&quot;B0FLC2Y42B&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0FLC2Y42B&quot;,&quot;title&quot;:&quot;I-O DATA EX-GD251UH&quot;,&quot;searchQuery&quot;:&quot;I-O DATA EX-GD251UH&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71S7-I5j9NL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4957180184838&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2},&quot;EX-GD251UH&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;I-O DATA EX-GD251UH&quot;,&quot;en&quot;:&quot;I-O DATA EX-GD251UH&quot;,&quot;jp&quot;:&quot;B0FLC2Y42B&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0FLC2Y42B&quot;,&quot;title&quot;:&quot;I-O DATA EX-GD251UH&quot;,&quot;searchQuery&quot;:&quot;I-O DATA EX-GD251UH&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71S7-I5j9NL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4957180184838&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2},&quot;iodata_ex_gd243udw&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;I-O DATA EX-GD243UDW&quot;,&quot;en&quot;:&quot;I-O DATA EX-GD243UDW&quot;,&quot;jp&quot;:&quot;B0H4LBRFFB&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0H4LBRFFB&quot;,&quot;title&quot;:&quot;I-O DATA EX-GD243UDW&quot;,&quot;searchQuery&quot;:&quot;I-O DATA EX-GD243UDW&quot;,&quot;jan&quot;:&quot;4957180188621&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:4},&quot;EX-GD243UDW&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;I-O DATA EX-GD243UDW&quot;,&quot;en&quot;:&quot;I-O DATA EX-GD243UDW&quot;,&quot;jp&quot;:&quot;B0H4LBRFFB&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0H4LBRFFB&quot;,&quot;title&quot;:&quot;I-O DATA EX-GD243UDW&quot;,&quot;searchQuery&quot;:&quot;I-O DATA EX-GD243UDW&quot;,&quot;jan&quot;:&quot;4957180188621&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:4},&quot;acer_kg251q_z1&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Acer Nitro KG251Q Z1biip&quot;,&quot;en&quot;:&quot;Acer Nitro KG251Q Z1biip&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DJTTB6V9&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DJTTB6V9&quot;,&quot;asinUS&quot;:&quot;B0DJTTB6V9&quot;,&quot;title&quot;:&quot;Acer Nitro KG251Q Z1biip&quot;,&quot;searchQuery&quot;:&quot;Acer Nitro KG251Q Z1biip&quot;}},&quot;rank_us&quot;:6},&quot;KG251Q Z1biip&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Acer Nitro KG251Q Z1biip&quot;,&quot;en&quot;:&quot;Acer Nitro KG251Q Z1biip&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DJTTB6V9&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DJTTB6V9&quot;,&quot;asinUS&quot;:&quot;B0DJTTB6V9&quot;,&quot;title&quot;:&quot;Acer Nitro KG251Q Z1biip&quot;,&quot;searchQuery&quot;:&quot;Acer Nitro KG251Q Z1biip&quot;}},&quot;rank_us&quot;:6},&quot;dell_se2726hg&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell SE2726HG (27\&quot; FHD 240Hz)&quot;,&quot;en&quot;:&quot;Dell SE2726HG (27\&quot; FHD 240Hz)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GGRKQ494&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GGRKQ494&quot;,&quot;asinUS&quot;:&quot;B0GGRKQ494&quot;,&quot;title&quot;:&quot;Dell SE2726HG (27 FHD 240Hz)&quot;,&quot;searchQuery&quot;:&quot;Dell SE2726HG (27 FHD 240Hz)&quot;}},&quot;rank_us&quot;:3},&quot;SE2726HG&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell SE2726HG (27\&quot; FHD 240Hz)&quot;,&quot;en&quot;:&quot;Dell SE2726HG (27\&quot; FHD 240Hz)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GGRKQ494&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GGRKQ494&quot;,&quot;asinUS&quot;:&quot;B0GGRKQ494&quot;,&quot;title&quot;:&quot;Dell SE2726HG (27 FHD 240Hz)&quot;,&quot;searchQuery&quot;:&quot;Dell SE2726HG (27 FHD 240Hz)&quot;}},&quot;rank_us&quot;:3},&quot;asus_vg249qe5a&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG249QE5A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG249QE5A&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F234D8G9&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F234D8G9&quot;,&quot;asinUS&quot;:&quot;B0F234D8G9&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG249QE5A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG249QE5A&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71j50tGvDFL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:4},&quot;VG249QE5A&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG249QE5A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG249QE5A&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F234D8G9&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F234D8G9&quot;,&quot;asinUS&quot;:&quot;B0F234D8G9&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG249QE5A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG249QE5A&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71j50tGvDFL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:4}},&quot;accessory&quot;:{&quot;ja&quot;:{},&quot;en&quot;:{}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;fps-hz-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。
// 依存なし・副作用なしの関数だけを置く。build-tool.mjs がこのファイルをそのまま記事のツールに埋め込む。

// 画面に1秒あたりに出せる新しいコマの数 = 出ているfpsと、モニターのリフレッシュレートの小さいほう
function shown(fps, hz) {
  return Math.min(fps, hz);
}

// 1コマの時間（ミリ秒）
function frameMs(hz) {
  return 1000 / hz;
}

// 機器ごとの出力の上限（公式仕様）を踏まえた、実際に出るfps
function effectiveFps(fps, device, m) {
  const cap = m.devices[device] ? m.devices[device].max : null;
  return cap == null ? fps : Math.min(fps, cap);
}

// 144Hz級と240Hz級のモニターで出せるコマの数と、240Hzで増える分
function compare({ fps, device }, m) {
  const eff = effectiveFps(fps, device, m);
  const a = shown(eff, m.lo), b = shown(eff, m.hi);
  return { eff, a, b, gain: b - a };
}

// 候補の枠（条件ごとに1商品）: ゲーム機は console、PCは出るfpsが144以下なら pc_fhd、超えるなら pc_240
function slotFor({ fps, device }, m) {
  if (device !== &quot;pc&quot;) return &quot;console&quot;;
  return fps &gt; m.lo ? &quot;pc_240&quot; : &quot;pc_fhd&quot;;
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    device: &quot;遊ぶ機器&quot;, fps: &quot;重い場面で出ているfps&quot;,
    pc: &quot;PC&quot;, ps5: &quot;PS5&quot;, xbox: &quot;Xbox&quot;, sw2: &quot;Switch 2&quot;,
    vOk: &quot;○ 144Hz級のモニターで足ります&quot;, vCond: &quot;△ 240Hzのほうが新しいコマを多く出せます&quot;, mLabel: (c) =&gt; `144Hz級で足りる 〜${c}fps`, mYou: (x) =&gt; `あなた ${x}fps`,
    hz: (x) =&gt; `最大${x}Hz`, hdmi: (x) =&gt; `HDMIで${x}Hz`, vrr: &quot;HDMI VRR対応&quot;, sync: &quot;可変リフレッシュ対応&quot;,
    shown: &quot;画面に出る新しいコマ（1秒あたり）&quot;, m144: &quot;144Hzのモニター&quot;, m240: &quot;240Hzのモニター&quot;,
    same: &quot;差はありません。144Hz級で足ります。&quot;, more: (g) =&gt; `240Hzのほうが1秒に${g}コマ多く出せます。`,
    cap: (c) =&gt; `この機器の出力の上限は${c}です。`,
    note: &quot;結果は計算の目安です。実際のfpsは場面で変わり、操作から画面に出るまでの遅れは含みません。&quot;,
  },
  en: {
    device: &quot;Device&quot;, fps: &quot;fps in heavy scenes&quot;,
    pc: &quot;PC&quot;, ps5: &quot;PS5&quot;, xbox: &quot;Xbox&quot;, sw2: &quot;Switch 2&quot;,
    vOk: &quot;✓ A 144Hz-class monitor is enough&quot;, vCond: &quot;△ A 240Hz monitor shows more new frames&quot;, mLabel: (c) =&gt; `144Hz is enough up to ${c} fps`, mYou: (x) =&gt; `You: ${x} fps`,
    hz: (x) =&gt; `Up to ${x}Hz`, hdmi: (x) =&gt; `${x}Hz over HDMI`, vrr: &quot;HDMI VRR&quot;, sync: &quot;Adaptive sync&quot;,
    shown: &quot;New frames shown per second&quot;, m144: &quot;144Hz monitor&quot;, m240: &quot;240Hz monitor&quot;,
    same: &quot;No difference. A 144Hz monitor is enough.&quot;, more: (g) =&gt; `A 240Hz monitor shows ${g} more frames per second.`,
    cap: (c) =&gt; `This device outputs up to ${c}.`,
    note: &quot;This is a calculated estimate. Real fps changes by scene, and input lag is not included.&quot;,
  },
};

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;device&quot;, type: &quot;select&quot;, label: t.device, value: &quot;pc&quot;, options: [&quot;pc&quot;, &quot;ps5&quot;, &quot;xbox&quot;, &quot;sw2&quot;].map((x) =&gt; ({ value: x, label: t[x] })) },
    // gauge: 型 E のスライダー。止まる値は早見表の fps。144・240 は比べる2つのリフレッシュレート（区切り）
    { name: &quot;fps&quot;, type: &quot;select&quot;, label: t.fps, value: &quot;144&quot;, gauge: true, options: [60, 90, 120, 144, 180, 240, 300].map((x) =&gt; ({ value: String(x), label: `${x}fps`, major: String(x), ...(x === M.lo || x === M.hi ? { kind: &quot;cut&quot;, tick: `${x}Hz` } : {}) })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const fps = Number(v.fps), device = v.device;
  if (!(fps &gt; 0) || !M.devices[device]) return { status: &quot;error&quot;, lines: [] };
  const r = compare({ fps, device }, M);
  const lines = [];
  const cap = M.devices[device].max;
  if (cap != null &amp;&amp; fps &gt; cap) lines.push(t.cap(`${cap}Hz`));
  lines.push(`${t.shown}: ${t.m144} ${r.a}${lang === &quot;ja&quot; ? &quot;コマ&quot; : &quot;&quot;} / ${t.m240} ${r.b}${lang === &quot;ja&quot; ? &quot;コマ&quot; : &quot;&quot;}`);
  lines.push(r.gain === 0 ? t.same : t.more(r.gain));
  const slot = slotFor({ fps, device }, M);
  const ids = (M.groups[slot] || []).slice();
  const meter = { min: 0, max: 300, value: r.eff, ok: [0, M.lo], unit: &quot;fps&quot;, valueLabel: t.mYou(r.eff), okLabel: t.mLabel(M.lo) };
  const status = r.gain === 0 ? &quot;ok&quot; : &quot;cond&quot;;
  // 型 E の目盛り: 144Hz と 240Hz を区切りにした帯と、画面に出る fps（effectiveFps）
  const gauge = { cuts: [{ id: `${M.lo}Hz`, min: M.lo }, { id: `${M.hi}Hz`, min: M.hi }], value: r.eff, valueLabel: t.mYou(r.eff), status, tightRatio: 0, overLabel: lang === &quot;ja&quot; ? `${M.hi}Hz 超` : `Over ${M.hi}Hz` };
  return { status, verdict: r.gain === 0 ? t.vOk : t.vCond, lines, picks: ids, accessory: [], meter, gauge };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（機器×fps）
function presets() {
  const out = [];
  for (const fps of [&quot;60&quot;, &quot;90&quot;, &quot;120&quot;, &quot;144&quot;, &quot;180&quot;, &quot;240&quot;, &quot;300&quot;]) out.push({ device: &quot;pc&quot;, fps });
  for (const [device, fps] of [[&quot;ps5&quot;, &quot;60&quot;], [&quot;ps5&quot;, &quot;120&quot;], [&quot;xbox&quot;, &quot;120&quot;], [&quot;sw2&quot;, &quot;60&quot;], [&quot;sw2&quot;, &quot;120&quot;]]) out.push({ device, fps });
  return out;
}

// カードに出す仕様（公式仕様の値だけ。PCは最大Hzと可変リフレッシュ、ゲーム機はHDMIで受けられるHzとVRR）
function pickSpecs(id, v, M, lang) {
  const t = T_[lang], s = (M.specs || {})[id];
  if (!s) return [];
  const out = [];
  if (s.hz) out.push(t.hz(s.hz));
  if (v.device === &quot;pc&quot;) { if (s.sync) out.push(t.sync); }
  else { if (s.hdmiHz) out.push(t.hdmi(s.hdmiHz)); if (s.vrr) out.push(t.vrr); }
  return out;
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;gauge&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;how-fps-and-refresh-rate-fit-together&quot;&gt;How FPS and refresh rate fit together&lt;/h2&gt;
&lt;p&gt;The number of new frames you see is the smaller of your FPS and the refresh rate.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A faster monitor can’t show more new pictures than the game draws&lt;/li&gt;
&lt;li&gt;A faster game can’t show more than the monitor redraws&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When the two drift apart, you can get tearing, where different frames are mixed in the top and bottom of the screen. VRR (the monitor follows your FPS) reduces that. Monitors labeled G-SYNC Compatible or FreeSync support it.&lt;/p&gt;
&lt;p&gt;One frame lasts “1000 ÷ refresh rate”: 16.67 ms at 60Hz, 6.94 ms at 144Hz and 4.17 ms at 240Hz.&lt;/p&gt;
&lt;p&gt;The time per frame drops by 9.72 ms going from 60Hz to 144Hz, but by only 2.78 ms from 144Hz to 240Hz. Each step up saves less.&lt;/p&gt;
&lt;h2 id=&quot;console-limits-and-hdmi-21&quot;&gt;Console limits and HDMI 2.1&lt;/h2&gt;
&lt;p&gt;Per the official specs, the PS5, Xbox Series X|S and Switch 2 output up to 120 fps, so a 120Hz or higher monitor is enough; 240Hz doesn’t raise the limit. Assumption: the maximum video output in the official specs, checked in October 2026.&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Console&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Max output&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;PS5&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;120Hz&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;PS5 Pro&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;120 fps&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Xbox Series X|S&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;120Hz&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Switch 2 (TV mode, 1080p and 1440p)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;120 fps&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Switch 2 (TV mode, 4K)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;60 fps&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;What to buy&lt;/strong&gt;: a monitor that takes 120Hz over HDMI is enough. If you also play on a PC above 144 fps, 240Hz is worth a look&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VRR&lt;/strong&gt;: Sony lists the condition for PS5 VRR as an HDMI 2.1 VRR-compatible TV or PC monitor. According to the HDMI Forum, a spec sheet saying “HDMI 2.1” doesn’t guarantee VRR support. For a console, look for an HDMI VRR line in the specs. Of the console models that pass the rules, HDMI VRR is listed for 1 model&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1440p&lt;/strong&gt;: PS5 supports VRR at 1440p since the system update of March 8, 2023. Advice that says “no VRR at 1440p” is out of date&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If the screen stays below 120Hz&lt;/strong&gt;: the game and the monitor both need to support 120Hz. Check the PS5 video output settings too&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;how-to-read-response-time&quot;&gt;How to read response time&lt;/h2&gt;
&lt;p&gt;According to the makers’ explanations, if the rated response time (GtG) is shorter than one frame at your refresh rate, pixels finish changing before the next frame arrives. One frame lasts 6.94 ms at 144Hz and 4.17 ms at 240Hz.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GtG&lt;/strong&gt;: how long a pixel takes to change from one gray to another&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MPRT&lt;/strong&gt;: how long a picture stays visible, and its floor is set by the refresh rate. At 144Hz it’s 6.9 ms&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Which to read&lt;/strong&gt;: GtG shows how fast colors change and MPRT how much blur you see, so one “1ms” alone doesn’t decide it. Compare GtG with GtG and MPRT with MPRT. Some “1ms” figures are MPRT&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For IPS, VA, TN and OLED differences, see &lt;a href=&quot;https://aulvem.com/blog/2021-03-21-monitor-panel/&quot;&gt;Choosing a monitor panel by use&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-use&quot;&gt;Picks by use&lt;/h2&gt;
&lt;p&gt;One pick per use. Of the models checked, each pick is the cheapest with shipping among those that meet these four rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sold new on Amazon.com by Amazon or the maker&lt;/li&gt;
&lt;li&gt;100 or more ratings and 4 stars or higher&lt;/li&gt;
&lt;li&gt;Not sold by a third-party seller&lt;/li&gt;
&lt;li&gt;Not a pricey import&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Specs come from the makers’ official pages. These monitors weren’t tested.&lt;/p&gt;
&lt;p&gt;Ratings are per Amazon page and may be pooled across model variants. Check prices on the listing. The number passing the rules is 5 for console, 1 for PC up to 144 fps and 3 for PC above 144 fps.&lt;/p&gt;
&lt;h3 id=&quot;console-ps5-and-others&quot;&gt;Console (PS5 and others)&lt;/h3&gt;
&lt;p&gt;It needs an official spec of 120Hz or more over HDMI. Its specs list 1440p and up to 200Hz (144Hz over HDMI), with no HDMI VRR line and no mention of PS5 VRR.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG UltraGear 27G610A-B&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81z1o5y64wL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG UltraGear 27G610A-B&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FLM15Q5L?q=LG+UltraGear+27G610A-B&amp;amp;us=B0FLM15Q5L&amp;amp;l=en&quot; aria-label=&quot;View LG UltraGear 27G610A-B on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h3 id=&quot;pc-up-to-144-fps&quot;&gt;PC up to 144 fps&lt;/h3&gt;
&lt;p&gt;It needs 1080p, a top rate of 144Hz or more and under 240Hz, and a variable-refresh-rate listing.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG249QE5A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71j50tGvDFL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG249QE5A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F234D8G9?q=ASUS+TUF+Gaming+VG249QE5A&amp;amp;us=B0F234D8G9&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG249QE5A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h3 id=&quot;pc-above-144-fps&quot;&gt;PC above 144 fps&lt;/h3&gt;
&lt;p&gt;It needs a top rate of 240Hz or more and a variable-refresh-rate listing. Its specs list 1440p and up to 300Hz, with G-SYNC Compatible and FreeSync Premium.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG27AQM5A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71-woCs5tFL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG27AQM5A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F233D6W1?q=ASUS+TUF+Gaming+VG27AQM5A&amp;amp;us=B0F233D6W1&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG27AQM5A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;is-the-difference-between-144hz-and-240hz-noticeable&quot;&gt;Is the difference between 144Hz and 240Hz noticeable?&lt;/h3&gt;
&lt;p&gt;This calculation does not establish whether the difference is noticeable. In this calculation, a 240Hz monitor shows more new frames than a 144Hz one only when a game runs above 144 fps.&lt;/p&gt;
&lt;p&gt;The time per frame drops by 9.72 ms going from 60Hz to 144Hz, but by only 2.78 ms from 144Hz to 240Hz. Each step up saves less.&lt;/p&gt;
&lt;h3 id=&quot;does-a-240hz-monitor-make-sense-for-ps5&quot;&gt;Does a 240Hz monitor make sense for PS5?&lt;/h3&gt;
&lt;p&gt;Per the official specs, the PS5, Xbox Series X|S and Switch 2 output up to 120 fps, so a 120Hz or higher monitor is enough; 240Hz doesn’t raise the limit. If you also game on a PC above 144 fps, the 240Hz shows more new frames there.&lt;/p&gt;
&lt;h3 id=&quot;does-ps5-vrr-need-hdmi-21&quot;&gt;Does PS5 VRR need HDMI 2.1?&lt;/h3&gt;
&lt;p&gt;Sony lists the condition for PS5 VRR as an HDMI 2.1 VRR-compatible TV or PC monitor. According to the HDMI Forum, a spec sheet saying “HDMI 2.1” doesn’t guarantee VRR support.&lt;/p&gt;
&lt;p&gt;For a console, look for an HDMI VRR line in the specs. VRR at 1440p has worked since the system update of March 8, 2023.&lt;/p&gt;
&lt;h3 id=&quot;is-a-1ms-response-time-necessary&quot;&gt;Is a 1ms response time necessary?&lt;/h3&gt;
&lt;p&gt;According to the makers’ explanations, if the rated response time (GtG) is shorter than one frame at your refresh rate, pixels finish changing before the next frame arrives. One frame lasts 6.94 ms at 144Hz and 4.17 ms at 240Hz.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Everything was checked in October 2026 on the makers’ and platforms’ official pages. FPS and frame times come from official numbers and simple math. PlayStation: &lt;a href=&quot;https://www.playstation.com/ja-jp/support/hardware/ps5-4k-resolution-guide/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;PS5 support&lt;/a&gt;, &lt;a href=&quot;https://www.playstation.com/en-us/ps5/ps5-pro/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;PS5 Pro&lt;/a&gt;, &lt;a href=&quot;https://blog.playstation.com/2022/04/25/variable-refresh-rate-support-for-ps5-is-rolling-out-this-week/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;VRR launch&lt;/a&gt;, &lt;a href=&quot;https://blog.playstation.com/2023/02/02/ps5-beta-introduces-discord-voice-chat-vrr-support-for-1440p-and-more/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;VRR at 1440p&lt;/a&gt;. Xbox: &lt;a href=&quot;https://www.xbox.com/en-US/consoles/xbox-series-x&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Xbox Series X&lt;/a&gt;. Nintendo: &lt;a href=&quot;https://www.nintendo.com/us/gaming-systems/switch-2/tech-specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Switch 2 specs&lt;/a&gt;. HDMI: &lt;a href=&quot;https://www.hdmi.org/blog/detail/139&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;HDMI Forum FAQ&lt;/a&gt;. Response time: &lt;a href=&quot;https://www.asus.com/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27aql5a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ASUS VG27AQL5A specs&lt;/a&gt;, &lt;a href=&quot;https://www.benq.com/en-ca/knowledge-center/knowledge/gaming-monitor-response-time.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;BenQ&lt;/a&gt;, &lt;a href=&quot;https://www.viewsonic.com/library/gaming/oled-gaming-monitor-response-time/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ViewSonic&lt;/a&gt;. VRR: &lt;a href=&quot;https://www.nvidia.com/en-us/geforce/products/g-sync-monitors/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;NVIDIA G-SYNC Compatible&lt;/a&gt;. Pick specs: &lt;a href=&quot;https://www.lg.com/jp/monitors/gaming-monitors/27g610a-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;LG 27G610A-B&lt;/a&gt;, &lt;a href=&quot;https://www.asus.com/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27aqm5a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ASUS VG27AQM5A&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;New frames shown per second = min(game FPS, refresh rate). A faster monitor can’t show more new pictures than the game draws.&lt;/li&gt;
&lt;li&gt;Frame time (ms) = 1000 ÷ refresh rate. The time saved from 144Hz to 240Hz is smaller than from 60Hz to 144Hz.&lt;/li&gt;
&lt;li&gt;The quick table assumes the game holds a steady FPS. It does not include input lag, and whether the difference is noticeable was not measured.&lt;/li&gt;
&lt;li&gt;Consoles stop at their official output limit (120 for PS5, PS5 Pro and Xbox Series X|S; 120 for Switch 2 at 1080p and 1440p). A monitor’s Hz above that goes unused.&lt;/li&gt;
&lt;li&gt;HDMI 2.1 features are all optional, so a spec sheet saying HDMI 2.1 doesn’t prove VRR support. PS5 VRR follows Sony’s stated condition (HDMI 2.1 VRR); VRR ranges such as 48 to 120Hz are not used.&lt;/li&gt;
&lt;li&gt;Response time compares the maker’s rated GtG with the frame time. GtG and MPRT are different measures, so compare like with like.&lt;/li&gt;
&lt;li&gt;Picks are chosen from new Amazon listings with at least 100 ratings and 4 stars, no sakura warning, not an import and sold by Amazon or the maker, whose official specs meet each slot’s condition, cheapest with shipping first. No unit was measured in person.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;


































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;PS5 maximum output&lt;/td&gt;&lt;td&gt;120 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.playstation.com/ja-jp/support/hardware/ps5-4k-resolution-guide/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;playstation.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 Pro maximum output&lt;/td&gt;&lt;td&gt;120 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.playstation.com/en-us/ps5/ps5-pro/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;playstation.com&lt;/a&gt; Play at 60fps, or up to 120fps, with 4K output and ray tracing for compatible ga&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PlayStation monitor maximum on PC&lt;/td&gt;&lt;td&gt;240 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.playstation.com/en-us/accessories/27-inch-gaming-monitor/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;playstation.com&lt;/a&gt; up to 240 Hz refresh rate on compatible PC and Mac devices / HDMI IN port x2 (ve&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 1440p output start date&lt;/td&gt;&lt;td&gt;2022-09-07&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://blog.playstation.com/2022/09/07/new-ps5-system-software-update-is-out-globally-today/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;blog.playstation.com&lt;/a&gt; 1440p video output on PS5 requires a TV or PC monitor that supports 1440p/60Hz,&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 VRR start date&lt;/td&gt;&lt;td&gt;2022-04-25&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://blog.playstation.com/2022/04/25/variable-refresh-rate-support-for-ps5-is-rolling-out-this-week/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;blog.playstation.com&lt;/a&gt; Variable Refresh Rate (VRR) support will start rolling out globally to PS5 playe&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 VRR requirement&lt;/td&gt;&lt;td&gt;HDMI 2.1 VRR&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://blog.playstation.com/2022/04/25/variable-refresh-rate-support-for-ps5-is-rolling-out-this-week/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;blog.playstation.com&lt;/a&gt; On HDMI 2.1 VRR-compatible TVs and PC monitors, VRR dynamically syncs the refres&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 1440p VRR beta date&lt;/td&gt;&lt;td&gt;2023-02-02&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://blog.playstation.com/2023/02/02/ps5-beta-introduces-discord-voice-chat-vrr-support-for-1440p-and-more/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;blog.playstation.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 1440p VRR general release date&lt;/td&gt;&lt;td&gt;2023-03-08&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://blog.playstation.com/2023/02/02/ps5-beta-introduces-discord-voice-chat-vrr-support-for-1440p-and-more/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;blog.playstation.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Xbox Series X／S maximum output&lt;/td&gt;&lt;td&gt;120 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xbox.com/en-US/consoles/xbox-series-x&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xbox.com&lt;/a&gt; Up to 120 FPS / 1x HDMI 2.1 port / HDMI Variable Refresh Rate / AMD FreeSync&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Switch 2 TV mode 4K maximum&lt;/td&gt;&lt;td&gt;60 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nintendo.com/jp/hardware/switch2/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nintendo.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Switch 2 TV mode 1080p/1440p maximum&lt;/td&gt;&lt;td&gt;120 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nintendo.com/jp/hardware/switch2/specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nintendo.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Switch 2 TV mode VRR date&lt;/td&gt;&lt;td&gt;2026-09&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nintendo.com/us/gaming-systems/switch-2/features/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nintendo.com&lt;/a&gt; VRR support in TV Mode was added via a system update released on September 10, 2&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Switch (original) TV mode maximum&lt;/td&gt;&lt;td&gt;60 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nintendo.com/ph/hardware/switch/modal/specs/body.html?width=960&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nintendo.com&lt;/a&gt; TV mode: Up to 1920x1080 pixels, 60 fps&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NVIDIA’s G-SYNC description&lt;/td&gt;&lt;td&gt;tear-free, stutter-free&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/products/g-sync-monitors/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt; G-SYNC Compatible: Doesn’t use NVIDIA processors but is validated by NVIDIA to d&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NVIDIA VRR range ratio&lt;/td&gt;&lt;td&gt;2.4&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/news/g-sync-ces-2019-announcements/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AMD LFC lower refresh rate&lt;/td&gt;&lt;td&gt;60 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.amd.com/en/products/graphics/technologies/freesync.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;amd.com&lt;/a&gt; FAQ: a display with a 60 – 144Hz refresh rate, would be able to sync the frames&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AMD LFC upper refresh rate&lt;/td&gt;&lt;td&gt;144 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.amd.com/en/products/graphics/technologies/freesync.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;amd.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AMD LFC fps&lt;/td&gt;&lt;td&gt;40 fps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.amd.com/en/products/graphics/technologies/freesync.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;amd.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG27AQL5A HDMI max Hz&lt;/td&gt;&lt;td&gt;144 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27aql5a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Digital Signal Frequency: HDMI: 48&lt;del&gt;144Hz(V) / DP: 48&lt;/del&gt;210Hz(V) / HDMI(v2.0) x 2,&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG27AQL5A DP max Hz&lt;/td&gt;&lt;td&gt;210 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27aql5a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; DP: 48~210Hz(V)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG27AQL5A lowest accepted frequency&lt;/td&gt;&lt;td&gt;48 Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27aql5a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG27AQL5A GtG&lt;/td&gt;&lt;td&gt;1 ms&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27aql5a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Response Time: 1ms(GTG), 0.3ms(min.)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG27AQL5A GtG (min)&lt;/td&gt;&lt;td&gt;0.3 ms&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27aql5a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Response Time: 1ms(GTG), 0.3ms(min.)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG27AQL5A contrast ratio&lt;/td&gt;&lt;td&gt;1300&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27aql5a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Panel Type: Fast IPS / Contrast Ratio (Typ.): 1300:1 / Viewing Angle (CR≧10, H/V&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG27VQM contrast ratio&lt;/td&gt;&lt;td&gt;3000&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27vqm/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Panel Type: VA / Contrast Ratio (Typ.): 3000:1 / Response Time: 1ms MPRT / Refre&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG258QM viewing angle&lt;/td&gt;&lt;td&gt;170/160&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg258qm/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Panel Type: TN / Viewing Angle (CR≧10, H/V): 170°/160° / Contrast Ratio (Typ.):&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;IPS viewing angle (example)&lt;/td&gt;&lt;td&gt;178/178&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27aql5a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; Viewing Angle (CR≧10, H/V): 178°/178°&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS PG27UCDM GtG&lt;/td&gt;&lt;td&gt;0.03 ms&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://rog.asus.com/us/monitors/27-to-31-5-inches/rog-swift-oled-pg27ucdm/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;rog.asus.com&lt;/a&gt; 0.03ms gray-to-gray (GTG) response time&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS PG27UCDM warranty years&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://rog.asus.com/us/monitors/27-to-31-5-inches/rog-swift-oled-pg27ucdm/spec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;rog.asus.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell AW3423DWF warranty years&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/en-us/shop/alienware-34-curved-qd-oled-gaming-monitor-aw3423dwf/apd/210-bfrp/monitors-monitor-accessories&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt; 3-Year Advanced Exchange Service and Premium Panel Exchange (Including coverage&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.1 rate&lt;/td&gt;&lt;td&gt;48 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/announce/detail/172&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; supports … 8K60 and 4K120 … bandwidth capability is increased up to 48Gbps&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.0 rate&lt;/td&gt;&lt;td&gt;18 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/blog/detail/139&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Q: Can a product claim compliance to the HDMI 2.1 Specification even if it only&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ MPRT floor at 144Hz&lt;/td&gt;&lt;td&gt;6.9 ms&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-ca/knowledge-center/knowledge/gaming-monitor-response-time.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt; MPRT … measures how long a pixel remains apparent or visible on the screen …&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ViewSonic frame time at 240Hz&lt;/td&gt;&lt;td&gt;4.17 ms&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.viewsonic.com/library/gaming/oled-gaming-monitor-response-time/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;viewsonic.com&lt;/a&gt; Gray-to-Gray (GTG): This tracks how long a pixel takes to shift between two shad&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Clear MR low&lt;/td&gt;&lt;td&gt;3000&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://clearmr.org/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;clearmr.org&lt;/a&gt; Clear Motion Ratio (CMR) … ratio of clear pixels to blurry pixels / tiers—from&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Clear MR high&lt;/td&gt;&lt;td&gt;21000&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://clearmr.org/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;clearmr.org&lt;/a&gt; from ClearMR 3000 up to ClearMR 21000&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;144Hz vs 240Hz calculator by fps: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;





































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;PC, 60fps&lt;/td&gt;&lt;td&gt;✓ A 144Hz-class monitor is enough. New frames shown per second: 144Hz monitor 60 / 240Hz monitor 60. No difference. A 144Hz monitor is enough.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-20-gaming-monitor/?fps-hz-calc-device=pc&amp;amp;fps-hz-calc-fps=60#fps-hz-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PC, 90fps&lt;/td&gt;&lt;td&gt;✓ A 144Hz-class monitor is enough. New frames shown per second: 144Hz monitor 90 / 240Hz monitor 90. No difference. A 144Hz monitor is enough.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-20-gaming-monitor/?fps-hz-calc-device=pc&amp;amp;fps-hz-calc-fps=90#fps-hz-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PC, 120fps&lt;/td&gt;&lt;td&gt;✓ A 144Hz-class monitor is enough. New frames shown per second: 144Hz monitor 120 / 240Hz monitor 120. No difference. A 144Hz monitor is enough.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-20-gaming-monitor/?fps-hz-calc-device=pc&amp;amp;fps-hz-calc-fps=120#fps-hz-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PC, 144fps&lt;/td&gt;&lt;td&gt;✓ A 144Hz-class monitor is enough. New frames shown per second: 144Hz monitor 144 / 240Hz monitor 144. No difference. A 144Hz monitor is enough.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-20-gaming-monitor/?fps-hz-calc-device=pc&amp;amp;fps-hz-calc-fps=144#fps-hz-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PC, 180fps&lt;/td&gt;&lt;td&gt;△ A 240Hz monitor shows more new frames. New frames shown per second: 144Hz monitor 144 / 240Hz monitor 180. A 240Hz monitor shows 36 more frames per second.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-20-gaming-monitor/?fps-hz-calc-device=pc&amp;amp;fps-hz-calc-fps=180#fps-hz-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PC, 240fps&lt;/td&gt;&lt;td&gt;△ A 240Hz monitor shows more new frames. New frames shown per second: 144Hz monitor 144 / 240Hz monitor 240. A 240Hz monitor shows 96 more frames per second.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-20-gaming-monitor/?fps-hz-calc-device=pc&amp;amp;fps-hz-calc-fps=240#fps-hz-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PC, 300fps&lt;/td&gt;&lt;td&gt;△ A 240Hz monitor shows more new frames. New frames shown per second: 144Hz monitor 144 / 240Hz monitor 240. A 240Hz monitor shows 96 more frames per second.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-20-gaming-monitor/?fps-hz-calc-device=pc&amp;amp;fps-hz-calc-fps=300#fps-hz-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5, 60fps&lt;/td&gt;&lt;td&gt;✓ A 144Hz-class monitor is enough. New frames shown per second: 144Hz monitor 60 / 240Hz monitor 60. No difference. A 144Hz monitor is enough.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-20-gaming-monitor/?fps-hz-calc-device=ps5&amp;amp;fps-hz-calc-fps=60#fps-hz-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5, 120fps&lt;/td&gt;&lt;td&gt;✓ A 144Hz-class monitor is enough. New frames shown per second: 144Hz monitor 120 / 240Hz monitor 120. No difference. A 144Hz monitor is enough.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-20-gaming-monitor/?fps-hz-calc-device=ps5&amp;amp;fps-hz-calc-fps=120#fps-hz-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Xbox, 120fps&lt;/td&gt;&lt;td&gt;✓ A 144Hz-class monitor is enough. New frames shown per second: 144Hz monitor 120 / 240Hz monitor 120. No difference. A 144Hz monitor is enough.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-20-gaming-monitor/?fps-hz-calc-device=xbox&amp;amp;fps-hz-calc-fps=120#fps-hz-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Switch 2, 60fps&lt;/td&gt;&lt;td&gt;✓ A 144Hz-class monitor is enough. New frames shown per second: 144Hz monitor 60 / 240Hz monitor 60. No difference. A 144Hz monitor is enough.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-20-gaming-monitor/?fps-hz-calc-device=sw2&amp;amp;fps-hz-calc-fps=60#fps-hz-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Switch 2, 120fps&lt;/td&gt;&lt;td&gt;✓ A 144Hz-class monitor is enough. New frames shown per second: 144Hz monitor 120 / 240Hz monitor 120. No difference. A 144Hz monitor is enough.&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-20-gaming-monitor/?fps-hz-calc-device=sw2&amp;amp;fps-hz-calc-fps=120#fps-hz-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>monitor</category><category>gaming</category></item><item><title>Is 4K worth it on a 27-inch monitor? Scaling by distance</title><link>https://aulvem.com/blog/2021-03-19-four-k-monitor/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-19-four-k-monitor/</guid><description>4K on a 27-inch monitor is worth it for sharper text and images, not for more workspace. In this calculation, with your eyes 54 cm to 80 cm from a 27-inch screen, one 4K pixel is smaller than the angle the eye can resolve (1 arcminute). One 1440p pixel is 1 arcminute or larger. The ends of that range are borderline. Worked out from official documents checked in October 2026.</description><pubDate>Fri, 19 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;4K on a 27-inch monitor is worth it for sharper text and images, not for more workspace. Over 50 cm to 80 cm, as compared here, a 27-inch 4K screen’s workspace width is at most 12.5% off 1440p, and only the pixel fineness changes.&lt;/p&gt;
&lt;p&gt;In this calculation, with your eyes 54 cm to 80 cm from a 27-inch screen, one 4K pixel is smaller than the angle the eye can resolve (1 arcminute). One 1440p pixel is 1 arcminute or larger. The ends of that range are borderline.&lt;/p&gt;
&lt;h2 id=&quot;scaling-and-workspace-by-distance&quot;&gt;Scaling and workspace by distance&lt;/h2&gt;
&lt;p&gt;Workspace is the resolution divided by that scaling, and it’s how much fits on screen.&lt;/p&gt;
&lt;p&gt;1440p is 2560×1440, 4K is 3840×2160 and 1080p is 1920×1080. Each cell shows the Windows scaling, then the workspace.
(Assumptions: letters 12 px tall at 100% scaling, the 20 arcminutes guideline target, Windows’ scaling steps. Windows’ standard text is smaller than this assumes, so you may need a higher scaling in practice)&lt;/p&gt;








































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Screen&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;50 cm (19.7 in)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;58 cm (22.8 in)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;68 cm (26.8 in)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;78 cm (30.7 in)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;27-inch 1080p&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;100% (1920×1080)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;100% (1920×1080)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;125% (1536×864)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;125% (1536×864)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;27-inch 1440p&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;125% (2048×1152)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;125% (2048×1152)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;150% (1707×960)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;175% (1463×823)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;27-inch 4K&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;175% (2194×1234)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;200% (1920×1080)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;225% (1707×960)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;250% (1536×864)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;31.5-inch 4K&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;150% (2560×1440)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;175% (2194×1234)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;200% (1920×1080)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;225% (1707×960)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;With your eyes 50 cm to 80 cm from a 27-inch screen, the workspace width of 4K and 1440p differs by at most 12.5%. 4K is the same or wider at most distances; 1440p is wider only past 56.09 cm and up to 60.09 cm. Right near those limits it’s borderline.&lt;/p&gt;
&lt;p&gt;A 27-inch 4K screen at 100% scaling shows letters 1.86 mm tall, under the guideline’s roughly 3 mm. So 4K needs a higher scaling.&lt;/p&gt;
&lt;h2 id=&quot;check-your-own-distance-and-screen&quot;&gt;Check your own distance and screen&lt;/h2&gt;
&lt;p&gt;Once you know your distance, you can check the scaling and whether a screen fits. The text height here is a lenient assumption, so with Windows’ standard text you may need a higher scaling than shown.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Measure from your eyes to the screen.&lt;/strong&gt; Sit the way you normally do and measure to the screen surface&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pick a screen size and resolution.&lt;/strong&gt; 24, 27 or 32 inches, and 1080p, 1440p or 4K&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enter them in the calculator below.&lt;/strong&gt; It shows the scaling and a matching product&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;With the assumed text height, for a 27-inch 4K screen, the scaling depends on how far you sit. 50 cm to 56.09 cm: 175%; up to 64.1 cm: 200%; up to 72.11 cm: 225%; beyond that: 250% or more. Right at each limit it’s borderline.&lt;/p&gt;
&lt;p&gt;In the calculator, a screen counts as a fit if text at the guideline size still leaves a workspace at least 1920 px wide (the same as 1080p). Right at the distance limits it’s borderline. The distance limits are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;27-inch 4K: up to 64.1 cm&lt;/li&gt;
&lt;li&gt;27-inch 1440p: up to 60.09 cm&lt;/li&gt;
&lt;li&gt;31.5-inch 4K: up to 74.91 cm&lt;/li&gt;
&lt;/ul&gt;
&lt;section id=&quot;monitor-resolution-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;monitor-resolution-calc-title&quot;&gt; &lt;h3 id=&quot;monitor-resolution-calc-title&quot;&gt;4K vs 1440p vs 1080p calculator (scaling and workspace)&lt;/h3&gt; &lt;p&gt;Pick a screen size, a resolution and how far your eyes are from the screen to see the scaling for readable text and the workspace it leaves, plus a product that fits.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;s2725qs&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell S2725QS&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61pF09VcRPL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell S2725QS&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F1GF1KFC?q=Dell+S2725QS&amp;amp;us=B0F1GF1KFC&amp;amp;l=en&quot; aria-label=&quot;View Dell S2725QS on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;27us500&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG 27US500-W&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71ghM+g3BXL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG 27US500-W&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0D9R7Q449?q=LG+27US500-W&amp;amp;us=B0D9R7Q449&amp;amp;l=en&quot; aria-label=&quot;View LG 27US500-W on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;27up650k&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG 27UP650K-W&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81iwq+Q+ByL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG 27UP650K-W&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DS2TCW9L?q=LG+27UP650K-W&amp;amp;us=B0DS2TCW9L&amp;amp;l=en&quot; aria-label=&quot;View LG 27UP650K-W on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;s3225qs&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell S3225QS&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71pxbqJ34CL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell S3225QS&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F1GD9YFN?q=Dell+S3225QS&amp;amp;us=B0F1GD9YFN&amp;amp;l=en&quot; aria-label=&quot;View Dell S3225QS on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;vp327q&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS VP327Q&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81p0NWfCISL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS VP327Q&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C7G6F8BY?q=ASUS+VP327Q&amp;amp;us=B0C7G6F8BY&amp;amp;l=en&quot; aria-label=&quot;View ASUS VP327Q on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;s2725ds&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell S2725DS&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71JhPBz-d2L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell S2725DS&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0D3FGFPPB?q=Dell+S2725DS&amp;amp;us=B0D3FGFPPB&amp;amp;l=en&quot; aria-label=&quot;View Dell S2725DS on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;s2725dsm&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell S2725DSM&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71E--5UD9vL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell S2725DSM&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GD1LMWH3?q=Dell+S2725DSM&amp;amp;us=B0GD1LMWH3&amp;amp;l=en&quot; aria-label=&quot;View Dell S2725DSM on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;vg27aq3a&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG27AQ3A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71awxc1RPRL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG27AQ3A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0BZR9TMBJ?q=ASUS+TUF+Gaming+VG27AQ3A&amp;amp;us=B0BZR9TMBJ&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG27AQ3A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;27g610a&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG UltraGear 27G610A-B&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81z1o5y64wL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG UltraGear 27G610A-B&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FLM15Q5L?q=LG+UltraGear+27G610A-B&amp;amp;us=B0FLM15Q5L&amp;amp;l=en&quot; aria-label=&quot;View LG UltraGear 27G610A-B on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;vg27uq1a&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS TUF Gaming VG27UQ1A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71cWF5GsRwL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS TUF Gaming VG27UQ1A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DHG1GTG2?q=ASUS+TUF+Gaming+VG27UQ1A&amp;amp;us=B0DHG1GTG2&amp;amp;l=en&quot; aria-label=&quot;View ASUS TUF Gaming VG27UQ1A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;s2725qc&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell S2725QC&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71lQNQPr+OL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell S2725QC&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR4NR53Y?q=Dell+S2725QC&amp;amp;us=B0F1GFD44G&amp;amp;l=en&quot; aria-label=&quot;View Dell S2725QC on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the scaling-by-distance table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;fontPx&quot;:12,&quot;arcmin&quot;:20,&quot;acuityArcmin&quot;:1,&quot;steps&quot;:[100,125,150,175,200,225,250,300,350],&quot;res&quot;:{&quot;fhd&quot;:{&quot;w&quot;:1920,&quot;h&quot;:1080},&quot;qhd&quot;:{&quot;w&quot;:2560,&quot;h&quot;:1440},&quot;uhd&quot;:{&quot;w&quot;:3840,&quot;h&quot;:2160}},&quot;resName&quot;:{&quot;fhd&quot;:{&quot;ja&quot;:&quot;フルHD&quot;,&quot;en&quot;:&quot;1080p&quot;},&quot;qhd&quot;:{&quot;ja&quot;:&quot;WQHD&quot;,&quot;en&quot;:&quot;1440p&quot;},&quot;uhd&quot;:{&quot;ja&quot;:&quot;4K&quot;,&quot;en&quot;:&quot;4K&quot;}},&quot;panels&quot;:{&quot;27&quot;:{&quot;fhd&quot;:{&quot;p&quot;:0.3114},&quot;qhd&quot;:{&quot;p&quot;:0.2331},&quot;uhd&quot;:{&quot;p&quot;:0.1554}},&quot;23.8&quot;:{&quot;fhd&quot;:{&quot;p&quot;:0.2745},&quot;qhd&quot;:{&quot;p&quot;:0.2058},&quot;uhd&quot;:{&quot;p&quot;:0.13725}},&quot;31.5&quot;:{&quot;qhd&quot;:{&quot;p&quot;:0.2727},&quot;uhd&quot;:{&quot;p&quot;:0.18159}}},&quot;timing&quot;:{&quot;hBlank&quot;:80,&quot;minVBlankUs&quot;:460,&quot;vSync&quot;:8,&quot;vBackMin&quot;:6,&quot;vFrontMin&quot;:1},&quot;dscRatio&quot;:3,&quot;tightRatio&quot;:0.03,&quot;links&quot;:{&quot;hdmi20&quot;:{&quot;payload&quot;:14.4,&quot;dsc&quot;:false,&quot;ja&quot;:&quot;HDMI 2.0&quot;,&quot;en&quot;:&quot;HDMI 2.0&quot;},&quot;hdmi21&quot;:{&quot;payload&quot;:42.666666666666664,&quot;dsc&quot;:false,&quot;ja&quot;:&quot;HDMI 2.1（48Gbps）&quot;,&quot;en&quot;:&quot;HDMI 2.1 (48 Gbps)&quot;},&quot;dp14&quot;:{&quot;payload&quot;:25.92,&quot;dsc&quot;:true,&quot;ja&quot;:&quot;DisplayPort 1.4&quot;,&quot;en&quot;:&quot;DisplayPort 1.4&quot;},&quot;uhbr10&quot;:{&quot;payload&quot;:38.685,&quot;dsc&quot;:true,&quot;ja&quot;:&quot;DisplayPort 2.1 UHBR10&quot;,&quot;en&quot;:&quot;DisplayPort 2.1 UHBR10&quot;},&quot;uhbr13&quot;:{&quot;payload&quot;:52.22475000000001,&quot;dsc&quot;:true,&quot;ja&quot;:&quot;DisplayPort 2.1 UHBR13.5&quot;,&quot;en&quot;:&quot;DisplayPort 2.1 UHBR13.5&quot;},&quot;uhbr20&quot;:{&quot;payload&quot;:77.37,&quot;dsc&quot;:true,&quot;ja&quot;:&quot;DisplayPort 2.1 UHBR20&quot;,&quot;en&quot;:&quot;DisplayPort 2.1 UHBR20&quot;}},&quot;hzOptions&quot;:[60,100,120,144,160,165,180,240],&quot;makerPclk&quot;:{&quot;3840x2160@60&quot;:[533.25,594],&quot;3840x2160@120&quot;:[1074.73,1188],&quot;3840x2160@144&quot;:[1250],&quot;2560x1440@144&quot;:[591.31]},&quot;minWidth&quot;:1920,&quot;models&quot;:[{&quot;id&quot;:&quot;s2725qs&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.1554},{&quot;id&quot;:&quot;27us500&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.1554},{&quot;id&quot;:&quot;27u711b&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.1554},{&quot;id&quot;:&quot;27up650k&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.1554},{&quot;id&quot;:&quot;27e1n1800a&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.1554},{&quot;id&quot;:&quot;s3225qs&quot;,&quot;size&quot;:&quot;31.5&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:31.5,&quot;pitch&quot;:0.18159},{&quot;id&quot;:&quot;32ur500k&quot;,&quot;size&quot;:&quot;31.5&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:31.5,&quot;pitch&quot;:0.18159},{&quot;id&quot;:&quot;32u701b&quot;,&quot;size&quot;:&quot;31.5&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:31.5,&quot;pitch&quot;:0.18159},{&quot;id&quot;:&quot;s70h32&quot;,&quot;size&quot;:&quot;31.5&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:32,&quot;pitch&quot;:null},{&quot;id&quot;:&quot;32e1n1800la&quot;,&quot;size&quot;:&quot;31.5&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:31.5,&quot;pitch&quot;:0.18159},{&quot;id&quot;:&quot;vp327q&quot;,&quot;size&quot;:&quot;31.5&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:31.5,&quot;pitch&quot;:0.182},{&quot;id&quot;:&quot;s2725ds&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;qhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.2331},{&quot;id&quot;:&quot;s2725dsm&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;qhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.2331},{&quot;id&quot;:&quot;vg27aq3a&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;qhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.233},{&quot;id&quot;:&quot;mag275qf&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;qhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.2331},{&quot;id&quot;:&quot;27g610a&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;qhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.2331},{&quot;id&quot;:&quot;g2721p&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;qhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:null},{&quot;id&quot;:&quot;27g810a&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.1554},{&quot;id&quot;:&quot;mag275upd&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.1554},{&quot;id&quot;:&quot;mag321upd&quot;,&quot;size&quot;:&quot;31.5&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:31.5,&quot;pitch&quot;:0.18159},{&quot;id&quot;:&quot;vg27uq1a&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.155},{&quot;id&quot;:&quot;h27p6&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:null},{&quot;id&quot;:&quot;exgdu271jad&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.15525},{&quot;id&quot;:&quot;s2725qc&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;uhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.1554},{&quot;id&quot;:&quot;s2725dc&quot;,&quot;size&quot;:&quot;27&quot;,&quot;res&quot;:&quot;qhd&quot;,&quot;sizeIn&quot;:27,&quot;pitch&quot;:0.2331}],&quot;buy&quot;:{&quot;s2725qs&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2725QS&quot;,&quot;en&quot;:&quot;Dell S2725QS&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F1GF1KFC&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F1GF1KFC&quot;,&quot;asinUS&quot;:&quot;B0F1GF1KFC&quot;,&quot;title&quot;:&quot;Dell S2725QS&quot;,&quot;searchQuery&quot;:&quot;Dell S2725QS&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61pF09VcRPL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:7},&quot;27us500&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG 27US500-W&quot;,&quot;en&quot;:&quot;LG 27US500-W&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0D9R7Q449&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0D9R7Q449&quot;,&quot;asinUS&quot;:&quot;B0D9R7Q449&quot;,&quot;title&quot;:&quot;LG 27US500-W&quot;,&quot;searchQuery&quot;:&quot;LG 27US500-W&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ghM+g3BXL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;27up650k&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG 27UP650K-W&quot;,&quot;en&quot;:&quot;LG 27UP650K-W&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DS2TCW9L&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DS2TCW9L&quot;,&quot;asinUS&quot;:&quot;B0DS2TCW9L&quot;,&quot;title&quot;:&quot;LG 27UP650K-W&quot;,&quot;searchQuery&quot;:&quot;LG 27UP650K-W&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81iwq+Q+ByL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:4},&quot;s3225qs&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S3225QS&quot;,&quot;en&quot;:&quot;Dell S3225QS&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F1GD9YFN&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F1GD9YFN&quot;,&quot;asinUS&quot;:&quot;B0F1GD9YFN&quot;,&quot;title&quot;:&quot;Dell S3225QS&quot;,&quot;searchQuery&quot;:&quot;Dell S3225QS&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71pxbqJ34CL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:8},&quot;vp327q&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS VP327Q&quot;,&quot;en&quot;:&quot;ASUS VP327Q&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0C7G6F8BY&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0C7G6F8BY&quot;,&quot;asinUS&quot;:&quot;B0C7G6F8BY&quot;,&quot;title&quot;:&quot;ASUS VP327Q&quot;,&quot;searchQuery&quot;:&quot;ASUS VP327Q&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81p0NWfCISL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:5},&quot;s2725ds&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2725DS&quot;,&quot;en&quot;:&quot;Dell S2725DS&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0D3FGFPPB&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0D3FGFPPB&quot;,&quot;asinUS&quot;:&quot;B0D3FGFPPB&quot;,&quot;title&quot;:&quot;Dell S2725DS&quot;,&quot;searchQuery&quot;:&quot;Dell S2725DS&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71JhPBz-d2L._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:6},&quot;s2725dsm&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2725DSM&quot;,&quot;en&quot;:&quot;Dell S2725DSM&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0GD1LMWH3&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0GD1LMWH3&quot;,&quot;asinUS&quot;:&quot;B0GD1LMWH3&quot;,&quot;title&quot;:&quot;Dell S2725DSM&quot;,&quot;searchQuery&quot;:&quot;Dell S2725DSM&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71E--5UD9vL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:3},&quot;vg27aq3a&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG27AQ3A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG27AQ3A&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0BZR9TMBJ&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0BZR9TMBJ&quot;,&quot;asinUS&quot;:&quot;B0BZR9TMBJ&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG27AQ3A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG27AQ3A&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71awxc1RPRL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:2},&quot;27g610a&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG UltraGear 27G610A-B&quot;,&quot;en&quot;:&quot;LG UltraGear 27G610A-B&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FLM15Q5L&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FLM15Q5L&quot;,&quot;asinUS&quot;:&quot;B0FLM15Q5L&quot;,&quot;title&quot;:&quot;LG UltraGear 27G610A-B&quot;,&quot;searchQuery&quot;:&quot;LG UltraGear 27G610A-B&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81z1o5y64wL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;vg27uq1a&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS TUF Gaming VG27UQ1A&quot;,&quot;en&quot;:&quot;ASUS TUF Gaming VG27UQ1A&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DHG1GTG2&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DHG1GTG2&quot;,&quot;asinUS&quot;:&quot;B0DHG1GTG2&quot;,&quot;title&quot;:&quot;ASUS TUF Gaming VG27UQ1A&quot;,&quot;searchQuery&quot;:&quot;ASUS TUF Gaming VG27UQ1A&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71cWF5GsRwL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:9},&quot;exgdu271jad&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;I-O DATA GigaCrysta EX-GDU271JAD&quot;,&quot;en&quot;:&quot;I-O DATA GigaCrysta EX-GDU271JAD&quot;,&quot;jp&quot;:&quot;B0FXWKCHYG&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0FXWKCHYG&quot;,&quot;title&quot;:&quot;I-O DATA GigaCrysta EX-GDU271JAD&quot;,&quot;searchQuery&quot;:&quot;I-O DATA GigaCrysta EX-GDU271JAD&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71tg8yL06fL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4957180183411&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:3},&quot;s2725qc&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2725QC&quot;,&quot;en&quot;:&quot;Dell S2725QC&quot;,&quot;jp&quot;:&quot;B0GR4NR53Y&quot;,&quot;us&quot;:&quot;B0F1GFD44G&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GR4NR53Y&quot;,&quot;asinUS&quot;:&quot;B0F1GFD44G&quot;,&quot;title&quot;:&quot;Dell S2725QC&quot;,&quot;searchQuery&quot;:&quot;Dell S2725QC&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71y4hLcha6L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4582724747370&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR4NR53Y&quot;,&quot;asinUS&quot;:&quot;B0F1GFD44G&quot;,&quot;title&quot;:&quot;Dell S2725QC&quot;,&quot;searchQuery&quot;:&quot;Dell S2725QC&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71lQNQPr+OL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:1,&quot;rank_us&quot;:10},&quot;s2725dc&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2725DC&quot;,&quot;en&quot;:&quot;Dell S2725DC&quot;,&quot;jp&quot;:&quot;B0FPF1HGT8&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0FPF1HGT8&quot;,&quot;title&quot;:&quot;Dell S2725DC&quot;,&quot;searchQuery&quot;:&quot;Dell S2725DC&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71iLuNyaz5L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4573661274739&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;s2725qca&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2725QC&quot;,&quot;en&quot;:&quot;Dell S2725QC&quot;,&quot;jp&quot;:&quot;B0F23FWBJL&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0F23FWBJL&quot;,&quot;title&quot;:&quot;Dell S2725QC&quot;,&quot;searchQuery&quot;:&quot;Dell S2725QC&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/710yap4MbDL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4582724747370&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2}},&quot;accessory&quot;:{&quot;ja&quot;:{},&quot;en&quot;:{}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;monitor-resolution-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。
// 依存なし・副作用なしの関数だけを置く。build-tool.mjs がこのファイルをそのまま記事のツールに埋め込む。

const ARCMIN_PER_RAD = 10800 / Math.PI; // 1ラジアン = 3437.75分

// 画素の大きさ（mm）を、対角（インチ）と解像度から出す（メーカーの公表値との照合用）
function pitchFromDiag(diagIn, w, h) {
  return (diagIn * 25.4) / Math.sqrt(w * w + h * h);
}

// 目から画面まで d（cm）で、文字が arcmin 分の角度になる高さ（mm）
function charNeed(dCm, arcmin) {
  return dCm * 10 * Math.tan(arcmin / ARCMIN_PER_RAD);
}

// 100%表示の文字（fontPx ピクセル）を charNeed 以上にするのに要る倍率（1 = 100%）
function needScale(p, dCm, m) {
  return charNeed(dCm, m.arcmin) / (m.fontPx * p);
}

// 倍率 s（1 = 100%）で文字の目安を満たす、目から画面までの距離の上限（cm）
function maxDistance(p, s, m) {
  return (m.fontPx * p * s) / Math.tan(m.arcmin / ARCMIN_PER_RAD) / 10;
}

// OS の倍率の刻み（%）から、need 以上でいちばん小さいものを選ぶ（100%未満にはしない）。無ければ null
function pickStep(need, steps) {
  const s = steps.find((x) =&gt; x / 100 &gt;= need - 1e-9);
  return s ?? null;
}

// 倍率 step（%）で使える作業の広さ（論理ピクセル。四捨五入）
function workspace(w, h, step) {
  return { w: Math.round((w * 100) / step), h: Math.round((h * 100) / step) };
}

// 1画素が目に対してなす角度（分）
function pixelArcmin(p, dCm) {
  return (p / (dCm * 10)) * ARCMIN_PER_RAD;
}

// 1画素が limitArcmin 分になる距離（cm）。これより離れると1画素は limitArcmin 分より小さく見える
function blendDistance(p, limitArcmin) {
  return (p * ARCMIN_PER_RAD) / limitArcmin / 10;
}

// 1つの画面・距離についての結果。m.panels[size][res] = { p }、m.res[res] = { w, h }
function evaluate({ size, res, dCm }, m) {
  const R = m.res[res];
  const p = m.panels[size][res].p;
  const need = needScale(p, dCm, m);
  const step = pickStep(need, m.steps);
  return {
    p, need, step,
    ws: step ? workspace(R.w, R.h, step) : null,
    pixArc: pixelArcmin(p, dCm),
    blend: blendDistance(p, m.acuityArcmin),
  };
}

// ---- 帯域（VESA CVT 1.2 の Reduced Blanking v2 で、1秒あたりに送る画素の数） ----
// 横のブランキングは hBlank 画素、縦のブランキングは minVBlankUs マイクロ秒以上（かつ 前＋同期＋後 の行数以上）
function cvtRb2(w, h, hz, t) {
  const hTotal = w + t.hBlank;
  const hPeriodUs = (1e6 / hz - t.minVBlankUs) / h; // 1行の時間の見積もり
  let vbi = Math.floor(t.minVBlankUs / hPeriodUs) + 1;
  vbi = Math.max(vbi, t.vFrontMin + t.vSync + t.vBackMin);
  const vTotal = h + vbi;
  const pclkMHz = Math.floor((hz * vTotal * hTotal) / 1e3) / 1e3; // 0.001MHz 単位で切り捨て
  return { hTotal, vTotal, pclkMHz };
}

// 画素クロック（MHz）と1色あたりのビット数（RGB）から、必要なデータ量（Gbps）
function rateOf(pclkMHz, bpc) {
  return (pclkMHz * bpc * 3) / 1000;
}

// 接続ごとの判定。rates = [少ない側, 多い側]（Gbps）、link = { payload, dsc }
//   ok: 多い側でも圧縮なしで送れる / tight: 送れるが余裕が tightRatio 未満 / cond: タイミングしだい
//   dsc: 圧縮（DSC、最大 dscRatio 分の1）を使えば送れる / ng: この計算では足りない
function linkFit(rates, link, m) {
  const [lo, hi] = rates;
  if (hi &lt;= link.payload) return (link.payload - hi) / link.payload &lt; m.tightRatio ? &quot;tight&quot; : &quot;ok&quot;;
  if (lo &lt;= link.payload) return &quot;cond&quot;;
  if (link.dsc &amp;&amp; hi / m.dscRatio &lt;= link.payload) return &quot;dsc&quot;;
  return &quot;ng&quot;;
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。
// 入力は条件だけ（画面サイズ・解像度・目から画面までの距離）。機種は選ばせず、合う条件の買える商品を picks で返す。

const T_ = {
  ja: {
    size: &quot;画面サイズ&quot;, res: &quot;解像度&quot;, dist: &quot;目から画面まで&quot;,
    vOk: &quot;○ この距離でも文字を読みやすくでき、作業の広さも保てます&quot;, vNg: &quot;✕ 文字を読める大きさにすると、作業の広さが足りません&quot;,
    scale: (n, s, w, h) =&gt; `文字を目安の大きさにする倍率: ${n}%以上 → Windowsでは${s}%（作業の広さ ${w}×${h}相当）`,
    over: &quot;Windowsの倍率の刻み（350%まで）では足りません&quot;,
    fit: (w) =&gt; `横${w}ピクセル（フルHDと同じ）以上の作業の広さが残るので、この条件に合います`,
    nofit: (w) =&gt; `作業の広さが横${w}ピクセル（フルHDと同じ）を下回るので、この条件には合いません`,
    other: (x) =&gt; `同じサイズのほかの解像度: ${x}`,
    note: &quot;文字の高さを100%表示で12ピクセルと仮定した計算です。標準の文字はこれより小さいことが多いので、倍率は1段階上げて試してください。&quot;,
  },
  en: {
    size: &quot;Screen size&quot;, res: &quot;Resolution&quot;, dist: &quot;Eyes to screen&quot;,
    vOk: &quot;✓ Text stays readable at this distance and the workspace stays wide enough&quot;, vNg: &quot;✕ At readable text size, the workspace gets too narrow&quot;,
    scale: (n, s, w, h) =&gt; `Scaling for guideline-size text: ${n}% or more → ${s}% in Windows (workspace like ${w}×${h})`,
    over: &quot;Windows&apos; scaling steps (up to 350%) aren&apos;t enough&quot;,
    fit: (w) =&gt; `The workspace stays at least ${w} px wide (the same as 1080p), so this setup fits`,
    nofit: (w) =&gt; `The workspace falls below ${w} px wide (the same as 1080p), so this setup doesn&apos;t fit`,
    other: (x) =&gt; `Other resolutions at this size: ${x}`,
    note: &quot;This assumes text is 12 pixels tall at 100%. Default text is often smaller, so try one step higher.&quot;,
  },
};

const PANEL_ = { &quot;24&quot;: &quot;23.8&quot;, &quot;27&quot;: &quot;27&quot;, &quot;32&quot;: &quot;31.5&quot; };

function fields(M, lang) {
  const t = T_[lang];
  const resOpts = (panel) =&gt; Object.keys(M.panels[panel] || M.panels[&quot;27&quot;]).map((r) =&gt; ({ value: r, label: M.resName[r][lang] }));
  return [
    { name: &quot;size&quot;, type: &quot;select&quot;, label: t.size, value: &quot;27&quot;, options: [&quot;24&quot;, &quot;27&quot;, &quot;32&quot;].map((x) =&gt; ({ value: x, label: lang === &quot;ja&quot; ? `${x}インチ` : `${x}&quot;`, short: lang === &quot;ja&quot; ? `${x}型` : undefined })) }, // 札は「27型」（2026-10-15 スマホで2行になっていた）
    { name: &quot;res&quot;, type: &quot;select&quot;, label: t.res, value: &quot;uhd&quot;, dependsOn: &quot;size&quot;, options: (v) =&gt; resOpts(PANEL_[v.size] || &quot;27&quot;) },
    // 目から画面までは5cm刻み（OSHA の 50〜100cm）
    { name: &quot;dist&quot;, type: &quot;select&quot;, label: t.dist, value: &quot;60&quot;, options: [50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100].map((x) =&gt; ({ value: String(x), label: lang === &quot;ja&quot; ? `${x}cm` : `${x} cm (${Math.round(x / 2.54)} in)` })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const dCm = Number(v.dist), panel = PANEL_[v.size];
  const P = M.panels[panel];
  if (!(dCm &gt; 0) || !P || !P[v.res]) return { status: &quot;error&quot;, lines: [] };
  const e = evaluate({ size: panel, res: v.res, dCm }, M);
  const lines = [];
  if (e.step) lines.push(t.scale(Math.ceil(e.need * 1000) / 10, e.step, e.ws.w, e.ws.h));
  else lines.push(t.over);
  const fits = !!e.step &amp;&amp; e.ws.w &gt;= M.minWidth;
  lines.push(fits ? t.fit(M.minWidth) : t.nofit(M.minWidth));
  const others = Object.keys(P).filter((r) =&gt; r !== v.res).map((r) =&gt; {
    const o = evaluate({ size: panel, res: r, dCm }, M);
    return `${M.resName[r][lang]} ${o.step ? `${o.step}% (${o.ws.w}×${o.ws.h})` : &quot;-&quot;}`;
  });
  if (others.length) lines.push(t.other(others.join(&quot;, &quot;)));
  // 合うなら、その画面サイズ・解像度の機種（買える出品があるもの）を picks に渡す。表示は1つ（安い順の1位）
  const picks = fits ? M.models.filter((x) =&gt; x.size === panel &amp;&amp; x.res === v.res).map((x) =&gt; x.id) : [];
  // メーター: 作業の広さを保てる距離の上限（0.1cm刻みで探す。遠いほど必要な倍率が下がるので、近い側から数える）
  let lim = null;
  for (let x = 40; x &lt;= 100; x += 0.1) { const o = evaluate({ size: panel, res: v.res, dCm: x }, M); if (o.step &amp;&amp; o.ws.w &gt;= M.minWidth) lim = x; else break; }
  const limR = lim == null ? null : Math.floor(lim * 10 + 1e-6) / 10;
  const meter = limR == null ? undefined : { min: 40, max: 100, value: dCm, ok: [40, limR], unit: &quot;cm&quot;, valueLabel: lang === &quot;ja&quot; ? `あなた ${dCm}cm` : `You: ${dCm} cm`, okLabel: lang === &quot;ja&quot; ? `〜${limR}cm` : `Up to ${limR} cm` };
  // 型 C の表: 同じ画面サイズの解像度ごとに、この距離での倍率・作業の広さ・横 minWidth 以上か（evaluate の結果だけ）
  const ja = lang === &quot;ja&quot;;
  const rows = Object.keys(P).map((r) =&gt; {
    const o = evaluate({ size: panel, res: r, dCm }, M);
    const ok = !!o.step &amp;&amp; o.ws.w &gt;= M.minWidth;
    const ids = M.models.filter((x) =&gt; x.size === panel &amp;&amp; x.res === r).map((x) =&gt; x.id);
    return { id: r, label: M.resName[r][lang], meta: `${M.res[r].w}×${M.res[r].h}`, hit: ok,
      cells: { scale: o.step ? { text: `${o.step}%` } : { text: &quot;-&quot;, miss: true }, ws: o.step ? { text: `${o.ws.w}×${o.ws.h}`, miss: !ok, ok } : { text: &quot;-&quot;, miss: true }, fit: ok ? &quot;ok&quot; : &quot;no&quot; },
      pick: ok ? ids : [] };
  });
  const hl = rows.find((x) =&gt; x.id === v.res &amp;&amp; x.hit) ? v.res : (rows.find((x) =&gt; x.hit) || {}).id;
  const matrix = { head: ja ? &quot;解像度&quot; : &quot;Resolution&quot;, cols: [{ key: &quot;scale&quot;, label: ja ? &quot;倍率&quot; : &quot;Scaling&quot; }, { key: &quot;ws&quot;, label: ja ? &quot;作業の広さ&quot; : &quot;Workspace&quot; }, { key: &quot;fit&quot;, label: ja ? `横${M.minWidth}以上` : `≥${M.minWidth} wide` }],
    rows, highlight: hl, legend: ja ? &quot;○ 合う — 合わない&quot; : &quot;○ fits — doesn&apos;t&quot; };
  return { status: fits ? &quot;ok&quot; : &quot;ng&quot;, verdict: fits ? t.vOk : t.vNg, lines, picks, meter, matrix };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（よく聞かれるサイズ×解像度×距離）
function presets(M) {
  const out = [];
  for (const [size, res] of [[&quot;27&quot;, &quot;uhd&quot;], [&quot;27&quot;, &quot;qhd&quot;], [&quot;32&quot;, &quot;uhd&quot;], [&quot;24&quot;, &quot;uhd&quot;], [&quot;32&quot;, &quot;qhd&quot;]]) {
    const P = M.panels[{ &quot;24&quot;: &quot;23.8&quot;, &quot;27&quot;: &quot;27&quot;, &quot;32&quot;: &quot;31.5&quot; }[size]];
    if (!P || !P[res]) continue;
    for (const dist of [&quot;50&quot;, &quot;60&quot;, &quot;70&quot;]) out.push({ size, res, dist });
  }
  return out;
}

// カードに出す仕様（その商品の画面サイズ・解像度と、計算に使った画素の大きさ）。メーカー仕様の値だけ
function pickSpecs(id, v, M, lang) {
  const x = M.models.find((m) =&gt; m.id === id);
  if (!x) return [];
  const px = { fhd: &quot;1920×1080&quot;, qhd: &quot;2560×1440&quot;, uhd: &quot;3840×2160&quot; }[x.res];
  const out = [lang === &quot;ja&quot; ? `${x.sizeIn}インチ・${M.resName[x.res].ja}（${px}）` : `${x.sizeIn}-inch, ${M.resName[x.res].en} (${px})`];
  if (x.pitch != null) out.push(lang === &quot;ja&quot; ? `画素の大きさ ${x.pitch}mm` : `Pixel pitch ${x.pitch} mm`);
  return out;
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;matrix&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;when-4k-looks-sharper&quot;&gt;When 4K looks sharper&lt;/h2&gt;
&lt;p&gt;With your eyes 54 cm to 80 cm from a 27-inch screen, one 4K pixel is smaller than the angle the eye can resolve (1 arcminute). One 1440p pixel is 1 arcminute or larger. The ends of that range are borderline.&lt;/p&gt;
&lt;p&gt;Sharpness depends on the angle one pixel covers at your eye. ITU-R BT.1845 gives 1 arcminute as the typical smallest angle human vision can resolve.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;From 80.14 cm and farther, a 27-inch 1440p pixel is also smaller than 1 arcminute&lt;/li&gt;
&lt;li&gt;Eyesight varies&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With a 27-inch 1080p screen, one pixel stays at or above the resolvable angle (1 arcminute) anywhere from 50 to 100 cm.&lt;/p&gt;
&lt;h2 id=&quot;how-screen-size-changes-4k&quot;&gt;How screen size changes 4K&lt;/h2&gt;
&lt;p&gt;A 23.8-inch 4K screen needs 200–300% scaling from 50 cm to 80 cm, so the workspace is at most about 1920×1080.&lt;/p&gt;
&lt;p&gt;Anywhere from 50 cm to 80 cm, a 31.5-inch 4K screen has a wider workspace than a 27-inch screen at any of the three resolutions compared here.&lt;/p&gt;
&lt;h2 id=&quot;connections-for-4k-at-high-refresh-rates&quot;&gt;Connections for 4K at high refresh rates&lt;/h2&gt;
&lt;p&gt;4K sends a lot of data, so higher refresh rates need newer connections. The refresh rate is how many times per second the screen redraws. The refresh rate each use needs and the GPU a game needs weren’t checked.
(Assumptions: full RGB, uncompressed, as a range from the VESA formula and Dell’s real timings. HDMI 2.1 is judged at 48 Gbps, DisplayPort 1.4 at an effective 25.92 Gbps)&lt;/p&gt;

































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Video&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Data rate&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;HDMI 2.0&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;HDMI 2.1&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;DisplayPort 1.4&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4K 60Hz 8-bit&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;12.54–14.26 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes, but borderline (1% to spare)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes, uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes, uncompressed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4K 120Hz 10-bit&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;32.24–35.64 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;No, not uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes, uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Only with DSC compression&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;4K 144Hz 10-bit&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;37.5–39.19 Gbps&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;No, not uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Yes, uncompressed&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Only with DSC compression&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;In the bandwidth calculation, 4K at 144Hz fits uncompressed over HDMI 2.1 (48 Gbps). DisplayPort 1.4 needs DSC (compression that is visually lossless).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The HDMI licensing body says every HDMI 2.1 feature is optional, so check the monitor’s specs for “4K at 144Hz over HDMI”&lt;/li&gt;
&lt;li&gt;Check your computer’s (GPU’s) output resolution, refresh rate, ports and DSC support against the monitor’s inputs too&lt;/li&gt;
&lt;li&gt;4K has 2.25 times the pixels of 1440p, so games load the GPU more&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;picks-by-use&quot;&gt;Picks by use&lt;/h2&gt;
&lt;p&gt;A pick is the cheapest with shipping among current models from Dell, LG, ASUS, MSI and other major brands that meet all of these:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sold new by Amazon or the maker on Amazon.com&lt;/li&gt;
&lt;li&gt;100 or more ratings and 4 stars or higher&lt;/li&gt;
&lt;li&gt;Not a third-party import&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Picks aren’t chosen by maximum refresh rate, so check the spec if you need a high one. Check the price before you buy.&lt;/p&gt;
&lt;h3 id=&quot;27-inch-4k&quot;&gt;27-inch 4K&lt;/h3&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG 27US500-W&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71ghM+g3BXL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG 27US500-W&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0D9R7Q449?q=LG+27US500-W&amp;amp;us=B0D9R7Q449&amp;amp;l=en&quot; aria-label=&quot;View LG 27US500-W on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;27-inch-1440p&quot;&gt;27-inch 1440p&lt;/h3&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG UltraGear 27G610A-B&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81z1o5y64wL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG UltraGear 27G610A-B&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FLM15Q5L?q=LG+UltraGear+27G610A-B&amp;amp;us=B0FLM15Q5L&amp;amp;l=en&quot; aria-label=&quot;View LG UltraGear 27G610A-B on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;315-to-32-inch-4k&quot;&gt;31.5 to 32-inch 4K&lt;/h3&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS VP327Q&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81p0NWfCISL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS VP327Q&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C7G6F8BY?q=ASUS+VP327Q&amp;amp;us=B0C7G6F8BY&amp;amp;l=en&quot; aria-label=&quot;View ASUS VP327Q on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;is-4k-worth-it-on-a-27-inch-monitor&quot;&gt;Is 4K worth it on a 27 inch monitor?&lt;/h3&gt;
&lt;p&gt;Yes, if you want sharper text and images; the workspace stays about the same. In this calculation, with your eyes 54 cm to 80 cm from a 27-inch screen, one 4K pixel is smaller than the angle the eye can resolve (1 arcminute).&lt;/p&gt;
&lt;p&gt;One 1440p pixel is 1 arcminute or larger. The ends of that range are borderline.&lt;/p&gt;
&lt;h3 id=&quot;what-scaling-works-for-a-27-inch-4k-monitor&quot;&gt;What scaling works for a 27 inch 4K monitor?&lt;/h3&gt;
&lt;p&gt;With the assumed text height, for a 27-inch 4K screen, the scaling depends on how far you sit. 50 cm to 56.09 cm: 175%; up to 64.1 cm: 200%; up to 72.11 cm: 225%; beyond that: 250% or more.&lt;/p&gt;
&lt;p&gt;Right at each limit it’s borderline. Windows’ default text is often smaller than this assumes, so go one step up if it’s hard to read.&lt;/p&gt;
&lt;h3 id=&quot;1440p-or-4k-for-a-27-inch-monitor&quot;&gt;1440p or 4K for a 27 inch monitor?&lt;/h3&gt;
&lt;p&gt;Pick 4K for sharper text and images, or 1440p to go easier on the GPU. With your eyes 50 cm to 80 cm from a 27-inch screen, the workspace width of 4K and 1440p differs by at most 12.5%.&lt;/p&gt;
&lt;p&gt;4K is the same or wider at most distances; 1440p is wider only past 56.09 cm and up to 60.09 cm. Right near those limits it’s borderline.&lt;/p&gt;
&lt;h3 id=&quot;hdmi-21-or-displayport-14-for-4k-144hz&quot;&gt;HDMI 2.1 or DisplayPort 1.4 for 4K 144Hz?&lt;/h3&gt;
&lt;p&gt;In the bandwidth calculation, 4K at 144Hz fits uncompressed over HDMI 2.1 (48 Gbps). DisplayPort 1.4 needs DSC (compression that is visually lossless).&lt;/p&gt;
&lt;p&gt;The HDMI licensing body says every HDMI 2.1 feature is optional, so check that the monitor’s specs list 4K at 144Hz over HDMI.&lt;/p&gt;
&lt;h3 id=&quot;what-does-a-ps5-need-for-4k-120hz&quot;&gt;What does a PS5 need for 4K 120Hz?&lt;/h3&gt;
&lt;p&gt;Per Sony’s support page, the PS5 supports HDMI 2.1 and 4K output at 120Hz. To get 4K at 120Hz over HDMI, the monitor needs an HDMI 2.1 input too.&lt;/p&gt;
&lt;p&gt;The cable to use is an Ultra High Speed HDMI cable.&lt;/p&gt;
&lt;h3 id=&quot;is-a-32-inch-4k-monitor-better-than-a-27-inch&quot;&gt;Is a 32 inch 4K monitor better than a 27 inch?&lt;/h3&gt;
&lt;p&gt;Yes, if you want more workspace. Anywhere from 50 cm to 80 cm, a 31.5-inch 4K screen has a wider workspace than a 27-inch screen at any of the three resolutions compared here.&lt;/p&gt;
&lt;p&gt;At 68 cm, for example, a 31.5-inch 4K screen’s scaling and workspace are 200% (1920×1080).&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Worked out from official documents as of October 2026. Nothing here was tested in person.&lt;/p&gt;&lt;p&gt;Sources: &lt;a href=&quot;https://www.mhlw.go.jp/content/000539604.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Japan’s MHLW display-work guideline (PDF, Japanese)&lt;/a&gt; ／ &lt;a href=&quot;https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.1845-1-201003-I!!PDF-E.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ITU-R BT.1845&lt;/a&gt; ／ &lt;a href=&quot;https://dl.dell.com/content/manual12109242-dell-u2723qe-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell user guide&lt;/a&gt; ／ &lt;a href=&quot;https://www.playstation.com/en-us/support/hardware/ps5-4k-resolution-guide/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Sony PlayStation: PS5 4K resolution guide&lt;/a&gt; ／ &lt;a href=&quot;https://www.hdmi.org/blog/detail/139&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;HDMI.org: HDMI 2.1 features are optional&lt;/a&gt; ／ &lt;a href=&quot;https://www.hdmi.org/spec2sub/ultrahdmicables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;HDMI.org: Ultra High Speed cable certification&lt;/a&gt; ／ &lt;a href=&quot;https://www.dell.com/ja-jp/shop/monitors/apd/dell-27-plus-4k-usb-c%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-s2725qc/s2725qc_monitor/-&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell S2725QC official specs&lt;/a&gt; ／ &lt;a href=&quot;https://www.dell.com/ja-jp/shop/monitors/apd/dell-27-plus-qhd-usb-c%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-s2725dc/s2725dc/-&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell S2725DC official specs&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Needed scaling = eye-to-screen distance × tan(the MHLW visual angle 20 arcminutes) ÷ (letter height at 100% scaling, 12 px, × pixel pitch), then the smallest Windows step at or above that. The letter height is an assumption for capital letters; Windows’ standard text is smaller, so you may need more scaling in practice.&lt;/li&gt;
&lt;li&gt;Workspace = resolution ÷ scaling (width and height, rounded). Distances from 50 to 80 cm were scanned in 0.01 cm steps. The difference between 4K and 1440p is the ratio of widths in pixels, not of areas.&lt;/li&gt;
&lt;li&gt;Distance limit for each scaling step = letter height × scaling ÷ tan(angle), rounded down to whole cm. Right at a limit is borderline.&lt;/li&gt;
&lt;li&gt;Pixel angle = pixel pitch ÷ distance. The distance at which a pixel gets smaller than the ITU-R BT.1845 typical 1 arcminute = pixel pitch ÷ tan(1 arcminute). For 27-inch 1440p, 0.2331 mm gives about 80.13 cm, rounded up to 80.14 cm.&lt;/li&gt;
&lt;li&gt;Data rate = pixel clock × bits per color × 3 ÷ 1000 (Gbps, RGB, uncompressed). The pixel clock is a range between the VESA CVT-RB2 formula and Dell’s published timings. The formula constants were cross-checked against open implementations (the Linux kernel and edid-decode). Some devices fall outside this range.&lt;/li&gt;
&lt;li&gt;Usable data: HDMI 2.0 = 18 Gbps × 8/10, HDMI 2.1 = 48 Gbps × 16/18, DisplayPort 1.4 = 25.92 Gbps. If even the high end fits, yes; if only the low end fits, depends; if DSC (up to 3:1 compression) fits, DSC; otherwise no.&lt;/li&gt;
&lt;li&gt;No unit was measured in person. Picks are the cheapest with shipping among models whose maker specs match the slot, sold new on Amazon with at least 100 ratings and 4 stars.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;










































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;MHLW minimum eye-to-screen distance&lt;/td&gt;&lt;td&gt;40 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.mhlw.go.jp/content/000539604.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;mhlw.go.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MHLW recommended character height&lt;/td&gt;&lt;td&gt;3 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.mhlw.go.jp/content/000539604.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;mhlw.go.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MHLW character visual angle&lt;/td&gt;&lt;td&gt;20 arcminutes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.mhlw.go.jp/content/000539604.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;mhlw.go.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MHLW character visual angle (upper end)&lt;/td&gt;&lt;td&gt;22 arcminutes&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.mhlw.go.jp/content/000539604.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;mhlw.go.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lower end of OSHA’s preferred range&lt;/td&gt;&lt;td&gt;50 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;osha.gov&lt;/a&gt; 20 to 40 inches (50 to 100 cm)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Upper end of OSHA’s preferred range&lt;/td&gt;&lt;td&gt;100 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;osha.gov&lt;/a&gt; 20 to 40 inches (50 to 100 cm)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ITU typical smallest resolvable angle&lt;/td&gt;&lt;td&gt;1 arcminute&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.1845-1-201003-I!!PDF-E.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;itu.int&lt;/a&gt; considering a) the typical value of the minimum angular resolution of human visi&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;23.8-inch 1080p pixel pitch&lt;/td&gt;&lt;td&gt;0.2745 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; Dell S2425H pixel pitch&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;23.8-inch 1440p pixel pitch&lt;/td&gt;&lt;td&gt;0.2058 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual19090389-dell-p2423d-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; Dell P2423D pixel pitch PDF p.13&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;23.8-inch 4K pixel pitch&lt;/td&gt;&lt;td&gt;0.13725 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://downloads.dell.com/Manuals/all-products/esuprt_display_projector/esuprt_Display/dell-p2415q-monitor_User%27s%20Guide_en-us.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;downloads.dell.com&lt;/a&gt; Dell P2415Q pixel pitch PDF p.10&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 1080p pixel pitch&lt;/td&gt;&lt;td&gt;0.3114 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; Dell S2725H pixel pitch&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 1440p pixel pitch&lt;/td&gt;&lt;td&gt;0.2331 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2537948-dell-s2725ds-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; Dell S2725DS pixel pitch&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 4K pixel pitch&lt;/td&gt;&lt;td&gt;0.1554 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual12109242-dell-u2723qe-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; Dell U2723QE pixel pitch PDF p.14&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;31.5-inch 1440p pixel pitch&lt;/td&gt;&lt;td&gt;0.2727 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/manuals/all-products/esuprt_electronics_accessories/esuprt_electronics_accessories_monitors/dell-p3221d-monitor_user&apos;s-guide_en-us.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;31.5-inch 4K pixel pitch&lt;/td&gt;&lt;td&gt;0.18159 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual12109242-dell-u2723qe-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; Dell U3223QE pixel pitch PDF p.14&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows scaling steps&lt;/td&gt;&lt;td&gt;100–125–150–175–200–225–250–300–350 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/apps/design/layout/screen-sizes-and-breakpoints-for-responsive-design&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; scaling plateaus of 100%, 125%, 150%, 175%, 200%, 225%, 250%, 300%, 350%, and 40&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.0 maximum rate&lt;/td&gt;&lt;td&gt;18 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/press/bodydetails/24&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; HDMI 2.0 up to 18Gbps, 4K@50/60&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI high-bandwidth cable certification&lt;/td&gt;&lt;td&gt;Ultra High Speed&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/resource/cables&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Ultra High Speed HDMI Cable: up to 48Gbps, 8K@60 and 4K@120&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.1 maximum rate&lt;/td&gt;&lt;td&gt;48 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/announce/detail/172&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; HDMI 2.1 up to 48Gbps, 8K60 and 4K120&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.0 encoding efficiency (8b/10b)&lt;/td&gt;&lt;td&gt;0.8&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xilinx.com/content/dam/xilinx/support/documents/ip_documentation/v_hdmi_rxss1/v1_2/pg351-v-hdmi-rxss1.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xilinx.com&lt;/a&gt; AMD/Xilinx PG351: TMDS up to 6 Gb/s @ 3 lanes&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.1 encoding efficiency (16b/18b)&lt;/td&gt;&lt;td&gt;0.8888888888888888&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xilinx.com/content/dam/xilinx/support/documents/ip_documentation/v_hdmi_rxss1/v1_2/pg351-v-hdmi-rxss1.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xilinx.com&lt;/a&gt; AMD/Xilinx PG351: FRL 12 Gb/s @ 4 lanes, decode the incoming 16-bit/18-bit encod&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HDMI 2.1 features being optional&lt;/td&gt;&lt;td&gt;optional&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.hdmi.org/blog/detail/139&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;hdmi.org&lt;/a&gt; Support for each HDMI 2.1 feature is optional.&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 1.4 effective payload&lt;/td&gt;&lt;td&gt;25.92 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/press/vesa-publishes-displayport-2-0-video-standard-enabling-support-for-beyond-8k-resolutions-higher-refresh-rates-for-4k-hdr-and-virtual-reality-applications/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt; DP 1.4a: HBR3 32.4 Gbps, max payload 25.92 Gbps&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 2.1 UHBR20 effective payload&lt;/td&gt;&lt;td&gt;77.37 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/press/vesa-publishes-displayport-2-0-video-standard-enabling-support-for-beyond-8k-resolutions-higher-refresh-rates-for-4k-hdr-and-virtual-reality-applications/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt; up to 20 Gbps/lane (80 Gbps), 128b/132b, max payload 77.37 Gbps&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 2.1 UHBR10 rate&lt;/td&gt;&lt;td&gt;10 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-releases-displayport-2-1-specification/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt; UHBR10 = 10 Gbps per lane (40 Gbps)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DisplayPort 2.1 UHBR13.5 rate&lt;/td&gt;&lt;td&gt;13.5 Gbps&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-releases-displayport-2-1-specification/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt; UHBR13.5 = 13.5 Gbps per lane (54 Gbps)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DSC maximum compression ratio&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://vesa.org/featured-articles/vesa-publishes-displayport-standard-version-1-4/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;vesa.org&lt;/a&gt; DSC 1.2 enables up to 3:1 compression ratio and has been deemed visually lossles&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 horizontal blanking&lt;/td&gt;&lt;td&gt;80 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; CVT_RB_V2_H_BLANK 80 pixels&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 vertical blanking time&lt;/td&gt;&lt;td&gt;460 µs&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; CVT_RB_MIN_V_BLANK 460 us&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 vertical sync lines&lt;/td&gt;&lt;td&gt;8 lines&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; RB v2 is detected when vsync == 8&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 minimum back porch lines&lt;/td&gt;&lt;td&gt;6 lines&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; CVT_RB_V_BPORCH 6&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CVT-RB2 minimum front porch lines&lt;/td&gt;&lt;td&gt;1 lines&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/602042bf29f6efde39cfb5fdd9289bf4854bc0c5/drivers/media/v4l2-core/v4l2-dv-timings.c&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;github.com&lt;/a&gt; CVT_RB_V2_MIN_V_FPORCH 1&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 4K60 pixel clock (CVT)&lt;/td&gt;&lt;td&gt;533.25 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual12109242-dell-u2723qe-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; UHD 3840x2160 (DP) 60Hz 533.25 MHz PDF p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 4K60 pixel clock (HDMI)&lt;/td&gt;&lt;td&gt;594 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual3779507-dell-s-27-4k-monitor-s2725qs-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; 3840x2160 60Hz 594 MHz PDF p.15&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 4K120 pixel clock (low)&lt;/td&gt;&lt;td&gt;1074.73 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual74300550-dell-g3223q-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; VESA 3840x2160 119.88Hz 1074.73 MHz PDF p.14&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 4K120 pixel clock (high)&lt;/td&gt;&lt;td&gt;1188 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual3779507-dell-s-27-4k-monitor-s2725qs-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; 3840x2160 120Hz 1188 MHz PDF p.15&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 1440p144 pixel clock&lt;/td&gt;&lt;td&gt;591.31 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual74300550-dell-g3223q-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; 2560x1440 144Hz 591.31 MHz PDF p.14&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 4K144 pixel clock&lt;/td&gt;&lt;td&gt;1250 MHz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual74300550-dell-g3223q-monitor-user-s-guide.pdf?language=en-us&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; VESA 3840x2160 144Hz 1250 MHz; Maximum preset 3840x2160 at 144Hz (DSC Enable and&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PS5 supported video output&lt;/td&gt;&lt;td&gt;HDMI 2.1 / 4K 120Hz&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.playstation.com/en-us/support/hardware/ps5-4k-resolution-guide/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;playstation.com&lt;/a&gt; The PS5 console supports the HDMI 2.1 specification, and it also supports 4K 120&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Xbox Series X video output&lt;/td&gt;&lt;td&gt;HDMI 2.1 / up to 120 FPS&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xbox.com/en-US/consoles/xbox-series-x&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xbox.com&lt;/a&gt; 1x HDMI 2.1, performance target up to 120 FPS&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Switch 2 video output&lt;/td&gt;&lt;td&gt;4K60 / 120fps at 1080p-1440p&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nintendo.com/us/gaming-systems/switch-2/tech-specs/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nintendo.com&lt;/a&gt; Maximum of 3840x2160 (4K) resolution at 60 fps (TV mode); Supports 120 fps when&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GeForce RTX 40 video ports&lt;/td&gt;&lt;td&gt;DP 1.4a / HDMI 2.1a&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/graphics-cards/40-series/rtx-4090/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt; HDMI 2.1a, DisplayPort 1.4a; 4K at 240Hz or 8K at 60Hz with DSC&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GeForce RTX 50 video ports&lt;/td&gt;&lt;td&gt;DP 2.1b UHBR20 / HDMI 2.1b&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.nvidia.com/en-us/geforce/graphics-cards/50-series/rtx-5090/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;nvidia.com&lt;/a&gt; DisplayPort 2.1b with UHBR20&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Radeon RX 7000 video ports&lt;/td&gt;&lt;td&gt;DP 2.1 / HDMI 2.1&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.amd.com/en/products/graphics/desktops/radeon/7000-series/amd-radeon-rx-7900xtx.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;amd.com&lt;/a&gt; DisplayPort 2.1, HDMI 2.1&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Radeon RX 9000 video ports&lt;/td&gt;&lt;td&gt;DP 2.1a / HDMI 2.1b&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.amd.com/en/products/graphics/desktops/radeon/9000-series/amd-radeon-rx-9070xt.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;amd.com&lt;/a&gt; DisplayPort 2.1a, HDMI 2.1b&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Mac scaled display mode&lt;/td&gt;&lt;td&gt;scaled&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.apple.com/guide/mac-help/change-your-displays-resolution-mchl86d72b76/mac&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.apple.com&lt;/a&gt; Show all resolutions; Using a scaled resolution may affect performance.&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI 4K resolution&lt;/td&gt;&lt;td&gt;4096×2160&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://documents.dcimovies.com/DCSS/release/1.5.0/Digital-Cinema-System-Specification-1.5.0.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;documents.dcimovies.com&lt;/a&gt; DCI 4K 4096x2160&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4K UHD resolution&lt;/td&gt;&lt;td&gt;3840×2160&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.1845-1-201003-I!!PDF-E.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;itu.int&lt;/a&gt; Table 1 row H: 3840x2160 Rec. ITU-R BT.2020 16:9&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;4K vs 1440p vs 1080p calculator (scaling and workspace): quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;




















































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;27”, 4K, 50 cm (20 in)&lt;/td&gt;&lt;td&gt;✓ Text stays readable at this distance and the workspace stays wide enough. Scaling for guideline-size text: 156% or more → 175% in Windows (workspace like 2194×1234). The workspace stays at least 1920 px wide (the same as 1080p), so this setup fits. Other resolutions at this size: 1080p 100% (1920×1080), 1440p 125% (2048×1152)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=27&amp;amp;monitor-resolution-calc-res=uhd&amp;amp;monitor-resolution-calc-dist=50#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27”, 4K, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;✓ Text stays readable at this distance and the workspace stays wide enough. Scaling for guideline-size text: 187.2% or more → 200% in Windows (workspace like 1920×1080). The workspace stays at least 1920 px wide (the same as 1080p), so this setup fits. Other resolutions at this size: 1080p 100% (1920×1080), 1440p 125% (2048×1152)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=27&amp;amp;monitor-resolution-calc-res=uhd&amp;amp;monitor-resolution-calc-dist=60#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27”, 4K, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✕ At readable text size, the workspace gets too narrow. Scaling for guideline-size text: 218.4% or more → 225% in Windows (workspace like 1707×960). The workspace falls below 1920 px wide (the same as 1080p), so this setup doesn’t fit. Other resolutions at this size: 1080p 125% (1536×864), 1440p 150% (1707×960)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=27&amp;amp;monitor-resolution-calc-res=uhd&amp;amp;monitor-resolution-calc-dist=70#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27”, 1440p, 50 cm (20 in)&lt;/td&gt;&lt;td&gt;✓ Text stays readable at this distance and the workspace stays wide enough. Scaling for guideline-size text: 104% or more → 125% in Windows (workspace like 2048×1152). The workspace stays at least 1920 px wide (the same as 1080p), so this setup fits. Other resolutions at this size: 1080p 100% (1920×1080), 4K 175% (2194×1234)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=27&amp;amp;monitor-resolution-calc-res=qhd&amp;amp;monitor-resolution-calc-dist=50#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27”, 1440p, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;✓ Text stays readable at this distance and the workspace stays wide enough. Scaling for guideline-size text: 124.8% or more → 125% in Windows (workspace like 2048×1152). The workspace stays at least 1920 px wide (the same as 1080p), so this setup fits. Other resolutions at this size: 1080p 100% (1920×1080), 4K 200% (1920×1080)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=27&amp;amp;monitor-resolution-calc-res=qhd&amp;amp;monitor-resolution-calc-dist=60#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27”, 1440p, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✕ At readable text size, the workspace gets too narrow. Scaling for guideline-size text: 145.6% or more → 150% in Windows (workspace like 1707×960). The workspace falls below 1920 px wide (the same as 1080p), so this setup doesn’t fit. Other resolutions at this size: 1080p 125% (1536×864), 4K 225% (1707×960)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=27&amp;amp;monitor-resolution-calc-res=qhd&amp;amp;monitor-resolution-calc-dist=70#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32”, 4K, 50 cm (20 in)&lt;/td&gt;&lt;td&gt;✓ Text stays readable at this distance and the workspace stays wide enough. Scaling for guideline-size text: 133.5% or more → 150% in Windows (workspace like 2560×1440). The workspace stays at least 1920 px wide (the same as 1080p), so this setup fits. Other resolutions at this size: 1440p 100% (2560×1440)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=32&amp;amp;monitor-resolution-calc-res=uhd&amp;amp;monitor-resolution-calc-dist=50#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32”, 4K, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;✓ Text stays readable at this distance and the workspace stays wide enough. Scaling for guideline-size text: 160.2% or more → 175% in Windows (workspace like 2194×1234). The workspace stays at least 1920 px wide (the same as 1080p), so this setup fits. Other resolutions at this size: 1440p 125% (2048×1152)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=32&amp;amp;monitor-resolution-calc-res=uhd&amp;amp;monitor-resolution-calc-dist=60#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32”, 4K, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✓ Text stays readable at this distance and the workspace stays wide enough. Scaling for guideline-size text: 186.9% or more → 200% in Windows (workspace like 1920×1080). The workspace stays at least 1920 px wide (the same as 1080p), so this setup fits. Other resolutions at this size: 1440p 125% (2048×1152)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=32&amp;amp;monitor-resolution-calc-res=uhd&amp;amp;monitor-resolution-calc-dist=70#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;24”, 4K, 50 cm (20 in)&lt;/td&gt;&lt;td&gt;✓ Text stays readable at this distance and the workspace stays wide enough. Scaling for guideline-size text: 176.7% or more → 200% in Windows (workspace like 1920×1080). The workspace stays at least 1920 px wide (the same as 1080p), so this setup fits. Other resolutions at this size: 1080p 100% (1920×1080), 1440p 125% (2048×1152)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=24&amp;amp;monitor-resolution-calc-res=uhd&amp;amp;monitor-resolution-calc-dist=50#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;24”, 4K, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;✕ At readable text size, the workspace gets too narrow. Scaling for guideline-size text: 212% or more → 225% in Windows (workspace like 1707×960). The workspace falls below 1920 px wide (the same as 1080p), so this setup doesn’t fit. Other resolutions at this size: 1080p 125% (1536×864), 1440p 150% (1707×960)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=24&amp;amp;monitor-resolution-calc-res=uhd&amp;amp;monitor-resolution-calc-dist=60#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;24”, 4K, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✕ At readable text size, the workspace gets too narrow. Scaling for guideline-size text: 247.3% or more → 250% in Windows (workspace like 1536×864). The workspace falls below 1920 px wide (the same as 1080p), so this setup doesn’t fit. Other resolutions at this size: 1080p 125% (1536×864), 1440p 175% (1463×823)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=24&amp;amp;monitor-resolution-calc-res=uhd&amp;amp;monitor-resolution-calc-dist=70#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32”, 1440p, 50 cm (20 in)&lt;/td&gt;&lt;td&gt;✓ Text stays readable at this distance and the workspace stays wide enough. Scaling for guideline-size text: 88.9% or more → 100% in Windows (workspace like 2560×1440). The workspace stays at least 1920 px wide (the same as 1080p), so this setup fits. Other resolutions at this size: 4K 150% (2560×1440)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=32&amp;amp;monitor-resolution-calc-res=qhd&amp;amp;monitor-resolution-calc-dist=50#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32”, 1440p, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;✓ Text stays readable at this distance and the workspace stays wide enough. Scaling for guideline-size text: 106.7% or more → 125% in Windows (workspace like 2048×1152). The workspace stays at least 1920 px wide (the same as 1080p), so this setup fits. Other resolutions at this size: 4K 175% (2194×1234)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=32&amp;amp;monitor-resolution-calc-res=qhd&amp;amp;monitor-resolution-calc-dist=60#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32”, 1440p, 70 cm (28 in)&lt;/td&gt;&lt;td&gt;✓ Text stays readable at this distance and the workspace stays wide enough. Scaling for guideline-size text: 124.5% or more → 125% in Windows (workspace like 2048×1152). The workspace stays at least 1920 px wide (the same as 1080p), so this setup fits. Other resolutions at this size: 4K 200% (1920×1080)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/?monitor-resolution-calc-size=32&amp;amp;monitor-resolution-calc-res=qhd&amp;amp;monitor-resolution-calc-dist=70#monitor-resolution-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>monitor</category></item><item><title>Best Pen Display Size: Match It to Your Paper</title><link>https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/</guid><description>Among models on sale from Wacom, XPPen and HUION, choose a 13.3–14-inch display for A5 at actual size, and a 21.5–23.8-inch one for A4. Worked out from official specs as of October 2026.</description><pubDate>Thu, 18 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Choose a 13.3–14-inch display for A5 at actual size, and a 21.5–23.8-inch one for A4. Pen display size follows the size of the paper you draw on.&lt;/p&gt;
&lt;p&gt;A4 at actual size fits a 21.5–23.8-inch display; only one 15.4–16-inch model fits, borderline, with 5 mm to spare. This compares drawing-area dimensions, excluding app panels. It uses official figures as of October 2026, with no hands-on testing.&lt;/p&gt;
&lt;h2 id=&quot;which-size-class-fits-your-paper&quot;&gt;Which size class fits your paper&lt;/h2&gt;
&lt;p&gt;Choose a 13.3–14-inch display for A5 at actual size, and a 21.5–23.8-inch one for A4. The table below compares paper and active-area sides geometrically, leaving out app UI panels and 1:1 settings. Paper sizes are ISO, not US Letter.
Assumptions: paper long/short sides vs. the active area’s long/short sides (maker figures). Turning the display portrait gives the same result&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Paper&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;13.3–14-inch&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;15.4–16-inch&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;21.5–23.8-inch&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;A5, 148 × 210 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Whole page fits&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Whole page fits&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Whole page fits&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;A4, 210 × 297 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Some fit the long side (by display size)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Only one model fits (5 mm to spare, borderline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✓ Whole page fits&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;A3, 297 × 420 mm&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✕ Long side doesn’t fit&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;✕ Long side doesn’t fit&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;△ Long side only&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;“Whole page fits” means one page fits at actual size on every surveyed model in that size class. In this calculation, “Only one model fits” means the rest of that class fall short on the short side.&lt;/p&gt;
&lt;p&gt;A3 (297 × 420 mm) doesn’t fit whole at actual size even on a 21.5–23.8-inch display, whose short side is 267.4–296 mm against A3’s 297 mm. Scaled to 90% it fits.&lt;/p&gt;
&lt;p&gt;Scaled to 90%, A3 leaves only about 0.1 mm of room on the tightest model, so it’s borderline. Scaling down means drawing smaller than the paper.&lt;/p&gt;
&lt;p&gt;A 13.3–14-inch display can’t hold a whole A4 page at actual size. Scaled to 78% it fits, but the room is only about 1.4 mm on the tightest model, so it’s borderline.&lt;/p&gt;
&lt;p&gt;Pick your paper and connection to see a matching pen display, if any.&lt;/p&gt;
&lt;section id=&quot;lcd-tablet-size-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;lcd-tablet-size-calc-title&quot;&gt; &lt;h3 id=&quot;lcd-tablet-size-calc-title&quot;&gt;Which pen display size fits your paper&lt;/h3&gt; &lt;p&gt;Pick the paper size you draw at and how you connect to your computer to see which pen display size holds a whole page at actual size, plus one model you can buy that fits.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;huion_kamvas_13_gen3&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for HUION Kamvas 13 (Gen 3)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61pASsqEGTL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;HUION Kamvas 13 (Gen 3)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F13T9H31?q=HUION+Kamvas+13+%28Gen+3%29&amp;amp;us=B0F13T9H31&amp;amp;l=en&quot; aria-label=&quot;View HUION Kamvas 13 (Gen 3) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;huion_kamvas_16_gen3&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for HUION Kamvas 16 (Gen 3)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/613jCRhYviL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;HUION Kamvas 16 (Gen 3)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DPMNL7WV?q=HUION+Kamvas+16+%28Gen+3%29&amp;amp;us=B0DPMNL7WV&amp;amp;l=en&quot; aria-label=&quot;View HUION Kamvas 16 (Gen 3) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;huion_kamvas_22_gen3&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for HUION Kamvas 22 (Gen 3)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61SbML3j6+L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;HUION Kamvas 22 (Gen 3)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0G3P54PCM?q=HUION+Kamvas+22+%28Gen+3%29&amp;amp;us=B0G3P54PCM&amp;amp;l=en&quot; aria-label=&quot;View HUION Kamvas 22 (Gen 3) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;classes&quot;:[&quot;s&quot;,&quot;m&quot;,&quot;l&quot;],&quot;cls&quot;:{&quot;s&quot;:{&quot;ja&quot;:&quot;13.3〜14インチ&quot;,&quot;en&quot;:&quot;13.3–14-inch&quot;},&quot;m&quot;:{&quot;ja&quot;:&quot;15.4〜16インチ&quot;,&quot;en&quot;:&quot;15.4–16-inch&quot;},&quot;l&quot;:{&quot;ja&quot;:&quot;21.5〜23.8インチ&quot;,&quot;en&quot;:&quot;21.5–23.8-inch&quot;}},&quot;papers&quot;:{&quot;a6&quot;:{&quot;long&quot;:148,&quot;short&quot;:105,&quot;name&quot;:&quot;A6&quot;},&quot;a5&quot;:{&quot;long&quot;:210,&quot;short&quot;:148,&quot;name&quot;:&quot;A5&quot;},&quot;a4&quot;:{&quot;long&quot;:297,&quot;short&quot;:210,&quot;name&quot;:&quot;A4&quot;},&quot;a3&quot;:{&quot;long&quot;:420,&quot;short&quot;:297,&quot;name&quot;:&quot;A3&quot;}},&quot;models&quot;:{&quot;wacom_one_14&quot;:{&quot;cls&quot;:&quot;s&quot;,&quot;w&quot;:309,&quot;h&quot;:174,&quot;px&quot;:[1920,1080],&quot;usbc&quot;:true,&quot;hdmi&quot;:false},&quot;huion_kamvas_13_gen3&quot;:{&quot;cls&quot;:&quot;s&quot;,&quot;w&quot;:293.8,&quot;h&quot;:165.2,&quot;px&quot;:[1920,1080],&quot;usbc&quot;:true,&quot;hdmi&quot;:false},&quot;wacom_cintiq_16&quot;:{&quot;cls&quot;:&quot;m&quot;,&quot;w&quot;:345,&quot;h&quot;:215,&quot;px&quot;:[2560,1600],&quot;usbc&quot;:true,&quot;hdmi&quot;:true},&quot;xppen_artist_16_3rd&quot;:{&quot;cls&quot;:&quot;m&quot;,&quot;w&quot;:342,&quot;h&quot;:193,&quot;px&quot;:[1920,1080],&quot;usbc&quot;:true,&quot;hdmi&quot;:false},&quot;xppen_artist_15_6_pro_v2&quot;:{&quot;cls&quot;:&quot;m&quot;,&quot;w&quot;:340.99,&quot;h&quot;:191.81,&quot;px&quot;:[1920,1080],&quot;usbc&quot;:true,&quot;hdmi&quot;:false},&quot;huion_kamvas_16_gen3&quot;:{&quot;cls&quot;:&quot;m&quot;,&quot;w&quot;:350,&quot;h&quot;:197,&quot;px&quot;:[2560,1440],&quot;usbc&quot;:true,&quot;hdmi&quot;:false},&quot;wacom_cintiq_24&quot;:{&quot;cls&quot;:&quot;l&quot;,&quot;w&quot;:527,&quot;h&quot;:296,&quot;px&quot;:[2560,1440],&quot;usbc&quot;:true,&quot;hdmi&quot;:true},&quot;xppen_artist_22_plus&quot;:{&quot;cls&quot;:&quot;l&quot;,&quot;w&quot;:476.06,&quot;h&quot;:267.79,&quot;px&quot;:[1920,1080],&quot;usbc&quot;:true,&quot;hdmi&quot;:true},&quot;xppen_artist_22_2nd&quot;:{&quot;cls&quot;:&quot;l&quot;,&quot;w&quot;:476.064,&quot;h&quot;:267.786,&quot;px&quot;:[1920,1080],&quot;usbc&quot;:true,&quot;hdmi&quot;:true},&quot;xppen_artist_pro_24_gen2_165hz&quot;:{&quot;cls&quot;:&quot;l&quot;,&quot;w&quot;:526,&quot;h&quot;:296,&quot;px&quot;:[2560,1440],&quot;usbc&quot;:true,&quot;hdmi&quot;:true},&quot;huion_kamvas_22_gen3&quot;:{&quot;cls&quot;:&quot;l&quot;,&quot;w&quot;:475.392,&quot;h&quot;:267.408,&quot;px&quot;:[2560,1440],&quot;usbc&quot;:false,&quot;hdmi&quot;:true}},&quot;meterMax&quot;:560,&quot;buy&quot;:{&quot;huion_kamvas_13_gen3&quot;:{&quot;type&quot;:&quot;pen_display&quot;,&quot;ja&quot;:&quot;HUION Kamvas 13 (Gen 3)&quot;,&quot;en&quot;:&quot;HUION Kamvas 13 (Gen 3)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F13T9H31&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F13T9H31&quot;,&quot;asinUS&quot;:&quot;B0F13T9H31&quot;,&quot;title&quot;:&quot;HUION Kamvas 13 (Gen 3)&quot;,&quot;searchQuery&quot;:&quot;HUION Kamvas 13 (Gen 3)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61pASsqEGTL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;xppen_artist_15_6_pro_v2&quot;:{&quot;type&quot;:&quot;pen_display&quot;,&quot;ja&quot;:&quot;XPPen Artist 15.6 Pro V2&quot;,&quot;en&quot;:&quot;XPPen Artist 15.6 Pro V2&quot;,&quot;jp&quot;:&quot;B0DRD3G1LR&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DRD3G1LR&quot;,&quot;title&quot;:&quot;XPPen Artist 15.6 Pro V2&quot;,&quot;searchQuery&quot;:&quot;XPPen Artist 15.6 Pro V2&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81QFye1bjiL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4537694356855&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;huion_kamvas_16_gen3&quot;:{&quot;type&quot;:&quot;pen_display&quot;,&quot;ja&quot;:&quot;HUION Kamvas 16 (Gen 3)&quot;,&quot;en&quot;:&quot;HUION Kamvas 16 (Gen 3)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DPMNL7WV&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DPMNL7WV&quot;,&quot;asinUS&quot;:&quot;B0DPMNL7WV&quot;,&quot;title&quot;:&quot;HUION Kamvas 16 (Gen 3)&quot;,&quot;searchQuery&quot;:&quot;HUION Kamvas 16 (Gen 3)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/613jCRhYviL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;huion_kamvas_22_gen3&quot;:{&quot;type&quot;:&quot;pen_display&quot;,&quot;ja&quot;:&quot;HUION Kamvas 22 (Gen 3)&quot;,&quot;en&quot;:&quot;HUION Kamvas 22 (Gen 3)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0G3P54PCM&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0G3P54PCM&quot;,&quot;asinUS&quot;:&quot;B0G3P54PCM&quot;,&quot;title&quot;:&quot;HUION Kamvas 22 (Gen 3)&quot;,&quot;searchQuery&quot;:&quot;HUION Kamvas 22 (Gen 3)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61SbML3j6+L._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:2}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;pen_display&quot;:&quot;xppen_artist_15_6_pro_v2&quot;},&quot;en&quot;:{&quot;pen_display&quot;:&quot;huion_kamvas_13_gen3&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;lcd-tablet-size-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 1. 紙と描ける範囲: 紙の長辺・短辺を、描ける範囲の長辺・短辺に合わせて比べる（液タブを縦に置いても横に置いても同じ）
//    ok   = 長辺も短辺も入る（紙1枚を等倍で丸ごと描ける）
//    cond = 長辺は入るが短辺が足りない（等倍では上下がはみ出す）
//    ng   = 長辺が入らない
// 2. 画素ピッチ = 描ける範囲の幅 ÷ 横の画素数（mm）
// 3. 色域: CIE 1931 xy 色度図の三角形（2021-03-17-iilustration-monitor と同じ式）
//    面積の比 = 面積(A) ÷ 面積(B)、カバー率 = 面積(A と B が重なる部分) ÷ 面積(B)

function sides(m) {
  return { long: Math.max(m.w, m.h), short: Math.min(m.w, m.h) };
}
function fit(m, paper) {
  const s = sides(m);
  if (s.long &lt; paper.long) return &quot;ng&quot;;
  if (s.short &lt; paper.short) return &quot;cond&quot;;
  return &quot;ok&quot;;
}
// 紙1枚を丸ごと入れるときの倍率（1以上なら等倍で入る）
function wholeScale(m, paper) {
  const s = sides(m);
  return Math.min(s.long / paper.long, s.short / paper.short);
}
function pitch(widthMm, px) {
  return widthMm / px;
}
function connOk(m, conn) {
  return conn === &quot;hdmi&quot; ? !!m.hdmi : conn === &quot;usbc&quot; ? !!m.usbc : true;
}

// 紙と接続から、合うサイズ帯を決める（classes は小さい順）
//   rec    = 接続が合う機種のうち、紙を等倍で丸ごと描ける機種がある最小の帯
//   status = rec の機種が全部 ok なら ok、一部だけなら cond。丸ごと入る機種が無く長辺だけ入るなら cond、長辺も入らなければ ng
//   all    = 接続が合う機種が全部 ok になる最小の帯（rec と同じこともある）
function recommend(models, classes, paper, conn) {
  const inCls = (c) =&gt; Object.keys(models).filter((id) =&gt; models[id].cls === c &amp;&amp; connOk(models[id], conn));
  const st = (ids) =&gt; ids.map((id) =&gt; fit(models[id], paper));
  let rec = null, all = null, longOnly = null;
  for (const c of classes) {
    const ids = inCls(c);
    if (!ids.length) continue;
    const s = st(ids);
    if (!rec &amp;&amp; s.includes(&quot;ok&quot;)) rec = c;
    if (!all &amp;&amp; s.every((x) =&gt; x === &quot;ok&quot;)) all = c;
    if (!longOnly &amp;&amp; s.every((x) =&gt; x !== &quot;ng&quot;)) longOnly = c;
  }
  if (rec) {
    const ids = inCls(rec);
    const okIds = ids.filter((id) =&gt; fit(models[id], paper) === &quot;ok&quot;);
    const status = okIds.length === ids.length ? &quot;ok&quot; : &quot;cond&quot;;
    const picks = status === &quot;ok&quot; ? okIds : okIds.concat(all &amp;&amp; all !== rec ? inCls(all) : []);
    return { status, rec, all, picks, ids };
  }
  if (longOnly) return { status: &quot;cond&quot;, rec: longOnly, all: null, picks: inCls(longOnly), ids: inCls(longOnly), longOnly: true };
  return { status: &quot;ng&quot;, rec: null, all: null, picks: [], ids: [] };
}

// ---- 色域（イラスト用モニター記事と同じ） ----
function area(poly) {
  let s = 0;
  for (let i = 0; i &lt; poly.length; i++) {
    const [x1, y1] = poly[i], [x2, y2] = poly[(i + 1) % poly.length];
    s += x1 * y2 - x2 * y1;
  }
  return Math.abs(s) / 2;
}
function ccw(poly) {
  let s = 0;
  for (let i = 0; i &lt; poly.length; i++) { const [x1, y1] = poly[i], [x2, y2] = poly[(i + 1) % poly.length]; s += x1 * y2 - x2 * y1; }
  return s &gt;= 0 ? poly : [...poly].reverse();
}
function intersect(subject, clip) {
  let out = ccw(subject);
  const c = ccw(clip);
  for (let i = 0; i &lt; c.length &amp;&amp; out.length; i++) {
    const a = c[i], b = c[(i + 1) % c.length];
    const inside = (p) =&gt; (b[0] - a[0]) * (p[1] - a[1]) - (b[1] - a[1]) * (p[0] - a[0]) &gt;= -1e-12;
    const cross = (p, q) =&gt; {
      const A1 = q[1] - p[1], B1 = p[0] - q[0], C1 = A1 * p[0] + B1 * p[1];
      const A2 = b[1] - a[1], B2 = a[0] - b[0], C2 = A2 * a[0] + B2 * a[1];
      const det = A1 * B2 - A2 * B1;
      return [(B2 * C1 - B1 * C2) / det, (A1 * C2 - A2 * C1) / det];
    };
    const inp = out; out = [];
    for (let j = 0; j &lt; inp.length; j++) {
      const p = inp[j], q = inp[(j + 1) % inp.length];
      if (inside(q)) { if (!inside(p)) out.push(cross(p, q)); out.push(q); }
      else if (inside(p)) out.push(cross(p, q));
    }
  }
  return out;
}
function coverage(A, B) {
  const I = intersect(A, B);
  return I.length &gt;= 3 ? area(I) / area(B) : 0;
}
function ratio(A, B) {
  return area(A) / area(B);
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（ふだん描く紙の大きさ・パソコンとのつなぎ方）。機種は選ばせず、条件に合う買える商品を1つ出す。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    paper: &quot;描く紙&quot;, conn: &quot;つなぎ方&quot;,
    usbc: &quot;USB-C 1本&quot;, hdmi: &quot;HDMI＋USB&quot;, any: &quot;どちらでも&quot;,
    dims: (p, s, l) =&gt; `${p}: ${s}×${l}mm`,
    usbcNote: &quot;USB-C 1本で映像を送るには、パソコンの USB-C が映像出力（DisplayPort Alt Mode）に対応している必要があります&quot;,
    hdmiNote: &quot;HDMI は、公式の接続仕様に HDMI の記載がある機種だけで判定しています&quot;,
    allOk: (c, p, q) =&gt; `${c}なら、${q}${p}を等倍で丸ごと描けます`,
    some: (c, x) =&gt; `${c}で丸ごと入るのは、描ける範囲の短辺が${x}mm以上の機種です`,
    bigger: (c, q) =&gt; `${c}なら、${q}丸ごと入ります`,
    longOnly: (x, q) =&gt; `長辺は入りますが短辺が足りません。${x}%に縮めると、${q}丸ごと入ります`,
    q: (c) =&gt; (c === &quot;any&quot; ? &quot;調べた機種はすべて&quot; : &quot;このつなぎ方に合う機種はすべて&quot;),
    noConn: (c) =&gt; `調べた${c}の機種は、公式の仕様にこのつなぎ方の記載がありません`,
    vOk: (c) =&gt; `○ ${c}で丸ごと描けます`, vSome: (c) =&gt; `△ ${c}は機種しだいです`, vLong: (c) =&gt; `△ ${c}でも等倍では丸ごと入りません`, vNg: &quot;✕ 合うサイズがありません&quot;,
    width: (x) =&gt; `描ける範囲の幅 ${x}mm〜`, need: (p, x) =&gt; `${p}の長辺 ${x}mm`,
    note: &quot;結果は計算の目安です。描ける範囲は各メーカーの公式値で、実機は試していません。紙の長辺・短辺と描ける範囲の長辺・短辺を比べるので、液タブを縦に置いても結果は同じです。候補は、調べた機種のうち買えるものから選んでいます。&quot;,
  },
  en: {
    paper: &quot;Paper&quot;, conn: &quot;Connection&quot;,
    usbc: &quot;One USB-C cable&quot;, hdmi: &quot;HDMI + USB&quot;, any: &quot;Either&quot;,
    dims: (p, s, l) =&gt; `${p}: ${s} × ${l} mm`,
    usbcNote: &quot;Sending video over one USB-C cable needs a computer whose USB-C port outputs video (DisplayPort Alt Mode)&quot;,
    hdmiNote: &quot;HDMI counts only for models whose official connection specs list HDMI&quot;,
    allOk: (c, p, q) =&gt; `On ${c} displays, ${q} holds a whole ${p} page at actual size`,
    some: (c, x) =&gt; `Among ${c} displays, a whole page fits only if the active area is at least ${x} mm on its short side`,
    bigger: (c, q) =&gt; `On ${c} displays, ${q} holds the whole page`,
    longOnly: (x, q) =&gt; `The long side fits but the short side doesn&apos;t. Scaled to ${x}%, it fits ${q}`,
    q: (c) =&gt; (c === &quot;any&quot; ? &quot;every model checked&quot; : &quot;every model checked with this connection&quot;),
    noConn: (c) =&gt; `None of the ${c} models checked lists this connection in its official specs`,
    vOk: (c) =&gt; `✓ A ${c} display holds the whole page`, vSome: (c) =&gt; `△ ${c}: depends on the model`, vLong: (c) =&gt; `△ Not whole at actual size, even at ${c}`, vNg: &quot;✕ No size fits&quot;,
    width: (x) =&gt; `Active width from ${x} mm`, need: (p, x) =&gt; `${p} long side ${x} mm`,
    note: &quot;This is a calculated estimate. Active areas are each maker&apos;s official figures; no units were tested. Paper sides are compared with the active area&apos;s long and short sides, so turning the display portrait gives the same result. Picks come from the models checked that are available to buy.&quot;,
  },
};

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;paper&quot;, type: &quot;select&quot;, label: t.paper, value: &quot;a4&quot;, options: [&quot;a6&quot;, &quot;a5&quot;, &quot;a4&quot;, &quot;a3&quot;].map((x) =&gt; ({ value: x, label: M.papers[x].name })) },
    { name: &quot;conn&quot;, type: &quot;select&quot;, label: t.conn, value: &quot;any&quot;, options: [&quot;usbc&quot;, &quot;hdmi&quot;, &quot;any&quot;].map((x) =&gt; ({ value: x, label: t[x] })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const P = M.papers[v.paper];
  if (!P || ![&quot;usbc&quot;, &quot;hdmi&quot;, &quot;any&quot;].includes(v.conn)) return { status: &quot;error&quot;, lines: [] };
  const cl = (c) =&gt; M.cls[c][lang];
  const lines = [t.dims(P.name, P.short, P.long)];
  if (v.conn === &quot;usbc&quot;) lines.push(t.usbcNote);
  if (v.conn === &quot;hdmi&quot;) lines.push(t.hdmiNote);
  const r = recommend(M.models, M.classes, P, v.conn);
  // 小さい帯に、このつなぎ方の機種が無いとき（例: HDMI の記載がある 13.3〜14インチは無い）
  for (const c of M.classes) { if (c === r.rec) break; if (!Object.keys(M.models).some((id) =&gt; M.models[id].cls === c &amp;&amp; connOk(M.models[id], v.conn))) lines.push(t.noConn(cl(c))); }
  if (r.status === &quot;ng&quot;) return { status: &quot;ng&quot;, verdict: t.vNg, lines, picks: [] };
  // メーター: その帯でいちばん狭い描ける範囲の長辺と、紙の長辺
  const longs = r.ids.map((id) =&gt; sides(M.models[id]).long);
  const lo = Math.min(...longs);
  const meter = { min: 100, max: M.meterMax, value: lo, ok: [P.long, M.meterMax], unit: &quot;mm&quot;, valueLabel: t.width(Math.floor(lo)), okLabel: t.need(P.name, P.long) };
  if (r.longOnly) {
    // 丸ごと入れる倍率は 1% 単位で切り捨て（下げればどの機種でも入る側）
    const sc = Math.floor(Math.min(...r.ids.map((id) =&gt; wholeScale(M.models[id], P))) * 100 + 1e-9);
    lines.push(t.longOnly(sc, t.q(v.conn)));
    return { status: &quot;cond&quot;, verdict: t.vLong(cl(r.rec)), lines, picks: r.picks, meter };
  }
  if (r.status === &quot;ok&quot;) {
    lines.push(t.allOk(cl(r.rec), P.name, t.q(v.conn)));
    return { status: &quot;ok&quot;, verdict: t.vOk(cl(r.rec)), lines, picks: r.picks, meter };
  }
  lines.push(t.some(cl(r.rec), P.short));
  if (r.all &amp;&amp; r.all !== r.rec) lines.push(t.bigger(cl(r.all), t.q(v.conn)));
  return { status: &quot;cond&quot;, verdict: t.vSome(cl(r.rec)), lines, picks: r.picks, meter };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（build-tool.mjs が結果と URL を表にする）。紙 × つなぎ方
function presets() {
  const out = [];
  for (const paper of [&quot;a6&quot;, &quot;a5&quot;, &quot;a4&quot;, &quot;a3&quot;]) for (const conn of [&quot;usbc&quot;, &quot;hdmi&quot;, &quot;any&quot;]) out.push({ paper, conn });
  return out;
}

// 計算ツールのカードに出す仕様（その商品の仕様のうち、この計算で使った値。絞り込みの条件は出さない）
//   描ける範囲（紙との比較）、解像度と画素ピッチ、公式の接続仕様にある映像の入力
function pickSpecs(id, v, M, lang) {
  const ja = lang === &quot;ja&quot;;
  const m = M.models[id];
  if (!m) return [];
  const pp = (Math.round(pitch(m.w, m.px[0]) * 1000) / 1000).toFixed(3);
  const ins = [m.usbc ? &quot;USB-C&quot; : null, m.hdmi ? &quot;HDMI&quot; : null].filter(Boolean).join(ja ? &quot;・&quot; : &quot;, &quot;);
  return [
    ja ? `描ける範囲 ${m.w}×${m.h}mm` : `Active area ${m.w} × ${m.h} mm`,
    ja ? `${m.px[0]}×${m.px[1]}・画素ピッチ 約${pp}mm` : `${m.px[0]} × ${m.px[1]}, pixel pitch about ${pp} mm`,
    ja ? `映像の入力: ${ins}` : `Video in: ${ins}`,
  ];
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;pills&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;how-to-check-the-drawing-area&quot;&gt;How to check the drawing area&lt;/h2&gt;
&lt;p&gt;Compare both sides of your paper with the display’s active area, not its inch size. Among models on sale from Wacom, XPPen and HUION, the two differ, and the active area is on the spec sheet.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Decide the size of your paper&lt;/li&gt;
&lt;li&gt;Read the long and short sides of the active area from the spec sheet&lt;/li&gt;
&lt;li&gt;If both of the paper’s sides are no larger than the active area’s, the whole page fits&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For A4 on a 15.4–16-inch display, check the short side first.&lt;/p&gt;
&lt;h2 id=&quot;pixel-pitch-sets-how-fine-the-screen-looks&quot;&gt;Pixel pitch sets how fine the screen looks&lt;/h2&gt;
&lt;p&gt;A smaller pixel pitch makes lines look smoother. Pixel pitch is the size of one dot on the screen. It varies among the Wacom, XPPen and HUION models on sale.&lt;/p&gt;
&lt;p&gt;15.4–16-inch displays with 2560 horizontal pixels have a pixel pitch of about 0.135–0.137 mm, versus about 0.178 mm for 1080p ones, so the 2560-wide screens look finer.&lt;/p&gt;
&lt;p&gt;A 21.5–23.8-inch 1080p display has a pixel pitch of about 0.248 mm, coarser than the 2560-wide models (about 0.186–0.206 mm).&lt;/p&gt;
&lt;h2 id=&quot;gamut-coverage-versus-area-ratio&quot;&gt;Gamut coverage versus area ratio&lt;/h2&gt;
&lt;p&gt;A gamut is the range of colors a screen can show. Makers state it in two ways, so it helps to know which is which. The figures here are triangle areas and overlaps on the CIE 1931 xy chart.&lt;/p&gt;
&lt;p&gt;Some makers list gamut as coverage and others as area ratio. One HUION 13-inch spec sheet lists 99% sRGB coverage and a 120% sRGB area ratio, so the numbers alone can’t be compared.&lt;/p&gt;
&lt;p&gt;Coverage is the share of a standard’s area that the screen’s gamut overlaps. Area ratio compares the size of the screen’s gamut with the standard’s.&lt;/p&gt;
&lt;p&gt;DCI-P3 has 100.5% of Adobe RGB’s area, but overlaps only 88.2% of it. A ratio over 100% doesn’t mean 100% coverage.&lt;/p&gt;
&lt;p&gt;Coverage and ratio measure different things, so this guide never compares one against the other.&lt;/p&gt;
&lt;p&gt;For choosing a gamut, see &lt;a href=&quot;https://aulvem.com/blog/2021-03-17-iilustration-monitor/&quot;&gt;Best monitor for digital art&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;one-usb-c-cable-power-and-weight&quot;&gt;One USB-C cable, power and weight&lt;/h2&gt;
&lt;h3 id=&quot;when-one-usb-c-cable-works&quot;&gt;When one USB-C cable works&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;On Wacom’s spec sheets, sending video over a single USB-C cable needs a computer whose USB-C port supports DisplayPort Alt Mode&lt;/li&gt;
&lt;li&gt;If it isn’t supported, pick a model that connects over HDMI&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;whether-you-need-a-power-adapter&quot;&gt;Whether you need a power adapter&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Among models with published power specs, 21.5–23.8-inch displays are specified to run from a wall power adapter (12 V)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;weight-for-carrying&quot;&gt;Weight for carrying&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Among models with a published weight, 13.3–14-inch displays weigh 0.75–0.865 kg / 1.7–1.9 lb, 15.4–16-inch ones 1.245–2 kg / 2.7–4.4 lb, and 21.5–23.8-inch ones 3.6–7.3 kg / 7.9–16.1 lb&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;picks-by-condition&quot;&gt;Picks by condition&lt;/h2&gt;
&lt;p&gt;Each pick is sold on Amazon.com, one per condition. The conditions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sold new by Amazon or the maker&lt;/li&gt;
&lt;li&gt;The maker’s spec page shows the same model number as the listing&lt;/li&gt;
&lt;li&gt;At least 100 ratings and 4 stars or more&lt;/li&gt;
&lt;li&gt;Not an import&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When more than one listing qualifies, the pick is the cheapest among the listings checked, shipping included. Actual-size fit compares drawing-area dimensions, excluding app panels. Check prices on the store.&lt;/p&gt;
&lt;h3 id=&quot;13314-inch-video-over-one-usb-c-cable&quot;&gt;13.3–14-inch, video over one USB-C cable&lt;/h3&gt;
&lt;p&gt;At 293.8 mm by 165.2 mm, the active area is enough for A5, and the display weighs 865 g. The spec lists a full-function USB-C port, so your computer’s port needs DisplayPort Alt Mode.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for HUION Kamvas 13 (Gen 3)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61pASsqEGTL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;HUION Kamvas 13 (Gen 3)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F13T9H31?q=HUION+Kamvas+13+%28Gen+3%29&amp;amp;us=B0F13T9H31&amp;amp;l=en&quot; aria-label=&quot;View HUION Kamvas 13 (Gen 3) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Sold by Huion Official Store. 13.3” and 15.6” sizes and colors share the page. The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h3 id=&quot;15416-inch&quot;&gt;15.4–16-inch&lt;/h3&gt;
&lt;p&gt;A5 fits but A4’s short side does not, with an active area of 350 mm by 197 mm. The screen is 2,560 px by 1,440 px, with a pixel pitch of about 0.137 mm.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for HUION Kamvas 16 (Gen 3)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/613jCRhYviL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;HUION Kamvas 16 (Gen 3)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DPMNL7WV?q=HUION+Kamvas+16+%28Gen+3%29&amp;amp;us=B0DPMNL7WV&amp;amp;l=en&quot; aria-label=&quot;View HUION Kamvas 16 (Gen 3) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;215238-inch&quot;&gt;21.5–23.8-inch&lt;/h3&gt;
&lt;p&gt;A4 fits whole at actual size, with an active area of 475.4 mm by 267.4 mm. It weighs 3,600 g and runs on a power adapter.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for HUION Kamvas 22 (Gen 3)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61SbML3j6+L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;HUION Kamvas 22 (Gen 3)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0G3P54PCM?q=HUION+Kamvas+22+%28Gen+3%29&amp;amp;us=B0G3P54PCM&amp;amp;l=en&quot; aria-label=&quot;View HUION Kamvas 22 (Gen 3) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Sold by HUION. 13.3”, 15.6”, 15.8” and 21.5” models share the page. This is the 21.5”. The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;what-size-pen-display-should-i-get&quot;&gt;What size pen display should I get?&lt;/h3&gt;
&lt;p&gt;Among models on sale from Wacom, XPPen and HUION, choose a 13.3–14-inch display for A5 at actual size, and a 21.5–23.8-inch one for A4. For other paper sizes, check the table.&lt;/p&gt;
&lt;h3 id=&quot;what-size-pen-display-do-i-need-for-a4-art&quot;&gt;What size pen display do I need for A4 art?&lt;/h3&gt;
&lt;p&gt;Among models on sale from Wacom, XPPen and HUION, A4 at actual size fits a 21.5–23.8-inch display; only one 15.4–16-inch model fits, borderline, with 5 mm to spare. This compares drawing-area dimensions, excluding app panels.&lt;/p&gt;
&lt;h3 id=&quot;what-is-the-difference-between-gamut-coverage-and-area-ratio&quot;&gt;What is the difference between gamut coverage and area ratio?&lt;/h3&gt;
&lt;p&gt;Coverage is the share of a standard’s area that the screen’s gamut overlaps. Area ratio compares the sizes of the two areas.&lt;/p&gt;
&lt;p&gt;On makers’ spec sheets, some makers list gamut as coverage and others as area ratio. One HUION 13-inch spec sheet lists 99% sRGB coverage and a 120% sRGB area ratio, so the numbers alone can’t be compared.&lt;/p&gt;
&lt;p&gt;Worked out as triangle areas on the CIE 1931 xy chart, DCI-P3 has 100.5% of Adobe RGB’s area, but overlaps only 88.2% of it. A ratio over 100% doesn’t mean 100% coverage.&lt;/p&gt;
&lt;h3 id=&quot;can-a-pen-display-connect-with-one-usb-c-cable&quot;&gt;Can a pen display connect with one USB-C cable?&lt;/h3&gt;
&lt;p&gt;Some can. On Wacom’s spec sheets, sending video over a single USB-C cable needs a computer whose USB-C port supports DisplayPort Alt Mode.&lt;/p&gt;
&lt;p&gt;The Cintiq 16 needs a separate AC adapter when the computer can’t supply enough power, so DisplayPort Alt Mode support alone doesn’t guarantee a single cable. For other makers, check each model’s spec sheet.&lt;/p&gt;
&lt;h3 id=&quot;does-a-pen-display-need-a-power-adapter&quot;&gt;Does a pen display need a power adapter?&lt;/h3&gt;
&lt;p&gt;Among models with published power specs, 21.5–23.8-inch displays are specified to run from a wall power adapter (12 V). Smaller classes are mostly specified to run on power from the computer’s USB-C port.&lt;/p&gt;
&lt;p&gt;Some models need a separate AC adapter when the computer can’t supply enough.&lt;/p&gt;
&lt;h3 id=&quot;can-i-carry-a-pen-display-around&quot;&gt;Can I carry a pen display around?&lt;/h3&gt;
&lt;p&gt;Among models with a published weight, 13.3–14-inch displays weigh 0.75–0.865 kg / 1.7–1.9 lb, 15.4–16-inch ones 1.245–2 kg / 2.7–4.4 lb, and 21.5–23.8-inch ones 3.6–7.3 kg / 7.9–16.1 lb. How they carry is unknown; nothing was tried hands-on.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Active area, resolution, connection, power and weight come from the makers’ official specs as of October 2026. Nothing was tested hands-on. Active areas and paper were compared long side to long side and short side to short side, geometrically. App UI panels and 1:1 display settings are not included. Pixel pitch is the active-area width divided by horizontal pixels. Official pixel pitch: &lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Wacom&lt;/a&gt; (0.1346 mm). Model with the least room when A3 is scaled down: HUION Kamvas 22 (Gen 3). Paper sizes: &lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ISO 216 table (University of Cambridge)&lt;/a&gt;. Active area, resolution, connection, power and weight: official spec pages from &lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Wacom&lt;/a&gt;, &lt;a href=&quot;https://www.xp-pen.jp/product/artist-16-3rd.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;XPPen&lt;/a&gt;, &lt;a href=&quot;https://www.xp-pen.com/product/artist-22-2nd-generation.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;XPPen (English)&lt;/a&gt; and &lt;a href=&quot;https://www.huion.com/jp/products/kamvas-13-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;HUION&lt;/a&gt;. Coverage and ratio definitions: &lt;a href=&quot;https://www.eizo.co.jp/eizolibrary/other/itmedia02_01/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;EIZO Library&lt;/a&gt; and &lt;a href=&quot;https://www.benq.com/en-us/knowledge-center/knowledge/projector-color-coverage-and-color-gamuts.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;BenQ&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Active area: each maker’s official spec page (Wacom’s display size and active area, XPPen’s working/active area, HUION’s active area). Paper is ISO 216 A-series (A6 105 × 148 mm, A5 148 × 210 mm, A4 210 × 297 mm, A3 297 × 420 mm).&lt;/li&gt;
&lt;li&gt;Fit: paper long side vs. active-area long side, and short side vs. short side. Both fit = whole page fits; only the long side = long side only. Turning the display portrait gives the same result.&lt;/li&gt;
&lt;li&gt;Scale to fit = the smaller of the long-side ratio and the short-side ratio, rounded down to 1% so it works for every model in the size group (A3 on large displays: 90%).&lt;/li&gt;
&lt;li&gt;Pixel pitch = active-area width ÷ horizontal pixels. It differs from Wacom’s published pitch (0.1346 mm and others) by less than 0.0002 mm.&lt;/li&gt;
&lt;li&gt;Gamut: makers’ figures are grouped as coverage, area ratio, both, or unlabeled, and not compared number to number. What the standards mean is worked out from the sRGB, Adobe RGB and DCI-P3 primaries on the CIE 1931 xy chart (ratio = area ÷ area, coverage = overlap ÷ the standard’s area; e.g. DCI-P3 is 100.5% of Adobe RGB by ratio but covers 88.2%).&lt;/li&gt;
&lt;li&gt;Connection: a model counts for HDMI if its official connection specs list HDMI (including Mini-HDMI), and for one USB-C cable if they list a video-capable USB-C input (full-function USB-C, DisplayPort Alt Mode and the like). The HDMI end of 3-in-1 cables isn’t listed in the connection specs, so it isn’t counted.&lt;/li&gt;
&lt;li&gt;For models with no stated active area (Wacom One 14), the official display size of 309×174 mm was used as the drawing area.&lt;/li&gt;
&lt;li&gt;Weight and power are makers’ official figures; whether weight includes a stand varies by model. Eye-to-screen distance isn’t covered: there’s no primary source for drawing posture.&lt;/li&gt;
&lt;li&gt;No units were tested. Picks: new on Amazon, 100+ ratings, 4+ stars, no strong Sakura Checker warning, sold by Amazon or the maker’s own store, listing model matched to the spec model, cheapest with shipping.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;




































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;sRGB red primary chromaticity x&lt;/td&gt;&lt;td&gt;0.64 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sRGB red primary chromaticity y&lt;/td&gt;&lt;td&gt;0.33 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sRGB green primary chromaticity x&lt;/td&gt;&lt;td&gt;0.3 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sRGB green primary chromaticity y&lt;/td&gt;&lt;td&gt;0.6 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sRGB blue primary chromaticity x&lt;/td&gt;&lt;td&gt;0.15 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sRGB blue primary chromaticity y&lt;/td&gt;&lt;td&gt;0.06 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB (1998) red primary chromaticity x&lt;/td&gt;&lt;td&gt;0.64 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB (1998) red primary chromaticity y&lt;/td&gt;&lt;td&gt;0.33 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB (1998) green primary chromaticity x&lt;/td&gt;&lt;td&gt;0.21 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB (1998) green primary chromaticity y&lt;/td&gt;&lt;td&gt;0.71 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB (1998) blue primary chromaticity x&lt;/td&gt;&lt;td&gt;0.15 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB (1998) blue primary chromaticity y&lt;/td&gt;&lt;td&gt;0.06 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI-P3 red primary chromaticity x&lt;/td&gt;&lt;td&gt;0.68 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI-P3 red primary chromaticity y&lt;/td&gt;&lt;td&gt;0.32 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI-P3 green primary chromaticity x&lt;/td&gt;&lt;td&gt;0.265 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI-P3 green primary chromaticity y&lt;/td&gt;&lt;td&gt;0.69 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI-P3 blue primary chromaticity x&lt;/td&gt;&lt;td&gt;0.15 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI-P3 blue primary chromaticity y&lt;/td&gt;&lt;td&gt;0.06 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;D65 white point chromaticity x&lt;/td&gt;&lt;td&gt;0.3127 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;D65 white point chromaticity y&lt;/td&gt;&lt;td&gt;0.329 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI white point chromaticity x (theatrical DCI-P3)&lt;/td&gt;&lt;td&gt;0.314 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI white point chromaticity y (theatrical DCI-P3)&lt;/td&gt;&lt;td&gt;0.351 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Meaning of coverage (maker docs)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/eizolibrary/other/itmedia02_01/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Meaning of area ratio (maker docs)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/eizolibrary/other/itmedia02_01/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lower end of OSHA’s preferred range&lt;/td&gt;&lt;td&gt;50 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;osha.gov&lt;/a&gt; preferred viewing distance is between 20 and 40 inches (50 and 100 cm) from the&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Upper end of OSHA’s preferred range&lt;/td&gt;&lt;td&gt;100 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;osha.gov&lt;/a&gt; same sentence (20–40 in, 50–100 cm)&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MHLW minimum eye-to-screen distance&lt;/td&gt;&lt;td&gt;40 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.mhlw.go.jp/content/000539604.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;mhlw.go.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A3 paper short side&lt;/td&gt;&lt;td&gt;297 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A3 paper long side&lt;/td&gt;&lt;td&gt;420 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A4 paper short side&lt;/td&gt;&lt;td&gt;210 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A4 paper long side&lt;/td&gt;&lt;td&gt;297 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5 paper short side&lt;/td&gt;&lt;td&gt;148 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5 paper long side&lt;/td&gt;&lt;td&gt;210 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom One 14: active area width&lt;/td&gt;&lt;td&gt;309 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-one-display/dtc141w0.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom One 14: active area height&lt;/td&gt;&lt;td&gt;174 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-one-display/dtc141w0.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom One 14: screen size&lt;/td&gt;&lt;td&gt;14 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-one-display/dtc141w0.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom One 14: horizontal pixels&lt;/td&gt;&lt;td&gt;1920 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-one-display/dtc141w0.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom One 14: vertical pixels&lt;/td&gt;&lt;td&gt;1080 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-one-display/dtc141w0.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom One 14: gamut wording on the maker page&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-one-display/dtc141w0.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom One 14: pen pressure levels&lt;/td&gt;&lt;td&gt;4096 levels&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-one-display/dtc141w0.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom One 14: tilt detection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-one-display/dtc141w0.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom One 14: weight&lt;/td&gt;&lt;td&gt;750 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-one-display/dtc141w0.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom One 14: connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-one-display/dtc141w0.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom One 14: power&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-one-display/dtc141w0.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 16 (DTK168): active area width&lt;/td&gt;&lt;td&gt;345 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 16 (DTK168): active area height&lt;/td&gt;&lt;td&gt;215 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 16 (DTK168): screen size&lt;/td&gt;&lt;td&gt;16 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 16 (DTK168): horizontal pixels&lt;/td&gt;&lt;td&gt;2560 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 16 (DTK168): vertical pixels&lt;/td&gt;&lt;td&gt;1600 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 16 (DTK168): gamut wording on the maker page&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 16 (DTK168): pen pressure levels&lt;/td&gt;&lt;td&gt;8192 levels&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 16 (DTK168): tilt detection&lt;/td&gt;&lt;td&gt;60° text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 16 (DTK168): weight&lt;/td&gt;&lt;td&gt;2000 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 16 (DTK168): connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 16 (DTK168): power&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 24 (DTK246): active area width&lt;/td&gt;&lt;td&gt;527 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk246k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 24 (DTK246): active area height&lt;/td&gt;&lt;td&gt;296 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk246k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 24 (DTK246): screen size&lt;/td&gt;&lt;td&gt;23.8 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk246k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 24 (DTK246): horizontal pixels&lt;/td&gt;&lt;td&gt;2560 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk246k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 24 (DTK246): vertical pixels&lt;/td&gt;&lt;td&gt;1440 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk246k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 24 (DTK246): gamut wording on the maker page&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk246k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 24 (DTK246): pen pressure levels&lt;/td&gt;&lt;td&gt;8192 levels&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk246k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 24 (DTK246): tilt detection&lt;/td&gt;&lt;td&gt;60° text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk246k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 24 (DTK246): weight&lt;/td&gt;&lt;td&gt;5700 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk246k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 24 (DTK246): connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk246k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 24 (DTK246): power&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk246k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 16 3rd: active area width&lt;/td&gt;&lt;td&gt;342 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-16-3rd.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 16 3rd: active area height&lt;/td&gt;&lt;td&gt;193 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-16-3rd.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 16 3rd: screen size&lt;/td&gt;&lt;td&gt;15.4 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-16-3rd.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 16 3rd: horizontal pixels&lt;/td&gt;&lt;td&gt;1920 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-16-3rd.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 16 3rd: vertical pixels&lt;/td&gt;&lt;td&gt;1080 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-16-3rd.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 16 3rd: gamut wording on the maker page&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-16-3rd.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 16 3rd: pen pressure levels&lt;/td&gt;&lt;td&gt;16384 levels&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-16-3rd.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 16 3rd: tilt detection&lt;/td&gt;&lt;td&gt;60° text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-16-3rd.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 16 3rd: weight&lt;/td&gt;&lt;td&gt;1355 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-16-3rd.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 16 3rd: connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-16-3rd.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 16 3rd: power&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-16-3rd.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 15.6 Pro V2: active area width&lt;/td&gt;&lt;td&gt;340.99 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-15-6-pro-v2.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 15.6 Pro V2: active area height&lt;/td&gt;&lt;td&gt;191.81 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-15-6-pro-v2.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 15.6 Pro V2: screen size&lt;/td&gt;&lt;td&gt;15.4 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-15-6-pro-v2.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 15.6 Pro V2: horizontal pixels&lt;/td&gt;&lt;td&gt;1920 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-15-6-pro-v2.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 15.6 Pro V2: vertical pixels&lt;/td&gt;&lt;td&gt;1080 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-15-6-pro-v2.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 15.6 Pro V2: gamut wording on the maker page&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-15-6-pro-v2.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 15.6 Pro V2: pen pressure levels&lt;/td&gt;&lt;td&gt;16384 levels&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-15-6-pro-v2.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 15.6 Pro V2: tilt detection&lt;/td&gt;&lt;td&gt;60° text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-15-6-pro-v2.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 15.6 Pro V2: weight&lt;/td&gt;&lt;td&gt;1447 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-15-6-pro-v2.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 15.6 Pro V2: connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-15-6-pro-v2.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 15.6 Pro V2: power&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-15-6-pro-v2.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 Plus: active area width&lt;/td&gt;&lt;td&gt;476.06 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-22-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 Plus: active area height&lt;/td&gt;&lt;td&gt;267.79 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-22-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 Plus: screen size&lt;/td&gt;&lt;td&gt;21.5 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-22-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 Plus: horizontal pixels&lt;/td&gt;&lt;td&gt;1920 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-22-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 Plus: vertical pixels&lt;/td&gt;&lt;td&gt;1080 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-22-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 Plus: gamut wording on the maker page&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-22-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 Plus: pen pressure levels&lt;/td&gt;&lt;td&gt;16384 levels&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-22-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 Plus: tilt detection&lt;/td&gt;&lt;td&gt;60° text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-22-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 Plus: weight (not stated)&lt;/td&gt;&lt;td&gt;not found text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-22-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 Plus: connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-22-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 Plus: power&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-22-plus.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist Pro 24 (Gen2) 165Hz: active area width&lt;/td&gt;&lt;td&gt;526 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-pro-24-gen-2-165hz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist Pro 24 (Gen2) 165Hz: active area height&lt;/td&gt;&lt;td&gt;296 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-pro-24-gen-2-165hz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist Pro 24 (Gen2) 165Hz: screen size&lt;/td&gt;&lt;td&gt;23.8 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-pro-24-gen-2-165hz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist Pro 24 (Gen2) 165Hz: horizontal pixels&lt;/td&gt;&lt;td&gt;2560 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-pro-24-gen-2-165hz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist Pro 24 (Gen2) 165Hz: vertical pixels&lt;/td&gt;&lt;td&gt;1440 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-pro-24-gen-2-165hz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist Pro 24 (Gen2) 165Hz: gamut wording on the maker page&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-pro-24-gen-2-165hz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist Pro 24 (Gen2) 165Hz: pen pressure levels&lt;/td&gt;&lt;td&gt;16384 levels&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-pro-24-gen-2-165hz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist Pro 24 (Gen2) 165Hz: tilt detection&lt;/td&gt;&lt;td&gt;60° text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-pro-24-gen-2-165hz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist Pro 24 (Gen2) 165Hz: weight&lt;/td&gt;&lt;td&gt;7300 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-pro-24-gen-2-165hz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist Pro 24 (Gen2) 165Hz: connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-pro-24-gen-2-165hz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist Pro 24 (Gen2) 165Hz: power&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.jp/product/artist-pro-24-gen-2-165hz.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 13 (Gen 3): active area width&lt;/td&gt;&lt;td&gt;293.8 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-13-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 13 (Gen 3): active area height&lt;/td&gt;&lt;td&gt;165.2 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-13-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 13 (Gen 3): screen size&lt;/td&gt;&lt;td&gt;13.3 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-13-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 13 (Gen 3): horizontal pixels&lt;/td&gt;&lt;td&gt;1920 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-13-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 13 (Gen 3): vertical pixels&lt;/td&gt;&lt;td&gt;1080 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-13-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 13 (Gen 3): gamut wording on the maker page&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-13-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 13 (Gen 3): pen pressure levels&lt;/td&gt;&lt;td&gt;16384 levels&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-13-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 13 (Gen 3): tilt detection&lt;/td&gt;&lt;td&gt;±60° text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-13-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 13 (Gen 3): weight&lt;/td&gt;&lt;td&gt;865 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-13-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 13 (Gen 3): connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-13-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 13 (Gen 3): power&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-13-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 16 (Gen 3): active area width&lt;/td&gt;&lt;td&gt;350 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-16-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 16 (Gen 3): active area height&lt;/td&gt;&lt;td&gt;197 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-16-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 16 (Gen 3): screen size&lt;/td&gt;&lt;td&gt;15.8 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-16-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 16 (Gen 3): horizontal pixels&lt;/td&gt;&lt;td&gt;2560 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-16-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 16 (Gen 3): vertical pixels&lt;/td&gt;&lt;td&gt;1440 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-16-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 16 (Gen 3): gamut wording on the maker page&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-16-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 16 (Gen 3): pen pressure levels&lt;/td&gt;&lt;td&gt;16384 levels&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-16-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 16 (Gen 3): tilt detection&lt;/td&gt;&lt;td&gt;±60° text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-16-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 16 (Gen 3): weight&lt;/td&gt;&lt;td&gt;1245 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-16-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 16 (Gen 3): connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-16-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 16 (Gen 3): power&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-16-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 22 (Gen 3): active area width&lt;/td&gt;&lt;td&gt;475.392 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-22-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 22 (Gen 3): active area height&lt;/td&gt;&lt;td&gt;267.408 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-22-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 22 (Gen 3): screen size&lt;/td&gt;&lt;td&gt;21.5 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-22-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 22 (Gen 3): horizontal pixels&lt;/td&gt;&lt;td&gt;2560 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-22-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 22 (Gen 3): vertical pixels&lt;/td&gt;&lt;td&gt;1440 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-22-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 22 (Gen 3): gamut wording on the maker page&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-22-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 22 (Gen 3): pen pressure levels&lt;/td&gt;&lt;td&gt;16384 levels&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-22-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 22 (Gen 3): tilt detection&lt;/td&gt;&lt;td&gt;±60° text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-22-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 22 (Gen 3): weight&lt;/td&gt;&lt;td&gt;3600 g&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-22-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 22 (Gen 3): connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-22-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HUION Kamvas 22 (Gen 3): power&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.huion.com/jp/products/kamvas-22-gen-3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;huion.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A6 paper short side&lt;/td&gt;&lt;td&gt;105 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A6 paper long side&lt;/td&gt;&lt;td&gt;148 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/~mgk25/iso-paper.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;cl.cam.ac.uk&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom One 14: pixel pitch (official)&lt;/td&gt;&lt;td&gt;0.1611 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-one-display/dtc141w0.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 16: pixel pitch (official)&lt;/td&gt;&lt;td&gt;0.1346 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk168k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wacom Cintiq 24: pixel pitch (official)&lt;/td&gt;&lt;td&gt;0.2058 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://estore.wacom.jp/ja-JP/products/wacom-cintiq/dtk246k4c.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;estore.wacom.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 (2nd Generation): active area width&lt;/td&gt;&lt;td&gt;476.064 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.com/product/artist-22-2nd-generation.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 (2nd Generation): active area height&lt;/td&gt;&lt;td&gt;267.786 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.com/product/artist-22-2nd-generation.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 (2nd Generation): screen size&lt;/td&gt;&lt;td&gt;21.5 inch&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.com/product/artist-22-2nd-generation.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.com&lt;/a&gt; 「21.5-inch display」&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 (2nd Generation): horizontal pixels&lt;/td&gt;&lt;td&gt;1920 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.com/product/artist-22-2nd-generation.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.com&lt;/a&gt; Specifications「Display Resolution 1920 x 1080」&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 (2nd Generation): vertical pixels&lt;/td&gt;&lt;td&gt;1080 px&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.com/product/artist-22-2nd-generation.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.com&lt;/a&gt; Specifications「Display Resolution 1920 x 1080」&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 (2nd Generation): gamut wording (not labeled coverage or ratio)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.com/product/artist-22-2nd-generation.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.com&lt;/a&gt; Specifications「Color Gamut 86% NTSC, Adobe® RGB≥90%, sRGB≥122%」&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 (2nd Generation): pressure levels&lt;/td&gt;&lt;td&gt;8192 levels&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.com/product/artist-22-2nd-generation.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.com&lt;/a&gt; Specifications「Pressure Sensitivity 8192 levels」&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 (2nd Generation): tilt&lt;/td&gt;&lt;td&gt;60° text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.com/product/artist-22-2nd-generation.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.com&lt;/a&gt; Specifications「Tilt 60°」&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 (2nd Generation): weight (not listed)&lt;/td&gt;&lt;td&gt;not found text&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.com/product/artist-22-2nd-generation.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 (2nd Generation): connection&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.com/product/artist-22-2nd-generation.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;XPPen Artist 22 (2nd Generation): power&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.xp-pen.com/product/artist-22-2nd-generation.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;xp-pen.com&lt;/a&gt; Specifications「Power Supply Input AC 100–240V / Power Supply Output DC 12V 3A」&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Which pen display size fits your paper: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;





































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;A6, One USB-C cable&lt;/td&gt;&lt;td&gt;✓ A 13.3–14-inch display holds the whole page. A6: 105 × 148 mm. Sending video over one USB-C cable needs a computer whose USB-C port outputs video (DisplayPort Alt Mode). On 13.3–14-inch displays, every model checked with this connection holds a whole A6 page at actual size&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/?lcd-tablet-size-calc-paper=a6&amp;amp;lcd-tablet-size-calc-conn=usbc#lcd-tablet-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A6, HDMI + USB&lt;/td&gt;&lt;td&gt;✓ A 15.4–16-inch display holds the whole page. A6: 105 × 148 mm. HDMI counts only for models whose official connection specs list HDMI. None of the 13.3–14-inch models checked lists this connection in its official specs. On 15.4–16-inch displays, every model checked with this connection holds a whole A6 page at actual size&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/?lcd-tablet-size-calc-paper=a6&amp;amp;lcd-tablet-size-calc-conn=hdmi#lcd-tablet-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A6, Either&lt;/td&gt;&lt;td&gt;✓ A 13.3–14-inch display holds the whole page. A6: 105 × 148 mm. On 13.3–14-inch displays, every model checked holds a whole A6 page at actual size&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/?lcd-tablet-size-calc-paper=a6&amp;amp;lcd-tablet-size-calc-conn=any#lcd-tablet-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5, One USB-C cable&lt;/td&gt;&lt;td&gt;✓ A 13.3–14-inch display holds the whole page. A5: 148 × 210 mm. Sending video over one USB-C cable needs a computer whose USB-C port outputs video (DisplayPort Alt Mode). On 13.3–14-inch displays, every model checked with this connection holds a whole A5 page at actual size&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/?lcd-tablet-size-calc-paper=a5&amp;amp;lcd-tablet-size-calc-conn=usbc#lcd-tablet-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5, HDMI + USB&lt;/td&gt;&lt;td&gt;✓ A 15.4–16-inch display holds the whole page. A5: 148 × 210 mm. HDMI counts only for models whose official connection specs list HDMI. None of the 13.3–14-inch models checked lists this connection in its official specs. On 15.4–16-inch displays, every model checked with this connection holds a whole A5 page at actual size&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/?lcd-tablet-size-calc-paper=a5&amp;amp;lcd-tablet-size-calc-conn=hdmi#lcd-tablet-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A5, Either&lt;/td&gt;&lt;td&gt;✓ A 13.3–14-inch display holds the whole page. A5: 148 × 210 mm. On 13.3–14-inch displays, every model checked holds a whole A5 page at actual size&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/?lcd-tablet-size-calc-paper=a5&amp;amp;lcd-tablet-size-calc-conn=any#lcd-tablet-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A4, One USB-C cable&lt;/td&gt;&lt;td&gt;△ 15.4–16-inch: depends on the model. A4: 210 × 297 mm. Sending video over one USB-C cable needs a computer whose USB-C port outputs video (DisplayPort Alt Mode). Among 15.4–16-inch displays, a whole page fits only if the active area is at least 210 mm on its short side. On 21.5–23.8-inch displays, every model checked with this connection holds the whole page&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/?lcd-tablet-size-calc-paper=a4&amp;amp;lcd-tablet-size-calc-conn=usbc#lcd-tablet-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A4, HDMI + USB&lt;/td&gt;&lt;td&gt;✓ A 15.4–16-inch display holds the whole page. A4: 210 × 297 mm. HDMI counts only for models whose official connection specs list HDMI. None of the 13.3–14-inch models checked lists this connection in its official specs. On 15.4–16-inch displays, every model checked with this connection holds a whole A4 page at actual size&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/?lcd-tablet-size-calc-paper=a4&amp;amp;lcd-tablet-size-calc-conn=hdmi#lcd-tablet-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A4, Either&lt;/td&gt;&lt;td&gt;△ 15.4–16-inch: depends on the model. A4: 210 × 297 mm. Among 15.4–16-inch displays, a whole page fits only if the active area is at least 210 mm on its short side. On 21.5–23.8-inch displays, every model checked holds the whole page&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/?lcd-tablet-size-calc-paper=a4&amp;amp;lcd-tablet-size-calc-conn=any#lcd-tablet-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A3, One USB-C cable&lt;/td&gt;&lt;td&gt;△ Not whole at actual size, even at 21.5–23.8-inch. A3: 297 × 420 mm. Sending video over one USB-C cable needs a computer whose USB-C port outputs video (DisplayPort Alt Mode). The long side fits but the short side doesn’t. Scaled to 90%, it fits every model checked with this connection&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/?lcd-tablet-size-calc-paper=a3&amp;amp;lcd-tablet-size-calc-conn=usbc#lcd-tablet-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A3, HDMI + USB&lt;/td&gt;&lt;td&gt;△ Not whole at actual size, even at 21.5–23.8-inch. A3: 297 × 420 mm. HDMI counts only for models whose official connection specs list HDMI. None of the 13.3–14-inch models checked lists this connection in its official specs. The long side fits but the short side doesn’t. Scaled to 90%, it fits every model checked with this connection&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/?lcd-tablet-size-calc-paper=a3&amp;amp;lcd-tablet-size-calc-conn=hdmi#lcd-tablet-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A3, Either&lt;/td&gt;&lt;td&gt;△ Not whole at actual size, even at 21.5–23.8-inch. A3: 297 × 420 mm. The long side fits but the short side doesn’t. Scaled to 90%, it fits every model checked&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-18-choose-lcd-tablet/?lcd-tablet-size-calc-paper=a3&amp;amp;lcd-tablet-size-calc-conn=any#lcd-tablet-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>pen-display</category></item><item><title>Best Monitor for Digital Art: Match Gamut to Your Output</title><link>https://aulvem.com/blog/2021-03-17-iilustration-monitor/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-17-iilustration-monitor/</guid><description>Pick a drawing monitor by where your art ends up. By this guide&apos;s rule, choose sRGB 99%+ for posting online, Adobe RGB 99%+ for print, and DCI-P3 90%+ for cinema video. Worked out from official specs and standard primaries as of October 2026.</description><pubDate>Wed, 17 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Pick a drawing monitor by where your art ends up. By this guide’s rule, choose sRGB 99%+ for posting online, Adobe RGB 99%+ for print, and DCI-P3 90%+ for cinema video.&lt;/p&gt;
&lt;p&gt;This comes from the makers’ official specs as of October 2026 and the standards’ primary coordinates. No monitor was tested in person.&lt;/p&gt;
&lt;h2 id=&quot;color-gamut-by-where-your-art-goes&quot;&gt;Color gamut by where your art goes&lt;/h2&gt;
&lt;p&gt;Match online art to sRGB, print to Adobe RGB, and cinema video to DCI-P3. The table shows the standard to match and the condition for a pick. The percentages in the table are worked out from the standards’ primaries, not measured on real monitors.
Assumptions: areas of the triangles joining each standard’s primaries on the CIE 1931 xy chart; models are compared by their official figures&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Where your art goes&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Standard to match&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Share of it that sRGB holds&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Pick condition&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Posting online&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;sRGB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;All of it&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;sRGB 99%+&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Printing (zines, merch)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Adobe RGB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;74.1%&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Adobe RGB 99%+&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Cinema video&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;DCI-P3&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;73.7%&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;DCI-P3 90%+&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;DCI-P3 90% or more is this article’s own guideline. Some makers list a figure without saying whether it is coverage or ratio.&lt;/p&gt;
&lt;p&gt;Enter where your art goes and your eye-to-screen distance. The tool shows the matching standard and whether a 27-inch screen suits that distance.&lt;/p&gt;
&lt;section id=&quot;illust-monitor-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;illust-monitor-calc-title&quot;&gt; &lt;h3 id=&quot;illust-monitor-calc-title&quot;&gt;Which gamut and size fit your art&lt;/h3&gt; &lt;p&gt;Pick where your art goes, a resolution and your eyes-to-screen distance to see which color standard to match, whether a 27-inch fits the target distance, and one monitor that fits.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;pa279crv&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS ProArt PA279CRV&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/91dkLCfM8dL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS ProArt PA279CRV&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0BQPSX5CR?q=ASUS+ProArt+PA279CRV&amp;amp;us=B0BQPSX5CR&amp;amp;l=en&quot; aria-label=&quot;View ASUS ProArt PA279CRV on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;pa278qv&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS ProArt PA278QV&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81CFn-NfutL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS ProArt PA278QV&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B088BC5HMM?q=ASUS+ProArt+PA278QV&amp;amp;us=B088BC5HMM&amp;amp;l=en&quot; aria-label=&quot;View ASUS ProArt PA278QV on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;t24&quot;:50,&quot;t27&quot;:56.61240133576199,&quot;max&quot;:100,&quot;min&quot;:{&quot;srgb&quot;:99,&quot;adobe&quot;:99,&quot;p3&quot;:90},&quot;names&quot;:{&quot;srgb&quot;:&quot;sRGB&quot;,&quot;adobe&quot;:&quot;Adobe RGB&quot;,&quot;p3&quot;:&quot;DCI-P3&quot;},&quot;cov&quot;:{&quot;srgb&quot;:1,&quot;adobe&quot;:0.7413165729407873,&quot;p3&quot;:0.737171052631579},&quot;scale&quot;:[100,150],&quot;use&quot;:{&quot;web&quot;:&quot;srgb&quot;,&quot;print&quot;:&quot;adobe&quot;,&quot;video&quot;:&quot;p3&quot;},&quot;models&quot;:{&quot;pa279crv&quot;:{&quot;size&quot;:27,&quot;res&quot;:&quot;3840x2160&quot;,&quot;gamut&quot;:{&quot;srgb&quot;:100,&quot;adobe&quot;:99,&quot;p3&quot;:99}},&quot;sw272q&quot;:{&quot;size&quot;:27,&quot;res&quot;:&quot;2560x1440&quot;,&quot;gamut&quot;:{&quot;srgb&quot;:100,&quot;adobe&quot;:99,&quot;p3&quot;:98}},&quot;sw272u&quot;:{&quot;size&quot;:27,&quot;res&quot;:&quot;3840x2160&quot;,&quot;gamut&quot;:{&quot;srgb&quot;:100,&quot;adobe&quot;:99,&quot;p3&quot;:99}},&quot;sw242q&quot;:{&quot;size&quot;:24.1,&quot;res&quot;:&quot;2560x1600&quot;,&quot;gamut&quot;:{&quot;srgb&quot;:100,&quot;adobe&quot;:99,&quot;p3&quot;:98}},&quot;cg2700s&quot;:{&quot;size&quot;:27,&quot;res&quot;:&quot;2560x1440&quot;,&quot;gamut&quot;:{&quot;adobe&quot;:99,&quot;p3&quot;:98}},&quot;u2723qe&quot;:{&quot;size&quot;:27,&quot;res&quot;:&quot;3840x2160&quot;,&quot;gamut&quot;:{&quot;srgb&quot;:100,&quot;p3&quot;:98}},&quot;27up850&quot;:{&quot;size&quot;:27,&quot;res&quot;:&quot;3840x2160&quot;,&quot;gamut&quot;:{&quot;p3&quot;:95}},&quot;27u711b&quot;:{&quot;size&quot;:27,&quot;res&quot;:&quot;3840x2160&quot;,&quot;gamut&quot;:{&quot;p3&quot;:90}},&quot;s2725dsm&quot;:{&quot;size&quot;:27,&quot;res&quot;:&quot;2560x1440&quot;,&quot;gamut&quot;:{&quot;srgb&quot;:99}},&quot;pd2732u&quot;:{&quot;size&quot;:27,&quot;res&quot;:&quot;3840x2160&quot;,&quot;gamut&quot;:{&quot;srgb&quot;:100,&quot;adobe&quot;:99,&quot;p3&quot;:99}},&quot;pa278qv&quot;:{&quot;size&quot;:27,&quot;res&quot;:&quot;2560x1440&quot;,&quot;gamut&quot;:{&quot;srgb&quot;:100}}},&quot;res&quot;:{&quot;qhd&quot;:&quot;2560x1440&quot;,&quot;uhd&quot;:&quot;3840x2160&quot;},&quot;dists&quot;:[45,50,55,60,65,70,75,80,85,90,95,100],&quot;buy&quot;:{&quot;pa279crv&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS ProArt PA279CRV&quot;,&quot;en&quot;:&quot;ASUS ProArt PA279CRV&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0BQPSX5CR&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0BQPSX5CR&quot;,&quot;asinUS&quot;:&quot;B0BQPSX5CR&quot;,&quot;title&quot;:&quot;ASUS ProArt PA279CRV&quot;,&quot;searchQuery&quot;:&quot;ASUS ProArt PA279CRV&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/91dkLCfM8dL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;27u711b&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG 27U711B-B&quot;,&quot;en&quot;:&quot;LG 27U711B-B&quot;,&quot;jp&quot;:&quot;B0GYPVGG2D&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GYPVGG2D&quot;,&quot;title&quot;:&quot;LG 27U711B-B&quot;,&quot;searchQuery&quot;:&quot;LG 27U711B-B&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71NDGee5qbL._AC_SL320_.jpg&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;s2725dsm&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2725DSM&quot;,&quot;en&quot;:&quot;Dell S2725DSM&quot;,&quot;jp&quot;:&quot;B0GR4ZZ32S&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GR4ZZ32S&quot;,&quot;title&quot;:&quot;Dell S2725DSM&quot;,&quot;searchQuery&quot;:&quot;Dell S2725DSM&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71WDCzfL7CL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4573661274722&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1},&quot;pd2732u&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;BenQ PD2732U&quot;,&quot;en&quot;:&quot;BenQ PD2732U&quot;,&quot;jp&quot;:&quot;B0H9WXYL22&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0H9WXYL22&quot;,&quot;title&quot;:&quot;BenQ PD2732U&quot;,&quot;searchQuery&quot;:&quot;BenQ PD2732U&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/713xDq0G+NL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4544438017156&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2},&quot;pa278qv&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS ProArt PA278QV&quot;,&quot;en&quot;:&quot;ASUS ProArt PA278QV&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B088BC5HMM&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B088BC5HMM&quot;,&quot;asinUS&quot;:&quot;B088BC5HMM&quot;,&quot;title&quot;:&quot;ASUS ProArt PA278QV&quot;,&quot;searchQuery&quot;:&quot;ASUS ProArt PA278QV&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81CFn-NfutL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0}},&quot;accessory&quot;:{&quot;ja&quot;:{},&quot;en&quot;:{}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;illust-monitor-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 色域: CIE 1931 xy 色度図の上で、規格の3つの原色を結んだ三角形として扱う
//   面積の比（「比」）   = 面積(A) ÷ 面積(B)
//   カバー率             = 面積(A と B が重なる部分) ÷ 面積(B)   … A が B の色を何割含むか
// 目安の距離: 23.8型を m.base（OSHA の最低ライン）で見るのと、画面の横幅が同じ角度に見える距離
//   = m.base × 画面の横幅 ÷ 23.8型の画面の横幅（2021-03-15-choose-monitor と同じ式）

function area(poly) {
  let s = 0;
  for (let i = 0; i &lt; poly.length; i++) {
    const [x1, y1] = poly[i], [x2, y2] = poly[(i + 1) % poly.length];
    s += x1 * y2 - x2 * y1;
  }
  return Math.abs(s) / 2;
}

// 凸多角形どうしの重なり（Sutherland–Hodgman）。clip は反時計回りにそろえてから使う
function ccw(poly) {
  let s = 0;
  for (let i = 0; i &lt; poly.length; i++) { const [x1, y1] = poly[i], [x2, y2] = poly[(i + 1) % poly.length]; s += x1 * y2 - x2 * y1; }
  return s &gt;= 0 ? poly : [...poly].reverse();
}
function intersect(subject, clip) {
  let out = ccw(subject);
  const c = ccw(clip);
  for (let i = 0; i &lt; c.length &amp;&amp; out.length; i++) {
    const a = c[i], b = c[(i + 1) % c.length];
    const inside = (p) =&gt; (b[0] - a[0]) * (p[1] - a[1]) - (b[1] - a[1]) * (p[0] - a[0]) &gt;= -1e-12;
    const cross = (p, q) =&gt; {
      const A1 = q[1] - p[1], B1 = p[0] - q[0], C1 = A1 * p[0] + B1 * p[1];
      const A2 = b[1] - a[1], B2 = a[0] - b[0], C2 = A2 * a[0] + B2 * a[1];
      const det = A1 * B2 - A2 * B1;
      return [(B2 * C1 - B1 * C2) / det, (A1 * C2 - A2 * C1) / det];
    };
    const inp = out; out = [];
    for (let j = 0; j &lt; inp.length; j++) {
      const p = inp[j], q = inp[(j + 1) % inp.length];
      if (inside(q)) { if (!inside(p)) out.push(cross(p, q)); out.push(q); }
      else if (inside(p)) out.push(cross(p, q));
    }
  }
  return out;
}

// A の色域が B の色を何割含むか（0〜1）
function coverage(A, B) {
  const I = intersect(A, B);
  return I.length &gt;= 3 ? area(I) / area(B) : 0;
}
function ratio(A, B) {
  return area(A) / area(B);
}

function targetDist(screenW, m) {
  return (m.base * screenW) / m.baseW;
}
function meets(distCm, screenW, m) {
  return distCm &gt;= targetDist(screenW, m);
}

// 公開先ごとに、どの規格の色をそろえるか（記事の結論と同じ対応。calc.mjs が検算する）
//   web: sRGB / print: Adobe RGB / video: DCI-P3
// 機種がその規格の公式値（%）で min 以上を載せているか
function meetsGamut(model, gamut, min) {
  const v = model.gamut[gamut];
  return typeof v === &quot;number&quot; &amp;&amp; v &gt;= min;
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（絵を出す先・解像度・目から画面までの距離）。機種は選ばせず、条件に合う買える商品を1つ出す。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    use: &quot;絵を出す先&quot;, res: &quot;解像度&quot;, dist: &quot;目から画面まで&quot;,
    web: &quot;Web・SNS&quot;, print: &quot;印刷&quot;, video: &quot;映画向けの映像&quot;, qhd: &quot;WQHD&quot;, uhd: &quot;4K&quot;,
    std: (g, m) =&gt; `合わせる規格: ${g}（公式値${m}%以上の機種）`,
    short: (g, x) =&gt; `sRGB だけの画面は、${g}の色の${x}%しか含みません`,
    srgbAll: &quot;Adobe RGB や DCI-P3 の画面も、sRGB の色はすべて含みます&quot;,
    target: (x) =&gt; `27インチの目安の距離: ${x}cm`,
    ok: (x) =&gt; `入れた距離なら目安を満たします（余裕${x}cm）`,
    tight: (x) =&gt; `入れた距離で目安を満たしますが、余裕は${x}cmのぎりぎりです`,
    near: (x) =&gt; `入れた距離は27インチの目安より${x}cm近いです。24インチ級なら目安を満たします`,
    ng: (x) =&gt; `入れた距離は24インチでも目安より${x}cm近いです`,
    scale: &quot;4Kは表示倍率150%で、WQHDの100%と同じ文字の大きさになります&quot;,
    vOk: &quot;○ 27インチが目安の距離に合います&quot;, vTight: &quot;△ ぎりぎり目安を満たします&quot;, vNear: &quot;△ 27インチには少し近い距離です&quot;, vNg: &quot;✕ 画面が近すぎます&quot;,
    note: &quot;結果は計算の目安です。目安の距離は公的な基準ではなく、この記事で決めた値です。色域は各メーカーの公式値で比べています。候補は、調べた機種のうち買えるものから選んでいます。&quot;,
  },
  en: {
    use: &quot;Where it goes&quot;, res: &quot;Resolution&quot;, dist: &quot;Eyes to screen&quot;,
    web: &quot;Web and social&quot;, print: &quot;Print&quot;, video: &quot;Cinema video&quot;, qhd: &quot;1440p&quot;, uhd: &quot;4K&quot;,
    std: (g, m) =&gt; `Standard to match: ${g} (models listing ${m}% or more)`,
    short: (g, x) =&gt; `A screen that only covers sRGB holds ${x}% of ${g}&apos;s colors`,
    srgbAll: &quot;Adobe RGB and DCI-P3 screens also contain every sRGB color&quot;,
    target: (x) =&gt; `27-inch target distance: ${x} cm`,
    ok: (x) =&gt; `Your distance meets the target (${x} cm to spare)`,
    tight: (x) =&gt; `Your distance meets the target, but with only ${x} cm to spare`,
    near: (x) =&gt; `Your distance is ${x} cm closer than the 27-inch target. A 24-inch class screen meets it`,
    ng: (x) =&gt; `Your distance is ${x} cm closer than the target even for a 24-inch`,
    scale: &quot;At 150% scaling, 4K shows text the same size as 1440p at 100%&quot;,
    vOk: &quot;✓ A 27-inch fits your distance&quot;, vTight: &quot;△ Just meets the target&quot;, vNear: &quot;△ A little close for a 27-inch&quot;, vNg: &quot;✕ The screen is too close&quot;,
    note: &quot;This is a calculated estimate. The target distance is this article&apos;s own rule, not an official standard. Gamuts are compared by each maker&apos;s official figures. Picks come from the models checked that are available to buy.&quot;,
  },
};

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;use&quot;, type: &quot;select&quot;, label: t.use, value: &quot;web&quot;, options: [&quot;web&quot;, &quot;print&quot;, &quot;video&quot;].map((x) =&gt; ({ value: x, label: t[x] })) },
    { name: &quot;res&quot;, type: &quot;select&quot;, label: t.res, value: &quot;qhd&quot;, options: [&quot;qhd&quot;, &quot;uhd&quot;].map((x) =&gt; ({ value: x, label: t[x] })) },
    // 目から画面までは5cm刻み（読者が実際に選ぶ値）
    { name: &quot;dist&quot;, type: &quot;select&quot;, label: t.dist, value: &quot;60&quot;, options: M.dists.map((x) =&gt; ({ value: String(x), label: lang === &quot;ja&quot; ? `${x}cm` : `${x} cm (${Math.round(x / 2.54)} in)` })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const g = M.use[v.use], dist = Number(v.dist), res = M.res[v.res];
  if (!g || !(dist &gt; 0) || !res) return { status: &quot;error&quot;, lines: [] };
  const min = M.min[g];
  const lines = [t.std(M.names[g], min)];
  // sRGB だけの画面が含む割合（小数1桁に切り捨て。本文の早見表と同じ）
  lines.push(g === &quot;srgb&quot; ? t.srgbAll : t.short(M.names[g], (Math.floor(M.cov[g] * 1000 + 1e-9) / 10).toFixed(1)));
  // 距離: 目安は本文と同じく小数2桁に切り上げ。余裕は切り捨て、不足は切り上げ（甘い方向に丸めない）
  const T = M.t27, Tl = Math.ceil(T * 100 - 1e-9) / 100;
  lines.push(t.target(Tl));
  const meter = { min: 40, max: 100, value: dist, ok: [T, M.max], unit: &quot;cm&quot;, valueLabel: lang === &quot;ja&quot; ? `あなた ${dist}cm` : `You: ${dist} cm`, okLabel: lang === &quot;ja&quot; ? `目安 ${Tl}cm〜` : `Target ${Tl} cm+` };
  if (v.res === &quot;uhd&quot;) lines.push(t.scale);
  if (dist &lt; M.t24) {
    lines.push(t.ng(Math.ceil((M.t24 - dist) * 100) / 100));
    return { status: &quot;ng&quot;, verdict: t.vNg, lines, picks: [], meter };
  }
  // 条件に合う機種: 27インチ・選んだ解像度・合わせる規格の公式値が下限以上
  const picks = Object.keys(M.models).filter((id) =&gt; { const m = M.models[id]; return m.size === 27 &amp;&amp; m.res === res &amp;&amp; meetsGamut(m, g, min); });
  const m = dist - T;
  if (m &lt; 0) {
    lines.push(t.near(Math.ceil(-m * 100) / 100));
    return { status: &quot;cond&quot;, verdict: t.vNear, lines, picks, meter };
  }
  const mm = Math.floor(m * 100) / 100;
  lines.push(mm &lt; 1 ? t.tight(mm) : t.ok(mm));
  return { status: mm &lt; 1 ? &quot;cond&quot; : &quot;ok&quot;, verdict: mm &lt; 1 ? t.vTight : t.vOk, lines, picks, meter };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（build-tool.mjs が結果と URL を表にする）。公開先×解像度×距離
function presets() {
  const out = [];
  for (const use of [&quot;web&quot;, &quot;print&quot;, &quot;video&quot;]) for (const res of [&quot;qhd&quot;, &quot;uhd&quot;]) for (const dist of [&quot;50&quot;, &quot;60&quot;]) out.push({ use, res, dist });
  return out;
}

// 計算ツールのカードに出す仕様（その商品の仕様のうち、この計算で使った値。絞り込みの条件は出さない。2026-10 ユーザー指示）
//   画面サイズと解像度（目安の距離と文字の大きさの計算に使う）、合わせる規格の公式値（色域の判定に使う）
function pickSpecs(id, v, M, lang) {
  const ja = lang === &quot;ja&quot;;
  const m = M.models[id];
  if (!m) return [];
  const px = m.res.replace(&quot;x&quot;, &quot;×&quot;);
  const out = [ja ? `${m.size}インチ・${px}` : `${m.size}-inch, ${px}`];
  const g = M.use[v.use];
  if (g &amp;&amp; typeof m.gamut[g] === &quot;number&quot;) out.push(ja ? `${M.names[g]} ${m.gamut[g]}%（公式値）` : `${M.names[g]} ${m.gamut[g]}% (official)`);
  return out;
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;pills&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;picks-by-where-your-art-goes&quot;&gt;Picks by where your art goes&lt;/h2&gt;
&lt;p&gt;The picks use the makers’ stated values, not coverage measured the same way. One pick per condition, all sold on Amazon.com. The conditions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sold new by Amazon or the maker&lt;/li&gt;
&lt;li&gt;The maker’s spec page shows the same model number as the listing&lt;/li&gt;
&lt;li&gt;At least 100 ratings and 4 stars or more&lt;/li&gt;
&lt;li&gt;Not an import&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Among current models from major brands, each pick is a listing that meets them; when more than one does, it is the cheapest. Check prices on the store.&lt;/p&gt;
&lt;h3 id=&quot;posting-online-27-inch-1440p-srgb-99-or-higher&quot;&gt;Posting online, 27-inch 1440p, sRGB 99% or higher&lt;/h3&gt;
&lt;p&gt;For artists who work mainly in sRGB.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS ProArt PA278QV&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81CFn-NfutL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS ProArt PA278QV&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B088BC5HMM?q=ASUS+ProArt+PA278QV&amp;amp;us=B088BC5HMM&amp;amp;l=en&quot; aria-label=&quot;View ASUS ProArt PA278QV on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Other sizes may share this listing; pick the 27 inch.&lt;/p&gt;
&lt;h3 id=&quot;cinema-video-27-inch-4k-dci-p3-90-or-higher&quot;&gt;Cinema video, 27-inch 4K, DCI-P3 90% or higher&lt;/h3&gt;
&lt;p&gt;For 4K video work.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS ProArt PA279CRV&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/91dkLCfM8dL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS ProArt PA279CRV&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0BQPSX5CR?q=ASUS+ProArt+PA279CRV&amp;amp;us=B0BQPSX5CR&amp;amp;l=en&quot; aria-label=&quot;View ASUS ProArt PA279CRV on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;Renewed units and 2-pack bundles are separate listings; this is the new single unit sold by Amazon.com.&lt;/p&gt;
&lt;h3 id=&quot;print-27-inch-adobe-rgb-99-or-higher&quot;&gt;Print, 27-inch, Adobe RGB 99% or higher&lt;/h3&gt;
&lt;p&gt;For artists printing zines or merch.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS ProArt PA279CRV&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/91dkLCfM8dL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS ProArt PA279CRV&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0BQPSX5CR?q=ASUS+ProArt+PA279CRV&amp;amp;us=B0BQPSX5CR&amp;amp;l=en&quot; aria-label=&quot;View ASUS ProArt PA279CRV on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;27-inch-size-and-resolution&quot;&gt;27-inch size and resolution&lt;/h2&gt;
&lt;p&gt;A bigger screen needs a longer viewing distance. This guide uses the low end of OSHA’s 50 cm to 100 cm range as the target for a 24-inch screen.&lt;/p&gt;
&lt;p&gt;In this calculation, a 27-inch looks no wider than a 24-inch does at 50 cm once you sit 56.62 cm or more from the screen. Right at that distance it is borderline. In inches, the borderline distance is 56.62 cm (22.3 in).&lt;/p&gt;
&lt;p&gt;Between 27-inch 1440p and 4K: 27-inch 1440p keeps text larger than 27-inch 4K at the same scaling. Choose 4K if you will run it at 150% scaling for a finer picture. The sizes below are measured against a 24-inch 1080p screen.&lt;/p&gt;
&lt;p&gt;Against a 24-inch 1080p screen at the same scaling, a 27-inch 1440p screen shows text at 0.85× the size and a 4K one at 0.57×. A 27-inch 4K screen at 150% scaling shows text the same size as a 27-inch 1440p screen at 100%. At 150% scaling, a 4K screen’s workspace works out the same as 1440p at 100%.&lt;/p&gt;
&lt;p&gt;For screen size and distance, see &lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/&quot;&gt;What size monitor should I get?&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For 4K scaling, see the &lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/&quot;&gt;4K monitor guide&lt;/a&gt;. Panel types are covered in the &lt;a href=&quot;https://aulvem.com/blog/2021-03-21-monitor-panel/&quot;&gt;monitor panel guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;how-wide-srgb-adobe-rgb-and-dci-p3-are&quot;&gt;How wide sRGB, Adobe RGB and DCI-P3 are&lt;/h2&gt;
&lt;p&gt;Each standard can show a different range of colors. Worked out from each standard’s primary coordinates, Adobe RGB covers 1.35× the area of sRGB, and DCI-P3 1.36×.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sRGB: the standard default on Windows and most websites&lt;/li&gt;
&lt;li&gt;Adobe RGB: wider in green, and made for print&lt;/li&gt;
&lt;li&gt;DCI-P3: the digital cinema standard, rich in red and green&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both Adobe RGB and DCI-P3 contain every sRGB color. If you only post online, a wide gamut is not required.&lt;/p&gt;
&lt;p&gt;A screen that only covers sRGB holds 74.1% of Adobe RGB’s colors and 73.7% of DCI-P3’s. If you also print or make cinema video, a wide-gamut screen helps.&lt;/p&gt;
&lt;p&gt;An sRGB figure and a DCI-P3 figure are measured against different standards, so you cannot compare them directly. A high DCI-P3 number does not guarantee full sRGB coverage. If you post online too, check the sRGB figure on the spec sheet.&lt;/p&gt;
&lt;h2 id=&quot;telling-coverage-from-ratio&quot;&gt;Telling coverage from ratio&lt;/h2&gt;
&lt;p&gt;Coverage is the share of a standard’s colors that the screen can show. Ratio compares the area of the screen’s gamut with the standard’s.&lt;/p&gt;
&lt;p&gt;Worked out from each standard’s primary coordinates, DCI-P3 is 100.5% the size of Adobe RGB, yet it holds only 88.2% of Adobe RGB’s colors. A ratio over 100% does not mean 100% coverage.&lt;/p&gt;
&lt;p&gt;On a spec sheet, check whether the figure says “coverage” or “ratio”. A figure that doesn’t say coverage or ratio can’t be compared for coverage.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;what-should-i-look-at-when-choosing-a-monitor-for-digital-art&quot;&gt;What should I look at when choosing a monitor for digital art?&lt;/h3&gt;
&lt;p&gt;Look at the color gamut first. By this guide’s rule, choose sRGB 99%+ for posting online, Adobe RGB 99%+ for print, and DCI-P3 90%+ for cinema video.&lt;/p&gt;
&lt;p&gt;Then pick size and resolution.&lt;/p&gt;
&lt;h3 id=&quot;do-i-need-an-adobe-rgb-monitor-for-illustration&quot;&gt;Do I need an Adobe RGB monitor for illustration?&lt;/h3&gt;
&lt;p&gt;Not if you never print. Worked out from each standard’s primary coordinates, both Adobe RGB and DCI-P3 contain every sRGB color.&lt;/p&gt;
&lt;p&gt;For posting online only, an sRGB monitor is enough.&lt;/p&gt;
&lt;h3 id=&quot;what-is-the-difference-between-gamut-coverage-and-gamut-ratio&quot;&gt;What is the difference between gamut coverage and gamut ratio?&lt;/h3&gt;
&lt;p&gt;Coverage is how much of a standard’s colors the screen can show. Ratio compares the sizes of the two color areas.&lt;/p&gt;
&lt;p&gt;Worked out from each standard’s primary coordinates, DCI-P3 is 100.5% the size of Adobe RGB, yet it holds only 88.2% of Adobe RGB’s colors. A ratio over 100% does not mean 100% coverage.&lt;/p&gt;
&lt;h3 id=&quot;which-gamut-is-best-for-printing&quot;&gt;Which gamut is best for printing?&lt;/h3&gt;
&lt;p&gt;By this guide’s rule, choose Adobe RGB 99%+. On the standards’ primaries, sRGB holds 74.1% of Adobe RGB’s colors.&lt;/p&gt;
&lt;h3 id=&quot;is-a-27-inch-monitor-too-big-for-drawing&quot;&gt;Is a 27-inch monitor too big for drawing?&lt;/h3&gt;
&lt;p&gt;In this calculation, a 27-inch looks no wider than a 24-inch does at 50 cm once you sit 56.62 cm or more from the screen. Right at that distance it is borderline.&lt;/p&gt;
&lt;h3 id=&quot;1440p-or-4k-for-a-drawing-monitor&quot;&gt;1440p or 4K for a drawing monitor?&lt;/h3&gt;
&lt;p&gt;Between 27-inch screens, 27-inch 1440p keeps text larger than 27-inch 4K at the same scaling. Choose 4K if you will run it at 150% scaling for a finer picture.&lt;/p&gt;
&lt;p&gt;Against a 24-inch 1080p screen at the same scaling, a 27-inch 1440p screen shows text at 0.85× the size and a 4K one at 0.57×. In this calculation, a 27-inch 4K screen at 150% scaling shows text the same size as a 27-inch 1440p screen at 100%.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Candidates come from the makers’ official specs as of October 2026. None were tested in person. Gamut sizes are worked out from each standard’s primary coordinates. Monitor gamuts use the official figures as listed.&lt;/p&gt;&lt;p&gt;Sources: &lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;OSHA&lt;/a&gt; (preferred viewing distance) ／ &lt;a href=&quot;https://www.benq.com/en-us/knowledge-center/knowledge/projector-color-coverage-and-color-gamuts.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;BenQ&lt;/a&gt; (coverage and ratio) ／ &lt;a href=&quot;https://www.benq.com/en-us/knowledge-center/knowledge/what-is-dci-p-color-space.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;BenQ&lt;/a&gt; (Adobe RGB and DCI-P3 uses) ／ &lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;W3C sRGB&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Gamut: each standard is the triangle joining its red, green and blue primaries on the CIE 1931 xy chart (sRGB from W3C, Adobe RGB from Adobe’s spec, DCI-P3 from the ICC registry). Areas use the shoelace formula.&lt;/li&gt;
&lt;li&gt;Ratio = area(A) ÷ area(B). Coverage = area where A and B overlap ÷ area(B) (overlap by convex polygon clipping). Example: DCI-P3 is 100.5% of Adobe RGB by ratio but covers 88.2% of it. Percentages are rounded down to one decimal; multiples are rounded to two decimals.&lt;/li&gt;
&lt;li&gt;The math compares the standards’ triangles. Models’ actual primaries aren’t published, so model gamuts are not calculated; each maker’s official figure is used as is.&lt;/li&gt;
&lt;li&gt;Where art goes → standard: online is sRGB, print is Adobe RGB, cinema video is DCI-P3 (per maker and standards-body docs). The minimums (sRGB 99%, Adobe RGB 99%, DCI-P3 90%) are this guide’s rule.&lt;/li&gt;
&lt;li&gt;27-inch target distance = 50 cm × 27-inch 1440p/4K viewable width (59.674 cm) ÷ 23.8-inch viewable width (52.704 cm): the same angle as a 24-inch at OSHA’s lower end, 50 cm. Rounded up to two decimals (56.62 cm (22.3 in)). This is this guide’s own figure, not an official standard.&lt;/li&gt;
&lt;li&gt;Text size ratio = pixel pitch ÷ the 23.8-inch 1080p pitch (0.2745 mm). 27-inch 4K (0.1554 mm) × 1.5 = 27-inch 1440p (0.2331 mm), so 4K at 150% shows text the same size as 1440p at 100%.&lt;/li&gt;
&lt;li&gt;Specs are makers’ official figures (check dates in each fact). No units were tested. Picks: new on Amazon, 100+ ratings, 4+ stars, no Sakura Checker warning, not an import, cheapest with shipping.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;






























































































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;sRGB red primary chromaticity x&lt;/td&gt;&lt;td&gt;0.64 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sRGB red primary chromaticity y&lt;/td&gt;&lt;td&gt;0.33 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sRGB green primary chromaticity x&lt;/td&gt;&lt;td&gt;0.3 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sRGB green primary chromaticity y&lt;/td&gt;&lt;td&gt;0.6 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sRGB blue primary chromaticity x&lt;/td&gt;&lt;td&gt;0.15 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sRGB blue primary chromaticity y&lt;/td&gt;&lt;td&gt;0.06 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB (1998) red primary chromaticity x&lt;/td&gt;&lt;td&gt;0.64 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB (1998) red primary chromaticity y&lt;/td&gt;&lt;td&gt;0.33 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB (1998) green primary chromaticity x&lt;/td&gt;&lt;td&gt;0.21 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB (1998) green primary chromaticity y&lt;/td&gt;&lt;td&gt;0.71 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB (1998) blue primary chromaticity x&lt;/td&gt;&lt;td&gt;0.15 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB (1998) blue primary chromaticity y&lt;/td&gt;&lt;td&gt;0.06 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI-P3 red primary chromaticity x&lt;/td&gt;&lt;td&gt;0.68 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI-P3 red primary chromaticity y&lt;/td&gt;&lt;td&gt;0.32 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI-P3 green primary chromaticity x&lt;/td&gt;&lt;td&gt;0.265 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI-P3 green primary chromaticity y&lt;/td&gt;&lt;td&gt;0.69 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI-P3 blue primary chromaticity x&lt;/td&gt;&lt;td&gt;0.15 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI-P3 blue primary chromaticity y&lt;/td&gt;&lt;td&gt;0.06 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;D65 white point chromaticity x&lt;/td&gt;&lt;td&gt;0.3127 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;D65 white point chromaticity y&lt;/td&gt;&lt;td&gt;0.329 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.w3.org/Graphics/Color/sRGB.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;w3.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI white point chromaticity x (theatrical DCI-P3)&lt;/td&gt;&lt;td&gt;0.314 CIE 1931 x&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI white point chromaticity y (theatrical DCI-P3)&lt;/td&gt;&lt;td&gt;0.351 CIE 1931 y&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://registry.color.org/rgb-registry/dcip3&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;registry.color.org&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Meaning of coverage (maker docs)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/eizolibrary/other/itmedia02_01/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Meaning of area ratio (maker docs)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/eizolibrary/other/itmedia02_01/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB characteristic (EIZO)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/eizolibrary/other/itmedia02_01/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB vs DCI-P3 uses (BenQ)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/knowledge-center/knowledge/what-is-dci-p-color-space.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt; BenQ: DCI-P3 optimized for digital cinema and screen viewing; Adobe RGB focuses&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Adobe RGB definition (Adobe spec)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Role of sRGB&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/eizolibrary/other/itmedia02_01/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DCI-P3 definition&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/support/glossary/ta/dci_p3/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Meaning of ΔE (EIZO)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/eizolibrary/color_management/coloredge-factory-report/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ΔE guideline (BenQ)&lt;/td&gt;&lt;td&gt;(stated in a Japanese-language source)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/knowledge-center/knowledge/what-is-delta-e.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt; BenQ knowledge center: Delta E ≤2 excellent (AQCOLOR), ≤3 professional, 3 differ&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lower end of OSHA’s preferred range&lt;/td&gt;&lt;td&gt;50 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;osha.gov&lt;/a&gt; preferred viewing distance is between 20 and 40 inches (50 and 100 cm) from the&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Upper end of OSHA’s preferred range&lt;/td&gt;&lt;td&gt;100 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;osha.gov&lt;/a&gt; same sentence (20–40 in, 50–100 cm)&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MHLW minimum eye-to-screen distance&lt;/td&gt;&lt;td&gt;40 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.mhlw.go.jp/content/000539604.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;mhlw.go.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch QHD/4K viewable width&lt;/td&gt;&lt;td&gt;59.674 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2537948-dell-s2725ds-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2725DS Active Area Horizontal 596.74 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 1440p pixel pitch&lt;/td&gt;&lt;td&gt;0.2331 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2537948-dell-s2725ds-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2725DS Pixel pitch 0.2331 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 4K pixel pitch&lt;/td&gt;&lt;td&gt;0.1554 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual3779507-dell-s-27-4k-monitor-s2725qs-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2725QS Pixel pitch 0.1554 mm Table 7&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;23.8-inch viewable width&lt;/td&gt;&lt;td&gt;52.704 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2425H Active Area Horizontal 527.04 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;23.8-inch 1080p pixel pitch&lt;/td&gt;&lt;td&gt;0.2745 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2425H Pixel pitch 0.2745 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS ProArt PA279CRV official sRGB figure&lt;/td&gt;&lt;td&gt;100 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/jp/displays-desktops/monitors/proart/proart-display-pa279crv/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS ProArt PA279CRV official Adobe RGB figure&lt;/td&gt;&lt;td&gt;99 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/jp/displays-desktops/monitors/proart/proart-display-pa279crv/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS ProArt PA279CRV official DCI-P3 (P3) figure&lt;/td&gt;&lt;td&gt;99 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/jp/displays-desktops/monitors/proart/proart-display-pa279crv/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ SW272Q official sRGB figure&lt;/td&gt;&lt;td&gt;100 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/creative-pro/sw272q/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ SW272Q official Adobe RGB figure&lt;/td&gt;&lt;td&gt;99 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/creative-pro/sw272q/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ SW272Q official DCI-P3 (P3) figure&lt;/td&gt;&lt;td&gt;98 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/creative-pro/sw272q/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ SW272U official sRGB figure&lt;/td&gt;&lt;td&gt;100 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/creative-pro/sw272u/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ SW272U official Adobe RGB figure&lt;/td&gt;&lt;td&gt;99 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/creative-pro/sw272u/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ SW272U official DCI-P3 (P3) figure&lt;/td&gt;&lt;td&gt;99 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/creative-pro/sw272u/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ SW242Q official sRGB figure&lt;/td&gt;&lt;td&gt;100 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/creative-pro/sw242q/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ SW242Q official Adobe RGB figure&lt;/td&gt;&lt;td&gt;99 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/creative-pro/sw242q/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ SW242Q official DCI-P3 (P3) figure&lt;/td&gt;&lt;td&gt;98 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/creative-pro/sw242q/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;EIZO ColorEdge CG2700S official Adobe RGB figure&lt;/td&gt;&lt;td&gt;99 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/products/ce/cg2700s/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;EIZO ColorEdge CG2700S official DCI-P3 (P3) figure&lt;/td&gt;&lt;td&gt;98 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.eizo.co.jp/products/ce/cg2700s/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;eizo.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell U2723QE official sRGB figure&lt;/td&gt;&lt;td&gt;100 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/ja-jp/shop/dell-%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB-%E3%83%8F%E3%82%A4%E3%82%A8%E3%83%B3%E3%83%89-%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-27-4k-usb-c-%E3%83%8F%E3%83%96-%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-u2723qe/apd/210-bdzo/%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC%E7%94%A8%E5%91%A8%E8%BE%BA%E6%A9%9F%E5%99%A8&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell U2723QE official DCI-P3 (P3) figure&lt;/td&gt;&lt;td&gt;98 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/ja-jp/shop/dell-%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB-%E3%83%8F%E3%82%A4%E3%82%A8%E3%83%B3%E3%83%89-%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-27-4k-usb-c-%E3%83%8F%E3%83%96-%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-u2723qe/apd/210-bdzo/%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC%E7%94%A8%E5%91%A8%E8%BE%BA%E6%A9%9F%E5%99%A8&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 27UP850-W official DCI-P3 (P3) figure&lt;/td&gt;&lt;td&gt;95 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/jp/monitors/4k-5k-monitors/27up850-w/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 27U711B-B official DCI-P3 (P3) figure&lt;/td&gt;&lt;td&gt;90 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/jp/monitors/4k-5k-monitors/27u711b-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell S2725DSM official sRGB figure&lt;/td&gt;&lt;td&gt;99 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/ja-jp/shop/monitors/apd/dell-27-plus-qhd%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-s2725dsm/s2725dsm/-&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ PD2732U official sRGB figure&lt;/td&gt;&lt;td&gt;100 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/ja-jp/monitor/creative-pro/pd2732u/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ PD2732U official Adobe RGB figure&lt;/td&gt;&lt;td&gt;99 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/ja-jp/monitor/creative-pro/pd2732u/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ PD2732U official DCI-P3 (P3) figure&lt;/td&gt;&lt;td&gt;99 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/ja-jp/monitor/creative-pro/pd2732u/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS ProArt PA278QV official sRGB figure&lt;/td&gt;&lt;td&gt;100 %&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/proart/proart-display-pa278qv/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Which gamut and size fit your art: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;





































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Web and social, 1440p, 50 cm (20 in)&lt;/td&gt;&lt;td&gt;△ A little close for a 27-inch. Standard to match: sRGB (models listing 99% or more). Adobe RGB and DCI-P3 screens also contain every sRGB color. 27-inch target distance: 56.62 cm. Your distance is 6.62 cm closer than the 27-inch target. A 24-inch class screen meets it&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-17-iilustration-monitor/?illust-monitor-calc-use=web&amp;amp;illust-monitor-calc-res=qhd&amp;amp;illust-monitor-calc-dist=50#illust-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Web and social, 1440p, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;✓ A 27-inch fits your distance. Standard to match: sRGB (models listing 99% or more). Adobe RGB and DCI-P3 screens also contain every sRGB color. 27-inch target distance: 56.62 cm. Your distance meets the target (3.38 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-17-iilustration-monitor/?illust-monitor-calc-use=web&amp;amp;illust-monitor-calc-res=qhd&amp;amp;illust-monitor-calc-dist=60#illust-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Web and social, 4K, 50 cm (20 in)&lt;/td&gt;&lt;td&gt;△ A little close for a 27-inch. Standard to match: sRGB (models listing 99% or more). Adobe RGB and DCI-P3 screens also contain every sRGB color. 27-inch target distance: 56.62 cm. At 150% scaling, 4K shows text the same size as 1440p at 100%. Your distance is 6.62 cm closer than the 27-inch target. A 24-inch class screen meets it&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-17-iilustration-monitor/?illust-monitor-calc-use=web&amp;amp;illust-monitor-calc-res=uhd&amp;amp;illust-monitor-calc-dist=50#illust-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Web and social, 4K, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;✓ A 27-inch fits your distance. Standard to match: sRGB (models listing 99% or more). Adobe RGB and DCI-P3 screens also contain every sRGB color. 27-inch target distance: 56.62 cm. At 150% scaling, 4K shows text the same size as 1440p at 100%. Your distance meets the target (3.38 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-17-iilustration-monitor/?illust-monitor-calc-use=web&amp;amp;illust-monitor-calc-res=uhd&amp;amp;illust-monitor-calc-dist=60#illust-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Print, 1440p, 50 cm (20 in)&lt;/td&gt;&lt;td&gt;△ A little close for a 27-inch. Standard to match: Adobe RGB (models listing 99% or more). A screen that only covers sRGB holds 74.1% of Adobe RGB’s colors. 27-inch target distance: 56.62 cm. Your distance is 6.62 cm closer than the 27-inch target. A 24-inch class screen meets it&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-17-iilustration-monitor/?illust-monitor-calc-use=print&amp;amp;illust-monitor-calc-res=qhd&amp;amp;illust-monitor-calc-dist=50#illust-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Print, 1440p, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;✓ A 27-inch fits your distance. Standard to match: Adobe RGB (models listing 99% or more). A screen that only covers sRGB holds 74.1% of Adobe RGB’s colors. 27-inch target distance: 56.62 cm. Your distance meets the target (3.38 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-17-iilustration-monitor/?illust-monitor-calc-use=print&amp;amp;illust-monitor-calc-res=qhd&amp;amp;illust-monitor-calc-dist=60#illust-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Print, 4K, 50 cm (20 in)&lt;/td&gt;&lt;td&gt;△ A little close for a 27-inch. Standard to match: Adobe RGB (models listing 99% or more). A screen that only covers sRGB holds 74.1% of Adobe RGB’s colors. 27-inch target distance: 56.62 cm. At 150% scaling, 4K shows text the same size as 1440p at 100%. Your distance is 6.62 cm closer than the 27-inch target. A 24-inch class screen meets it&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-17-iilustration-monitor/?illust-monitor-calc-use=print&amp;amp;illust-monitor-calc-res=uhd&amp;amp;illust-monitor-calc-dist=50#illust-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Print, 4K, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;✓ A 27-inch fits your distance. Standard to match: Adobe RGB (models listing 99% or more). A screen that only covers sRGB holds 74.1% of Adobe RGB’s colors. 27-inch target distance: 56.62 cm. At 150% scaling, 4K shows text the same size as 1440p at 100%. Your distance meets the target (3.38 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-17-iilustration-monitor/?illust-monitor-calc-use=print&amp;amp;illust-monitor-calc-res=uhd&amp;amp;illust-monitor-calc-dist=60#illust-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cinema video, 1440p, 50 cm (20 in)&lt;/td&gt;&lt;td&gt;△ A little close for a 27-inch. Standard to match: DCI-P3 (models listing 90% or more). A screen that only covers sRGB holds 73.7% of DCI-P3’s colors. 27-inch target distance: 56.62 cm. Your distance is 6.62 cm closer than the 27-inch target. A 24-inch class screen meets it&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-17-iilustration-monitor/?illust-monitor-calc-use=video&amp;amp;illust-monitor-calc-res=qhd&amp;amp;illust-monitor-calc-dist=50#illust-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cinema video, 1440p, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;✓ A 27-inch fits your distance. Standard to match: DCI-P3 (models listing 90% or more). A screen that only covers sRGB holds 73.7% of DCI-P3’s colors. 27-inch target distance: 56.62 cm. Your distance meets the target (3.38 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-17-iilustration-monitor/?illust-monitor-calc-use=video&amp;amp;illust-monitor-calc-res=qhd&amp;amp;illust-monitor-calc-dist=60#illust-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cinema video, 4K, 50 cm (20 in)&lt;/td&gt;&lt;td&gt;△ A little close for a 27-inch. Standard to match: DCI-P3 (models listing 90% or more). A screen that only covers sRGB holds 73.7% of DCI-P3’s colors. 27-inch target distance: 56.62 cm. At 150% scaling, 4K shows text the same size as 1440p at 100%. Your distance is 6.62 cm closer than the 27-inch target. A 24-inch class screen meets it&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-17-iilustration-monitor/?illust-monitor-calc-use=video&amp;amp;illust-monitor-calc-res=uhd&amp;amp;illust-monitor-calc-dist=50#illust-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cinema video, 4K, 60 cm (24 in)&lt;/td&gt;&lt;td&gt;✓ A 27-inch fits your distance. Standard to match: DCI-P3 (models listing 90% or more). A screen that only covers sRGB holds 73.7% of DCI-P3’s colors. 27-inch target distance: 56.62 cm. At 150% scaling, 4K shows text the same size as 1440p at 100%. Your distance meets the target (3.38 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-17-iilustration-monitor/?illust-monitor-calc-use=video&amp;amp;illust-monitor-calc-res=uhd&amp;amp;illust-monitor-calc-dist=60#illust-monitor-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>monitor</category></item><item><title>What Size Monitor Should I Get? 24 vs 27 vs 32-Inch Sizes</title><link>https://aulvem.com/blog/2021-03-15-choose-monitor/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-15-choose-monitor/</guid><description>Pick a monitor size by how far your eyes are from the screen. In this calculation, a 24-inch meets the target from 50 cm eye-to-screen, a 27-inch from 56.73 cm, and a 32-inch from 66.22 cm. Right at those distances it is borderline. Worked out from official specs as of October 2026.</description><pubDate>Mon, 15 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Pick a monitor size by how far your eyes are from the screen, starting from 50 cm. In this calculation, a 24-inch meets the target from 50 cm eye-to-screen, a 27-inch from 56.73 cm, and a 32-inch from 66.22 cm. Right at those distances it is borderline.&lt;/p&gt;
&lt;p&gt;Bigger screens mean sitting farther back. If you want two screens, check your desk width too.&lt;/p&gt;
&lt;h2 id=&quot;screen-size-by-eye-to-screen-distance&quot;&gt;Screen size by eye-to-screen distance&lt;/h2&gt;
&lt;p&gt;Find your distance in the table to see the largest size that meets the target.
Assumptions: distance from eyes to screen surface. For 27- and 32-inch, the target is where the screen’s width looks as wide as a 24-inch does at 50 cm&lt;/p&gt;








































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Eyes to screen&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;24-inch&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;27-inch&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;32-inch&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Largest size that meets the target&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;45 cm (17.7 in)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Closer than the target (below OSHA’s preferred range; meets Japan’s 40 cm guideline)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Closer than the target&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Closer than the target&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;None (even a 24-inch is closer than the target)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;50 cm (19.7 in)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Meets the target (borderline, 0 cm to spare)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Closer than the target&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Closer than the target&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;24-inch (23.8”)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;60 cm (23.6 in)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Meets the target&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Meets the target&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Closer than the target&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;27-inch&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;70 cm (27.6 in)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Meets the target&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Meets the target&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Meets the target&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;32-inch (31.5”)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;“Closer” means closer than the target. Closer than 50 cm is closer than the target even for a 24-inch, so move your seat or the screen back.&lt;/p&gt;
&lt;h2 id=&quot;how-to-measure-your-distance-and-a-calculator&quot;&gt;How to measure your distance, and a calculator&lt;/h2&gt;
&lt;p&gt;Measure from your eyes to the screen with a tape measure.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Sit the way you sit for the longest.&lt;/strong&gt; Leaning in or sitting back changes the distance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Measure from your eyes to the screen surface.&lt;/strong&gt; With only a laptop, measure to where the monitor will sit&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Choosing a desk first?&lt;/strong&gt; Work it out from the desk depth, as in &lt;a href=&quot;https://aulvem.com/blog/monitor-small-desk/&quot;&gt;Does a 27-inch monitor fit a 60 cm deep desk?&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For example, in this calculation a 27-inch meets its 56.73 cm target at 60 cm, but a 32-inch falls short of its 66.22 cm target.&lt;/p&gt;
&lt;section id=&quot;monitor-size-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;monitor-size-calc-title&quot;&gt; &lt;h3 id=&quot;monitor-size-calc-title&quot;&gt;Which monitor size fits your distance&lt;/h3&gt; &lt;p&gt;Pick a screen size, resolution and your eyes-to-screen distance to see whether it meets this article&amp;#39;s target, plus one monitor that fits. For two screens, pick your desk width too.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;s30gd&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung S30GD (LS24D304GANXZA)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61ReaNcCHwL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung S30GD (LS24D304GANXZA)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK468KVS?q=Samsung+S30GD+%28LS24D304GANXZA%29&amp;amp;us=B0DK468KVS&amp;amp;l=en&quot; aria-label=&quot;View Samsung S30GD (LS24D304GANXZA) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;s2725ds&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell S2725DS&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71JhPBz-d2L._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell S2725DS&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0D3FGFPPB?q=Dell+S2725DS&amp;amp;us=B0D3FGFPPB&amp;amp;l=en&quot; aria-label=&quot;View Dell S2725DS on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;vg27aq3a&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS VG27AQ3A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71awxc1RPRL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS VG27AQ3A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0BZR9TMBJ?q=ASUS+VG27AQ3A&amp;amp;us=B0BZR9TMBJ&amp;amp;l=en&quot; aria-label=&quot;View ASUS VG27AQ3A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;27us500&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG 27US500-W&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71ghM+g3BXL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG 27US500-W&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0D9R7Q449?q=LG+27US500-W&amp;amp;us=B0D9R7Q449&amp;amp;l=en&quot; aria-label=&quot;View LG 27US500-W on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;s2725qs&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell S2725QS&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61pF09VcRPL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell S2725QS&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F1GF1KFC?q=Dell+S2725QS&amp;amp;us=B0F1GF1KFC&amp;amp;l=en&quot; aria-label=&quot;View Dell S2725QS on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;s2725qc&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell S2725QC&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71lQNQPr+OL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell S2725QC&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0GR4NR53Y?q=Dell+S2725QC&amp;amp;us=B0F1GFD44G&amp;amp;l=en&quot; aria-label=&quot;View Dell S2725QC on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;vp327q&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS VP327Q&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81p0NWfCISL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS VP327Q&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C7G6F8BY?q=ASUS+VP327Q&amp;amp;us=B0C7G6F8BY&amp;amp;l=en&quot; aria-label=&quot;View ASUS VP327Q on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;s3225qs&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Dell S3225QS&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71pxbqJ34CL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Dell S3225QS&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0F1GD9YFN?q=Dell+S3225QS&amp;amp;us=B0F1GD9YFN&amp;amp;l=en&quot; aria-label=&quot;View Dell S3225QS on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;32ur550k&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG 32UR550K-B&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81jl0VvT1KL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG 32UR550K-B&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0FLLGSJFT?q=LG+32UR550K-B&amp;amp;us=B0FLLGSJFT&amp;amp;l=en&quot; aria-label=&quot;View LG 32UR550K-B on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;div data-pick=&quot;32u631a&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG 32U631A-B&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71o7A0jJ-pL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG 32U631A-B&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DS2SL7L1?q=LG+32U631A-B&amp;amp;us=B0DS2SL7L1&amp;amp;l=en&quot; aria-label=&quot;View LG 32U631A-B on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the distance table and the two-screen desk table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;base&quot;:50,&quot;baseW&quot;:52.704,&quot;baseH&quot;:29.646,&quot;resolutions&quot;:[{&quot;id&quot;:&quot;1920x1080&quot;,&quot;label&quot;:&quot;1920×1080（16:9）&quot;,&quot;w&quot;:1920,&quot;h&quot;:1080},{&quot;id&quot;:&quot;2560x1440&quot;,&quot;label&quot;:&quot;2560×1440（16:9）&quot;,&quot;w&quot;:2560,&quot;h&quot;:1440},{&quot;id&quot;:&quot;3840x2160&quot;,&quot;label&quot;:&quot;3840×2160（16:9）&quot;,&quot;w&quot;:3840,&quot;h&quot;:2160},{&quot;id&quot;:&quot;1920x1200&quot;,&quot;label&quot;:&quot;1920×1200（16:10）&quot;,&quot;w&quot;:1920,&quot;h&quot;:1200},{&quot;id&quot;:&quot;3440x1440&quot;,&quot;label&quot;:&quot;3440×1440（21:9）&quot;,&quot;w&quot;:3440,&quot;h&quot;:1440}],&quot;bezel&quot;:[1.06,1.71],&quot;official&quot;:[{&quot;diag&quot;:23.8,&quot;w&quot;:52.704,&quot;h&quot;:29.646},{&quot;diag&quot;:27,&quot;w&quot;:59.789,&quot;h&quot;:33.631},{&quot;diag&quot;:31.5,&quot;w&quot;:69.8,&quot;h&quot;:39.3}],&quot;targets&quot;:{&quot;24&quot;:50,&quot;27&quot;:56.72150121432909,&quot;32&quot;:66.21888281724347},&quot;classes&quot;:{&quot;24-fhd&quot;:[&quot;gw2490p&quot;,&quot;gw2490&quot;,&quot;s30gd&quot;,&quot;s2425h&quot;,&quot;p2425h&quot;,&quot;24mr400&quot;,&quot;va24ehf&quot;,&quot;xub2493hs&quot;,&quot;24g15n&quot;,&quot;s2425hsm&quot;,&quot;24g42e&quot;],&quot;27-qhd&quot;:[&quot;s2725dsm&quot;,&quot;s2725ds&quot;,&quot;vg27aq3a&quot;,&quot;mag275qf&quot;],&quot;27-uhd&quot;:[&quot;27u711b&quot;,&quot;27us500&quot;,&quot;s2725qs&quot;,&quot;s2725qc&quot;,&quot;va27ucps&quot;,&quot;vy27uq&quot;],&quot;32-qhd&quot;:[&quot;32u631a&quot;,&quot;32g620b&quot;,&quot;xb3270qsu&quot;,&quot;vs3225-2k&quot;,&quot;gw3290qt&quot;],&quot;32-uhd&quot;:[&quot;s3225qs&quot;,&quot;vp327q&quot;,&quot;32u701b&quot;,&quot;32u720a&quot;,&quot;32ur550k&quot;,&quot;ma320u&quot;]},&quot;widths&quot;:{&quot;s2425h&quot;:53.764,&quot;p2425h&quot;:53.864,&quot;24mr400&quot;:54,&quot;gw2490&quot;:54,&quot;va24ehf&quot;:53.95,&quot;24g15n&quot;:53.97,&quot;xub2493hs&quot;:53.95,&quot;s30gd&quot;:54.07,&quot;gw2490p&quot;:54.3,&quot;s2725h&quot;:60.969,&quot;p2725h&quot;:61.068,&quot;s2725ds&quot;:61.134,&quot;27mr400&quot;:61.17,&quot;gw2790&quot;:61.2,&quot;vg27aq3a&quot;:61.5,&quot;mag275qf&quot;:61.33,&quot;s2725qs&quot;:61.154,&quot;27u711b&quot;:61.4,&quot;27us500&quot;:61.4,&quot;s3225qs&quot;:71.254,&quot;vp327q&quot;:71.46,&quot;32u701b&quot;:71.4,&quot;s2725dsm&quot;:61.134,&quot;32u631a&quot;:71.4,&quot;32g620b&quot;:71.3,&quot;gw3290qt&quot;:71.46,&quot;ma320u&quot;:71.45},&quot;dists&quot;:[45,50,55,60,65,70,75,80,85,90,95,100],&quot;desks&quot;:[100,110,120,130,140,150],&quot;buy&quot;:{&quot;s30gd&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Samsung S30GD (LS24D304GANXZA)&quot;,&quot;en&quot;:&quot;Samsung S30GD (LS24D304GANXZA)&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DK468KVS&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DK468KVS&quot;,&quot;asinUS&quot;:&quot;B0DK468KVS&quot;,&quot;title&quot;:&quot;Samsung S30GD (LS24D304GANXZA)&quot;,&quot;searchQuery&quot;:&quot;Samsung S30GD (LS24D304GANXZA)&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61ReaNcCHwL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:0},&quot;gw2490p&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;BenQ GW2490P&quot;,&quot;en&quot;:&quot;BenQ GW2490P&quot;,&quot;jp&quot;:&quot;B0H8RQ82WJ&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0H8RQ82WJ&quot;,&quot;title&quot;:&quot;BenQ GW2490P&quot;,&quot;searchQuery&quot;:&quot;BenQ GW2490P&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61tpREJTdkL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4544438017231&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:0},&quot;s2725ds&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2725DS&quot;,&quot;en&quot;:&quot;Dell S2725DS&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0D3FGFPPB&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0D3FGFPPB&quot;,&quot;asinUS&quot;:&quot;B0D3FGFPPB&quot;,&quot;title&quot;:&quot;Dell S2725DS&quot;,&quot;searchQuery&quot;:&quot;Dell S2725DS&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71JhPBz-d2L._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:4},&quot;s2725dsm&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2725DSM&quot;,&quot;en&quot;:&quot;Dell S2725DSM&quot;,&quot;jp&quot;:&quot;B0GR4ZZ32S&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GR4ZZ32S&quot;,&quot;title&quot;:&quot;Dell S2725DSM&quot;,&quot;searchQuery&quot;:&quot;Dell S2725DSM&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71WDCzfL7CL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4573661274722&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:2},&quot;vg27aq3a&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS VG27AQ3A&quot;,&quot;en&quot;:&quot;ASUS VG27AQ3A&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0BZR9TMBJ&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0BZR9TMBJ&quot;,&quot;asinUS&quot;:&quot;B0BZR9TMBJ&quot;,&quot;title&quot;:&quot;ASUS VG27AQ3A&quot;,&quot;searchQuery&quot;:&quot;ASUS VG27AQ3A&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71awxc1RPRL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:3},&quot;27u711b&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG 27U711B-B&quot;,&quot;en&quot;:&quot;LG 27U711B-B&quot;,&quot;jp&quot;:&quot;B0GYPVGG2D&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GYPVGG2D&quot;,&quot;title&quot;:&quot;LG 27U711B-B&quot;,&quot;searchQuery&quot;:&quot;LG 27U711B-B&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71NDGee5qbL._AC_SL320_.jpg&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:1},&quot;27us500&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG 27US500-W&quot;,&quot;en&quot;:&quot;LG 27US500-W&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0D9R7Q449&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0D9R7Q449&quot;,&quot;asinUS&quot;:&quot;B0D9R7Q449&quot;,&quot;title&quot;:&quot;LG 27US500-W&quot;,&quot;searchQuery&quot;:&quot;LG 27US500-W&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71ghM+g3BXL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:1},&quot;s2725qs&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2725QS&quot;,&quot;en&quot;:&quot;Dell S2725QS&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F1GF1KFC&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F1GF1KFC&quot;,&quot;asinUS&quot;:&quot;B0F1GF1KFC&quot;,&quot;title&quot;:&quot;Dell S2725QS&quot;,&quot;searchQuery&quot;:&quot;Dell S2725QS&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61pF09VcRPL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:7},&quot;s2725qc&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S2725QC&quot;,&quot;en&quot;:&quot;Dell S2725QC&quot;,&quot;jp&quot;:&quot;B0GR4NR53Y&quot;,&quot;us&quot;:&quot;B0F1GFD44G&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0GR4NR53Y&quot;,&quot;asinUS&quot;:&quot;B0F1GFD44G&quot;,&quot;title&quot;:&quot;Dell S2725QC&quot;,&quot;searchQuery&quot;:&quot;Dell S2725QC&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71y4hLcha6L._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4582724747370&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0GR4NR53Y&quot;,&quot;asinUS&quot;:&quot;B0F1GFD44G&quot;,&quot;title&quot;:&quot;Dell S2725QC&quot;,&quot;searchQuery&quot;:&quot;Dell S2725QC&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71lQNQPr+OL._AC_SL320_.jpg&quot;}},&quot;rank_jp&quot;:3,&quot;rank_us&quot;:9},&quot;vp327q&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;ASUS VP327Q&quot;,&quot;en&quot;:&quot;ASUS VP327Q&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0C7G6F8BY&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0C7G6F8BY&quot;,&quot;asinUS&quot;:&quot;B0C7G6F8BY&quot;,&quot;title&quot;:&quot;ASUS VP327Q&quot;,&quot;searchQuery&quot;:&quot;ASUS VP327Q&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81p0NWfCISL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:5},&quot;s3225qs&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;Dell S3225QS&quot;,&quot;en&quot;:&quot;Dell S3225QS&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0F1GD9YFN&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0F1GD9YFN&quot;,&quot;asinUS&quot;:&quot;B0F1GD9YFN&quot;,&quot;title&quot;:&quot;Dell S3225QS&quot;,&quot;searchQuery&quot;:&quot;Dell S3225QS&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71pxbqJ34CL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:8},&quot;32ur550k&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG 32UR550K-B&quot;,&quot;en&quot;:&quot;LG 32UR550K-B&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0FLLGSJFT&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0FLLGSJFT&quot;,&quot;asinUS&quot;:&quot;B0FLLGSJFT&quot;,&quot;title&quot;:&quot;LG 32UR550K-B&quot;,&quot;searchQuery&quot;:&quot;LG 32UR550K-B&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/81jl0VvT1KL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:6},&quot;32u631a&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;LG 32U631A-B&quot;,&quot;en&quot;:&quot;LG 32U631A-B&quot;,&quot;jp&quot;:null,&quot;us&quot;:&quot;B0DS2SL7L1&quot;,&quot;cards&quot;:{&quot;ja&quot;:null,&quot;en&quot;:{&quot;asin&quot;:&quot;B0DS2SL7L1&quot;,&quot;asinUS&quot;:&quot;B0DS2SL7L1&quot;,&quot;title&quot;:&quot;LG 32U631A-B&quot;,&quot;searchQuery&quot;:&quot;LG 32U631A-B&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/71o7A0jJ-pL._AC_SL320_.jpg&quot;}},&quot;rank_us&quot;:2},&quot;gw3290qt&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;BenQ GW3290QT&quot;,&quot;en&quot;:&quot;BenQ GW3290QT&quot;,&quot;jp&quot;:&quot;B0BWJC1D6K&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0BWJC1D6K&quot;,&quot;title&quot;:&quot;BenQ GW3290QT&quot;,&quot;searchQuery&quot;:&quot;BenQ GW3290QT&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61dnxRzOvQL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4544438015800&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:4},&quot;ma320u&quot;:{&quot;type&quot;:&quot;monitor&quot;,&quot;ja&quot;:&quot;BenQ MA320U&quot;,&quot;en&quot;:&quot;BenQ MA320U&quot;,&quot;jp&quot;:&quot;B0DJLHF9RJ&quot;,&quot;us&quot;:null,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0DJLHF9RJ&quot;,&quot;title&quot;:&quot;BenQ MA320U&quot;,&quot;searchQuery&quot;:&quot;BenQ MA320U&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61Hb1-9-TIL._AC_SL320_.jpg&quot;,&quot;jan&quot;:&quot;4544438016784&quot;},&quot;en&quot;:null},&quot;rank_jp&quot;:5}},&quot;accessory&quot;:{&quot;ja&quot;:{},&quot;en&quot;:{}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;monitor-size-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 画面の横幅・高さ: 対角（インチ）と解像度の縦横比から（正方画素を前提）
// 目安の距離: 23.8型を m.base（OSHA の最低ライン）で見るのと、画面の横幅が同じ角度に見える距離
//   = m.base × 画面の横幅 ÷ 23.8型の画面の横幅
// 2台並べて机に収まるか: 調べた機種のスタンド込みの横幅 × 台数 と 机の横幅を比べる（すき間なしで並べた場合）

function dims(diagIn, w, h) {
  const d = diagIn * 2.54, k = Math.hypot(w, h);
  return { w: (d * w) / k, h: (d * h) / k };
}

function targetDist(screenW, m) {
  return (m.base * screenW) / m.baseW;
}

function meets(distCm, screenW, m) {
  return distCm &gt;= targetDist(screenW, m);
}

// widths: 調べた機種のスタンド込みの横幅（cm）。ok: どの機種でも収まる / cond: 一部の機種なら収まる / ng: どの機種でも収まらない
function fitClass(desk, n, widths) {
  const lo = n * Math.min(...widths), hi = n * Math.max(...widths);
  return hi &lt;= desk ? &quot;ok&quot; : lo &lt;= desk ? &quot;cond&quot; : &quot;ng&quot;;
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（画面サイズ・解像度・目から画面までの距離・台数と机の横幅）。機種は選ばせず、条件に合う買える商品を1つ出す。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    size: &quot;画面サイズ&quot;, res: &quot;解像度&quot;, dist: &quot;目から画面まで&quot;, count: &quot;置く台数&quot;, width: &quot;机の横幅&quot;, desk: &quot;置く台数と机の横幅&quot;,
    one: &quot;1台&quot;, two: (x) =&gt; `2台（机の横幅${x}cm）`, inch: (x) =&gt; `${x}インチ`, fhd: &quot;フルHD&quot;, qhd: &quot;WQHD&quot;, uhd: &quot;4K&quot;,
    target: (x) =&gt; `目安の距離: ${x}cm`,
    ok: (x) =&gt; `入れた距離なら目安を満たします（余裕${x}cm）`,
    tight: (x) =&gt; `入れた距離で目安を満たしますが、余裕は${x}cmのぎりぎりです`,
    ng: (x) =&gt; `入れた距離は目安より${x}cm近いです`,
    nofit: &quot;調べた機種の中に、この机の横幅に2台並べて置けるものはありません&quot;,
    vOk: &quot;○ この距離なら見やすい大きさです&quot;, vTight: &quot;△ ぎりぎり目安を満たします&quot;, vNg: &quot;✕ 画面が近すぎます&quot;, vNofit: &quot;✕ この机には2台並びません&quot;,
    note: &quot;結果は計算の目安です。目安の距離は公的な基準ではなく、この記事で決めた値です。候補は、調べた機種のうち買えるものから選んでいます。&quot;,
  },
  en: {
    size: &quot;Screen size&quot;, res: &quot;Resolution&quot;, dist: &quot;Eyes to screen&quot;, count: &quot;Screens&quot;, width: &quot;Desk width&quot;, desk: &quot;Number of screens and desk width&quot;,
    one: &quot;1 screen&quot;, two: (x) =&gt; `2 screens (desk ${x} cm wide)`, inch: (x) =&gt; `${x} inch`, fhd: &quot;1080p&quot;, qhd: &quot;1440p&quot;, uhd: &quot;4K&quot;,
    target: (x) =&gt; `Target distance: ${x} cm`,
    ok: (x) =&gt; `Your distance meets the target (${x} cm to spare)`,
    tight: (x) =&gt; `Your distance meets the target, but with only ${x} cm to spare`,
    ng: (x) =&gt; `Your distance is ${x} cm closer than the target`,
    nofit: &quot;None of the models checked fits two side by side on a desk this wide&quot;,
    vOk: &quot;✓ A comfortable size at this distance&quot;, vTight: &quot;△ Just meets the target&quot;, vNg: &quot;✕ The screen is too close&quot;, vNofit: &quot;✕ Two won&apos;t fit on this desk&quot;,
    note: &quot;This is a calculated estimate. The target distance is this article&apos;s own rule, not an official standard. Picks come from the models checked that are available to buy.&quot;,
  },
};

function fields(M, lang) {
  const t = T_[lang];
  const resOf = { &quot;24&quot;: [&quot;fhd&quot;], &quot;27&quot;: [&quot;qhd&quot;, &quot;uhd&quot;], &quot;32&quot;: [&quot;qhd&quot;, &quot;uhd&quot;] };
  return [
    { name: &quot;size&quot;, type: &quot;select&quot;, label: t.size, value: &quot;27&quot;, options: [&quot;24&quot;, &quot;27&quot;, &quot;32&quot;].map((x) =&gt; ({ value: x, label: t.inch(x) })) },
    // 解像度は、記事で候補を選んだ組み合わせ（サイズごと）
    { name: &quot;res&quot;, type: &quot;select&quot;, label: t.res, value: &quot;qhd&quot;, dependsOn: &quot;size&quot;, options: (s) =&gt; (resOf[s.size] || resOf[&quot;27&quot;]).map((x) =&gt; ({ value: x, label: t[x] })) },
    // 目から画面までは5cm刻み、机の横幅は10cm刻み（読者が実際に選ぶ値）
    { name: &quot;dist&quot;, type: &quot;select&quot;, label: t.dist, value: &quot;60&quot;, options: M.dists.map((x) =&gt; ({ value: String(x), label: lang === &quot;ja&quot; ? `${x}cm` : `${x} cm (${Math.round(x / 2.54)} in)` })) },
    { name: &quot;count&quot;, type: &quot;select&quot;, label: t.count, value: &quot;1&quot;, options: [{ value: &quot;1&quot;, label: t.one }, { value: &quot;2&quot;, label: lang === &quot;ja&quot; ? &quot;2台&quot; : &quot;2 screens&quot; }] },
    // 机の横幅は2台のときだけ出す（スライダー）
    { name: &quot;width&quot;, type: &quot;select&quot;, label: t.width, value: String(M.desks[Math.floor(M.desks.length / 2)]), when: (s) =&gt; s.count === &quot;2&quot;, options: M.desks.map((x) =&gt; ({ value: String(x), label: lang === &quot;ja&quot; ? `${x}cm` : `${x} cm` })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  const dist = Number(v.dist), z = String(v.size), single = String(v.count ?? &quot;1&quot;) !== &quot;2&quot;, desk = Number(v.width);
  const T = M.targets[z];
  if (!(dist &gt; 0) || !(T &gt; 0)) return { status: &quot;error&quot;, lines: [] };
  // 目安は本文と同じく小数2桁に切り上げ（「◯cmから」の下限）。余裕は切り捨て、不足は切り上げ（甘い方向に丸めない）
  const lines = [t.target(Math.ceil(T * 100 - 1e-9) / 100)];
  const m = dist - T;
  // メーター: 40〜100cm の上に、目安から先（緑）と入れた距離（点）を出す
  const meter = { min: 40, max: 100, value: dist, ok: [T, 100], unit: &quot;cm&quot;, valueLabel: lang === &quot;ja&quot; ? `あなた ${dist}cm` : `You: ${dist} cm`, okLabel: lang === &quot;ja&quot; ? `目安 ${Math.ceil(T * 100 - 1e-9) / 100}cm〜` : `Target ${Math.ceil(T * 100 - 1e-9) / 100} cm+` };
  if (m &lt; 0) {
    lines.push(t.ng(Math.ceil(-m * 100) / 100));
    return { status: &quot;ng&quot;, verdict: t.vNg, lines, picks: [], meter };
  }
  const mm = Math.floor(m * 100) / 100;
  lines.push(mm &lt; 1 ? t.tight(mm) : t.ok(mm));
  // 条件に合う機種: 目安を満たす画面サイズ・解像度の分類のうち、2台なら机に収まる（スタンド込みの横幅が分かる）もの
  const ids = (M.classes[z + &quot;-&quot; + v.res] || []).filter((id) =&gt; single || (M.widths[id] != null &amp;&amp; fitClass(desk, 2, [M.widths[id]]) === &quot;ok&quot;));
  if (!single &amp;&amp; !ids.length &amp;&amp; (M.classes[z + &quot;-&quot; + v.res] || []).length) lines.push(t.nofit);
  const status = ids.length ? (mm &lt; 1 ? &quot;cond&quot; : &quot;ok&quot;) : &quot;ng&quot;;
  return { status, verdict: status === &quot;ng&quot; ? t.vNofit : mm &lt; 1 ? t.vTight : t.vOk, lines, picks: ids, meter };
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（build-tool.mjs が結果と URL を表にする）。よく聞かれるサイズ×距離
function presets() {
  const out = [];
  for (const [size, res] of [[&quot;24&quot;, &quot;fhd&quot;], [&quot;27&quot;, &quot;qhd&quot;], [&quot;27&quot;, &quot;uhd&quot;], [&quot;32&quot;, &quot;qhd&quot;], [&quot;32&quot;, &quot;uhd&quot;]]) for (const dist of [&quot;50&quot;, &quot;60&quot;, &quot;70&quot;]) out.push({ size, res, dist, count: &quot;1&quot; });
  return out;
}

// 計算ツールのカードに出す仕様（その商品の仕様のうち、この計算で使った値。絞り込みの条件＝目安の距離は出さない。2026-10 ユーザー指示）
//   画面サイズと解像度（どの目安を当てるかを決める）、スタンド込みの横幅（2台並べられるかの判定に使う）
function pickSpecs(id, v, M, lang) {
  const ja = lang === &quot;ja&quot;;
  const key = Object.keys(M.classes).find((k) =&gt; M.classes[k].includes(id));
  if (!key) return [];
  const [z, res] = key.split(&quot;-&quot;);
  const px = { fhd: &quot;1920×1080&quot;, qhd: &quot;2560×1440&quot;, uhd: &quot;3840×2160&quot; }[res] || res;
  const out = [ja ? `${z}インチ・${px}` : `${z}-inch, ${px}`];
  const w = M.widths[id];
  if (w != null) {
    const one = (Math.ceil(w * 10) / 10).toFixed(1), two = (Math.ceil(w * 2 * 10) / 10).toFixed(1);
    const dual = String(v.count) === &quot;2&quot;;
    out.push(ja ? `スタンド込みの横幅 ${one}cm${dual ? `（2台で${two}cm）` : &quot;&quot;}` : `Width with stand ${one} cm${dual ? ` (${two} cm for two)` : &quot;&quot;}`);
  }
  return out;
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;pills&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;screen-width-by-inch-size&quot;&gt;Screen width by inch size&lt;/h2&gt;
&lt;p&gt;A “27-inch” is the diagonal of the screen, not its width.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;24-inch (23.8”): 52.7 cm wide, 29.6 cm tall&lt;/li&gt;
&lt;li&gt;27-inch: 59.8 cm wide, 33.6 cm tall, with 1.29× the area of a 24-inch&lt;/li&gt;
&lt;li&gt;32-inch (31.5”): 69.8 cm wide, 39.3 cm tall, with 1.76× the area of a 24-inch&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Comparing current models from Dell, LG, BenQ, ASUS and other major brands on their official specs, the width with frame and stand was 1.1–1.7 cm wider than the viewable area.&lt;/p&gt;
&lt;h2 id=&quot;two-screens-and-desk-width&quot;&gt;Two screens and desk width&lt;/h2&gt;
&lt;p&gt;Among current models from major brands, any model fits two screens on a desk 108.6 cm or wider for 24-inch, 123 cm for 27-inch, 143 cm for 32-inch. Right at those widths it is borderline.&lt;/p&gt;
&lt;p&gt;Assumptions: width with stand for current models from major brands, side by side with no gap&lt;/p&gt;



































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Desk width&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Two 24-inch&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Two 27-inch&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Two 32-inch&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;100 cm (39.4 in)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;None of the models compared fit (7.53 cm over even with the narrowest)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;None of the models compared fit (21.94 cm over even with the narrowest)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;None of the models compared fit (42.51 cm over even with the narrowest)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;120 cm (47.2 in)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits (11.4–12.47 cm left)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;None of the models compared fit (1.94 cm over even with the narrowest)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;None of the models compared fit (22.51 cm over even with the narrowest)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;130 cm (51.2 in)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits (21.4–22.47 cm left)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits (7–8.06 cm left)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;None of the models compared fit (12.51 cm over even with the narrowest)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;150 cm (59.1 in)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits (41.4–42.47 cm left)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits (27–28.06 cm left)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Fits (7.08–7.49 cm left)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;“Left” is the width left over, from the widest model to the narrowest&lt;/li&gt;
&lt;li&gt;Check the stand width on the spec sheet of the monitor you buy&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;resolution-and-pixel-size&quot;&gt;Resolution and pixel size&lt;/h2&gt;
&lt;p&gt;Display scaling is the setting that makes text and buttons larger. At the same display scaling, text size follows pixel size. 1080p is 1920×1080, 1440p is 2560×1440 and 4K is 3840×2160.&lt;/p&gt;
&lt;p&gt;Against a 24-inch 1080p screen at the same scaling, a 27-inch 1440p screen shows text at 0.85× the size and a 4K one at 0.57×. Both make text smaller, so plan to raise the display scaling on 4K.&lt;/p&gt;
&lt;p&gt;A 32-inch 1440p screen is 0.99×: the same text size on a bigger screen. A 27-inch 1080p screen shows text at 1.13× the size, with the same screen space.&lt;/p&gt;
&lt;p&gt;Raising the scaling shows less on screen at once. The &lt;a href=&quot;https://aulvem.com/blog/2021-03-19-four-k-monitor/&quot;&gt;4K monitor guide&lt;/a&gt; works out how much.&lt;/p&gt;
&lt;h2 id=&quot;picks-by-size-and-resolution&quot;&gt;Picks by size and resolution&lt;/h2&gt;
&lt;p&gt;Five combinations checked, 5 models picked. The conditions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sold new on Amazon.com by Amazon or the maker&lt;/li&gt;
&lt;li&gt;The maker’s spec page shows the same model number as the listing&lt;/li&gt;
&lt;li&gt;At least 100 ratings and 4 stars or more&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Of the Amazon.com listings checked, each pick is the cheapest that meets them. Listings sold and shipped by Amazon were compared with no shipping charge. Check prices on the store.&lt;/p&gt;
&lt;p&gt;For 27-inch 1080p, see &lt;a href=&quot;https://aulvem.com/blog/monitor-small-desk/&quot;&gt;Does a 27-inch monitor fit a 60 cm deep desk?&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;24-inch-1080p&quot;&gt;24-inch 1080p&lt;/h3&gt;
&lt;p&gt;The smallest combination, with a target of 50 cm or more from eye to screen, borderline right at it.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Samsung S30GD (LS24D304GANXZA)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61ReaNcCHwL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Samsung S30GD (LS24D304GANXZA)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DK468KVS?q=Samsung+S30GD+%28LS24D304GANXZA%29&amp;amp;us=B0DK468KVS&amp;amp;l=en&quot; aria-label=&quot;View Samsung S30GD (LS24D304GANXZA) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;p class=&quot;guide-pick-fine&quot;&gt;This listing has a size selector: pick the 24-inch LS24D304GANXZA (the Amazon.com-sold one; the LS24D300GANXZA is a different listing). Whether the ratings are pooled with other sizes wasn&amp;#39;t checked.&lt;/p&gt;
&lt;h3 id=&quot;27-inch-1440p&quot;&gt;27-inch 1440p&lt;/h3&gt;
&lt;p&gt;The standard pick with no scaling change, with a target of 56.73 cm or more from eye to screen, borderline right at it.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS VG27AQ3A&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71awxc1RPRL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS VG27AQ3A&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0BZR9TMBJ?q=ASUS+VG27AQ3A&amp;amp;us=B0BZR9TMBJ&amp;amp;l=en&quot; aria-label=&quot;View ASUS VG27AQ3A on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;27-inch-4k&quot;&gt;27-inch 4K&lt;/h3&gt;
&lt;p&gt;Used with the scaling raised, with a target of 56.73 cm or more from eye to screen, borderline right at it.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG 27US500-W&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71ghM+g3BXL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG 27US500-W&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0D9R7Q449?q=LG+27US500-W&amp;amp;us=B0D9R7Q449&amp;amp;l=en&quot; aria-label=&quot;View LG 27US500-W on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;32-inch-1440p&quot;&gt;32-inch 1440p&lt;/h3&gt;
&lt;p&gt;For a wider workspace, with a target of 66.22 cm or more from eye to screen, borderline right at it.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for LG 32U631A-B&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/71o7A0jJ-pL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;LG 32U631A-B&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0DS2SL7L1?q=LG+32U631A-B&amp;amp;us=B0DS2SL7L1&amp;amp;l=en&quot; aria-label=&quot;View LG 32U631A-B on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h3 id=&quot;32-inch-4k&quot;&gt;32-inch 4K&lt;/h3&gt;
&lt;p&gt;For a big screen with fine detail, with a target of 66.22 cm or more from eye to screen, borderline right at it.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for ASUS VP327Q&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/81p0NWfCISL._AC_SL320_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;ASUS VP327Q&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0C7G6F8BY?q=ASUS+VP327Q&amp;amp;us=B0C7G6F8BY&amp;amp;l=en&quot; aria-label=&quot;View ASUS VP327Q on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;what-size-monitor-is-best&quot;&gt;What size monitor is best?&lt;/h3&gt;
&lt;p&gt;In this calculation, a 24-inch needs 50 cm eye-to-screen or more, a 27-inch 56.73 cm, a 32-inch 66.22 cm; right at those distances it is borderline.&lt;/p&gt;
&lt;h3 id=&quot;is-a-27-inch-monitor-too-big&quot;&gt;Is a 27-inch monitor too big?&lt;/h3&gt;
&lt;p&gt;In this calculation, a 27-inch looks no wider than a 24-inch does at 50 cm once you sit 56.73 cm or more from the screen. Right at that distance it is borderline.&lt;/p&gt;
&lt;h3 id=&quot;how-wide-are-24-27-and-32-inch-monitors&quot;&gt;How wide are 24, 27 and 32-inch monitors?&lt;/h3&gt;
&lt;p&gt;The 24-inch is the 23.8-inch size and the 32-inch is the 31.5-inch size. The viewable width is 52.7 cm for a 24-inch, 59.8 cm for a 27-inch and 69.8 cm for a 32-inch.&lt;/p&gt;
&lt;h3 id=&quot;can-two-monitors-fit-side-by-side-on-a-desk&quot;&gt;Can two monitors fit side by side on a desk?&lt;/h3&gt;
&lt;p&gt;Among current models from major brands, any model fits two screens on a desk 108.6 cm or wider for 24-inch, 123 cm for 27-inch, 143 cm for 32-inch. Right at those widths it is borderline.&lt;/p&gt;
&lt;p&gt;Among current 27-inch models from major brands, none fits two side by side on a 120 cm wide desk. Even the narrowest sticks out 1.94 cm.&lt;/p&gt;
&lt;h3 id=&quot;1440p-or-4k-for-a-27-inch-monitor&quot;&gt;1440p or 4K for a 27-inch monitor?&lt;/h3&gt;
&lt;p&gt;Against a 24-inch 1080p screen at the same scaling, a 27-inch 1440p screen shows text at 0.85× the size and a 4K one at 0.57×. Both make text smaller, so plan to raise the display scaling on 4K.&lt;/p&gt;
&lt;h3 id=&quot;is-1080p-too-blurry-on-a-27-inch-monitor&quot;&gt;Is 1080p too blurry on a 27-inch monitor?&lt;/h3&gt;
&lt;p&gt;Against a 24-inch 1080p screen at the same scaling, a 27-inch 1080p screen shows text at 1.13× the size, with the same screen space. Bigger pixels make the picture a little less sharp.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;: Worked out from the makers’ official dimensions and specs as of October 2026. None were tested in person. The target starts from the 50 cm to 100 cm range that OSHA calls preferred. Japan’s health ministry guideline gives 40 cm or more as a rough minimum.&lt;/p&gt;&lt;p&gt;Sources: &lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;OSHA&lt;/a&gt; ／ &lt;a href=&quot;https://www.mhlw.go.jp/content/000539604.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Japan’s health ministry guideline (PDF, Japanese)&lt;/a&gt; ／ &lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Dell&lt;/a&gt; ／ &lt;a href=&quot;https://www.lg.com/jp/monitors/fhd-qhd/32u631a-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;LG&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Target distance: for a 24-inch, the lower end of OSHA’s preferred range, 50 cm. For 27- and 32-inch, the distance at which the screen’s viewable width looks the same as a 24-inch at 50 cm: 50 cm × viewable width ÷ the 23.8-inch viewable width (52.704 cm), rounded up to two decimals (27-inch 56.73 cm (22.4 in), 32-inch 66.22 cm (26.1 in)). This is this guide’s own figure, not an official standard.&lt;/li&gt;
&lt;li&gt;Viewable widths are worked out from the makers’ official diagonal and aspect ratio assuming square pixels, or taken from the spec’s active area. The 24-inch class uses 23.8-inch and the 32-inch class uses 31.5-inch. The 32-inch target uses the widest viewable area among the models.&lt;/li&gt;
&lt;li&gt;Each row of the table checks whether the eye-to-screen distance is at least the target. Exactly at the target it passes, and 0.01 cm short it fails, so room is close to zero and the article says borderline.&lt;/li&gt;
&lt;li&gt;Two screens: needed width = 2 × width with stand, using the widest of the 9 models 24-inch, 11 models 27-inch and 5 models 32-inch models checked, rounded up to one decimal, with no gap. A desk at least that wide fits all; one that fits only the narrowest model is conditional; otherwise none fit. Left = desk width − needed width.&lt;/li&gt;
&lt;li&gt;Resolution: text size ratio at the same scaling = pixel pitch ÷ the 23.8-inch 1080p pixel pitch (0.2745 mm). Smaller means smaller text.&lt;/li&gt;
&lt;li&gt;Dimensions and specs come from the makers’ official pages (checked dates are on each fact). No unit was measured in person. Picks are the cheapest with shipping among new listings on Amazon.com with at least 100 ratings and 4 stars, whose model number matches the maker’s spec page.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;






























































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Lower end of OSHA’s preferred range&lt;/td&gt;&lt;td&gt;50 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;osha.gov&lt;/a&gt; preferred viewing distance is between 20 and 40 inches (50 and 100 cm) from the&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Upper end of OSHA’s preferred range&lt;/td&gt;&lt;td&gt;100 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.osha.gov/etools/computer-workstations/components/monitors&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;osha.gov&lt;/a&gt; same sentence (20–40 in, 50–100 cm)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MHLW minimum eye-to-screen distance&lt;/td&gt;&lt;td&gt;40 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.mhlw.go.jp/content/000539604.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;mhlw.go.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;23.8-inch viewable width&lt;/td&gt;&lt;td&gt;52.704 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2425H Active Area Horizontal 527.04 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;23.8-inch viewable height&lt;/td&gt;&lt;td&gt;29.646 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2425H Active Area Vertical 296.46 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch viewable width&lt;/td&gt;&lt;td&gt;59.789 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2725H Active Area Horizontal 597.89 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 1440p viewable width&lt;/td&gt;&lt;td&gt;59.674 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2537948-dell-s2725ds-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2725DS Active Area Horizontal 596.74 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch viewable height&lt;/td&gt;&lt;td&gt;33.631 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2725H Active Area Vertical 336.31 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;31.5-inch viewable width&lt;/td&gt;&lt;td&gt;69.731 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual12266432-dell-s-32-4k-monitor-s3225qs-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S3225QS Active area Horizontal 697.31 mm Table 7&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;31.5-inch viewable height&lt;/td&gt;&lt;td&gt;39.223 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual12266432-dell-s-32-4k-monitor-s3225qs-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S3225QS Vertical 392.23 mm Table 7&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;23.8-inch 1080p pixel pitch&lt;/td&gt;&lt;td&gt;0.2745 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2425H Pixel pitch 0.2745 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 1080p pixel pitch&lt;/td&gt;&lt;td&gt;0.3114 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2725H Pixel pitch 0.3114 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 1440p pixel pitch&lt;/td&gt;&lt;td&gt;0.2331 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2537948-dell-s2725ds-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2725DS Pixel pitch 0.2331 mm p.16&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27-inch 4K pixel pitch&lt;/td&gt;&lt;td&gt;0.1554 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual3779507-dell-s-27-4k-monitor-s2725qs-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2725QS Pixel pitch 0.1554 mm Table 7&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;31.5-inch 1440p pixel pitch&lt;/td&gt;&lt;td&gt;0.2727 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/jp/monitors/fhd-qhd/32u631a-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;31.5-inch 4K pixel pitch&lt;/td&gt;&lt;td&gt;0.18159 mm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual12266432-dell-s-32-4k-monitor-s3225qs-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S3225QS Pixel pitch 0.18159 mm Table 7&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell S2425H width with stand&lt;/td&gt;&lt;td&gt;53.764 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2425H W with stand 537.64 mm p.21&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell P2425H width with stand&lt;/td&gt;&lt;td&gt;53.864 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual18231535-dell-p2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; P2425H W with stand 538.64 mm&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 24MR400-B width with stand&lt;/td&gt;&lt;td&gt;54 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/uk/monitors/fhd-qhd/24mr400-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt; W with stand 540 mm&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ GW2490 width with stand&lt;/td&gt;&lt;td&gt;54 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/home/gw2490/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt; 540 mm (21.3 in)&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VA24EHF width with stand&lt;/td&gt;&lt;td&gt;53.95 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/eye-care/va24ehf/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; 53.95 cm&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;AOC 24G15N width with stand&lt;/td&gt;&lt;td&gt;53.97 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aoc.com/us/gaming/products/monitors/24g15n&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;aoc.com&lt;/a&gt; 539.7 mm&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iiyama XUB2493HS-B6 width with stand&lt;/td&gt;&lt;td&gt;53.95 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://iiyama.com/gb_en/products/prolite-xub2493hs-b6/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;iiyama.com&lt;/a&gt; 539.5 mm&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung S30GD (LS24D304GANXZA) width with stand&lt;/td&gt;&lt;td&gt;54.07 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/ca/monitors/full-hd-1080p/essential-monitor-s3-s30gd-24-inch-fhd-ips-100hz-ls24d300ganxza/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt; 540.7 mm&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ GW2490P width with stand&lt;/td&gt;&lt;td&gt;54.3 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/ja-jp/monitor/home/gw2490p/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt; 543x414.3x181.9 mm&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell S2725H width with stand&lt;/td&gt;&lt;td&gt;60.969 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2749111-dell-s2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; S2725H W with stand 609.69 mm p.21&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell P2725H width with stand&lt;/td&gt;&lt;td&gt;61.068 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual18231535-dell-p2425h-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; P2725H W with stand 610.68 mm&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell S2725DS width with stand&lt;/td&gt;&lt;td&gt;61.134 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual2537948-dell-s2725ds-monitor-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; W with stand 611.34 mm p.23&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 27MR400-B width with stand&lt;/td&gt;&lt;td&gt;61.17 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/uk/monitors/fhd-qhd/27mr400-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt; 611.7 mm&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ GW2790 width with stand&lt;/td&gt;&lt;td&gt;61.2 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/home/gw2790/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt; 612 mm&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VG27AQ3A width with stand&lt;/td&gt;&lt;td&gt;61.5 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/us/displays-desktops/monitors/tuf-gaming/tuf-gaming-vg27aq3a/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt; 61.50 cm&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MSI MAG 275QF width with stand&lt;/td&gt;&lt;td&gt;61.33 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.msi.com/Monitor/MAG-275QF/Specification&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;msi.com&lt;/a&gt; 613.3 mm&lt;/td&gt;&lt;td&gt;2026-10-06&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell S2725QS width with stand&lt;/td&gt;&lt;td&gt;61.154 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual3779507-dell-s-27-4k-monitor-s2725qs-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; Width 611.54 mm (with stand) Table 13&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 27U711B-B width with stand&lt;/td&gt;&lt;td&gt;61.4 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/jp/monitors/4k-5k-monitors/27u711b-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 27US500-W width with stand&lt;/td&gt;&lt;td&gt;61.4 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/jp/monitors/4k-5k-monitors/27us500-w/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell S3225QS width with stand&lt;/td&gt;&lt;td&gt;71.254 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://dl.dell.com/content/manual12266432-dell-s-32-4k-monitor-s3225qs-user-s-guide.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dl.dell.com&lt;/a&gt; Width 712.54 mm (with stand)&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASUS VP327Q width with stand&lt;/td&gt;&lt;td&gt;71.46 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.asus.com/jp/displays-desktops/monitors/eye-care/vp327q/techspec/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;asus.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 32U701B-B width with stand&lt;/td&gt;&lt;td&gt;71.4 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/jp/monitors/4k-5k-monitors/32u701b-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32-inch 1440p viewable width&lt;/td&gt;&lt;td&gt;69.8 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/jp/monitors/fhd-qhd/32u631a-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 32U631A-B width with stand&lt;/td&gt;&lt;td&gt;71.4 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/jp/monitors/fhd-qhd/32u631a-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LG 32G620B-B width with stand&lt;/td&gt;&lt;td&gt;71.3 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/jp/monitors/gaming-monitors/32g620b-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ GW3290QT width with stand&lt;/td&gt;&lt;td&gt;71.46 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/home/gw3290qt/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BenQ MA320U width with stand&lt;/td&gt;&lt;td&gt;71.45 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.benq.com/en-us/monitor/ma-series-for-macbook/ma320u/spec.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;benq.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell S2725DSM width with stand&lt;/td&gt;&lt;td&gt;61.134 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/ja-jp/shop/monitors/apd/dell-27-plus-qhd%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-s2725dsm/s2725dsm/-&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32-inch 1440p viewable height&lt;/td&gt;&lt;td&gt;39.3 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.lg.com/jp/monitors/fhd-qhd/32u631a-b/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;lg.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Samsung S30GD (LS24D304GANXZA) viewable width&lt;/td&gt;&lt;td&gt;52.704 cm&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.samsung.com/ca_fr/monitors/full-hd-1080p/essential-monitor-s3-s30gd-24-inch-fhd-ips-100hz-ls24d304ganxza/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;samsung.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-07&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Which monitor size fits your distance: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;




















































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;24 inch, 1080p, 50 cm (20 in), 1 screen&lt;/td&gt;&lt;td&gt;△ Just meets the target. Target distance: 50 cm. Your distance meets the target, but with only 0 cm to spare&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=24&amp;amp;monitor-size-calc-res=fhd&amp;amp;monitor-size-calc-dist=50&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;24 inch, 1080p, 60 cm (24 in), 1 screen&lt;/td&gt;&lt;td&gt;✓ A comfortable size at this distance. Target distance: 50 cm. Your distance meets the target (10 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=24&amp;amp;monitor-size-calc-res=fhd&amp;amp;monitor-size-calc-dist=60&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;24 inch, 1080p, 70 cm (28 in), 1 screen&lt;/td&gt;&lt;td&gt;✓ A comfortable size at this distance. Target distance: 50 cm. Your distance meets the target (20 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=24&amp;amp;monitor-size-calc-res=fhd&amp;amp;monitor-size-calc-dist=70&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27 inch, 1440p, 50 cm (20 in), 1 screen&lt;/td&gt;&lt;td&gt;✕ The screen is too close. Target distance: 56.73 cm. Your distance is 6.73 cm closer than the target&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=27&amp;amp;monitor-size-calc-res=qhd&amp;amp;monitor-size-calc-dist=50&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27 inch, 1440p, 60 cm (24 in), 1 screen&lt;/td&gt;&lt;td&gt;✓ A comfortable size at this distance. Target distance: 56.73 cm. Your distance meets the target (3.27 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=27&amp;amp;monitor-size-calc-res=qhd&amp;amp;monitor-size-calc-dist=60&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27 inch, 1440p, 70 cm (28 in), 1 screen&lt;/td&gt;&lt;td&gt;✓ A comfortable size at this distance. Target distance: 56.73 cm. Your distance meets the target (13.27 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=27&amp;amp;monitor-size-calc-res=qhd&amp;amp;monitor-size-calc-dist=70&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27 inch, 4K, 50 cm (20 in), 1 screen&lt;/td&gt;&lt;td&gt;✕ The screen is too close. Target distance: 56.73 cm. Your distance is 6.73 cm closer than the target&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=27&amp;amp;monitor-size-calc-res=uhd&amp;amp;monitor-size-calc-dist=50&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27 inch, 4K, 60 cm (24 in), 1 screen&lt;/td&gt;&lt;td&gt;✓ A comfortable size at this distance. Target distance: 56.73 cm. Your distance meets the target (3.27 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=27&amp;amp;monitor-size-calc-res=uhd&amp;amp;monitor-size-calc-dist=60&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27 inch, 4K, 70 cm (28 in), 1 screen&lt;/td&gt;&lt;td&gt;✓ A comfortable size at this distance. Target distance: 56.73 cm. Your distance meets the target (13.27 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=27&amp;amp;monitor-size-calc-res=uhd&amp;amp;monitor-size-calc-dist=70&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32 inch, 1440p, 50 cm (20 in), 1 screen&lt;/td&gt;&lt;td&gt;✕ The screen is too close. Target distance: 66.22 cm. Your distance is 16.22 cm closer than the target&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=32&amp;amp;monitor-size-calc-res=qhd&amp;amp;monitor-size-calc-dist=50&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32 inch, 1440p, 60 cm (24 in), 1 screen&lt;/td&gt;&lt;td&gt;✕ The screen is too close. Target distance: 66.22 cm. Your distance is 6.22 cm closer than the target&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=32&amp;amp;monitor-size-calc-res=qhd&amp;amp;monitor-size-calc-dist=60&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32 inch, 1440p, 70 cm (28 in), 1 screen&lt;/td&gt;&lt;td&gt;✓ A comfortable size at this distance. Target distance: 66.22 cm. Your distance meets the target (3.78 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=32&amp;amp;monitor-size-calc-res=qhd&amp;amp;monitor-size-calc-dist=70&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32 inch, 4K, 50 cm (20 in), 1 screen&lt;/td&gt;&lt;td&gt;✕ The screen is too close. Target distance: 66.22 cm. Your distance is 16.22 cm closer than the target&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=32&amp;amp;monitor-size-calc-res=uhd&amp;amp;monitor-size-calc-dist=50&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32 inch, 4K, 60 cm (24 in), 1 screen&lt;/td&gt;&lt;td&gt;✕ The screen is too close. Target distance: 66.22 cm. Your distance is 6.22 cm closer than the target&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=32&amp;amp;monitor-size-calc-res=uhd&amp;amp;monitor-size-calc-dist=60&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32 inch, 4K, 70 cm (28 in), 1 screen&lt;/td&gt;&lt;td&gt;✓ A comfortable size at this distance. Target distance: 66.22 cm. Your distance meets the target (3.78 cm to spare)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-15-choose-monitor/?monitor-size-calc-size=32&amp;amp;monitor-size-calc-res=uhd&amp;amp;monitor-size-calc-dist=70&amp;amp;monitor-size-calc-count=1#monitor-size-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>monitor</category></item><item><title>Publishing a blog with VuePress — the 2021 roadmap, and the parts still worth keeping in 2026</title><link>https://aulvem.com/blog/2021-03-14-vuepress-blog-roadmap/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-14-vuepress-blog-roadmap/</guid><description>The full roadmap from when I shipped a blog on VuePress 1.x + GitHub + Netlify + Onamae.com in 2021. Four layers — local dev, repo, hosting, custom domain — sliced in a way that still maps onto today&apos;s Astro / Cloudflare Pages stack.</description><pubDate>Sun, 14 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: A post ported from the old VuePress blog. The procedural screenshots are from 2021, and the Netlify / Onamae.com UI has shifted since. VuePress 1.x itself isn’t suited to greenfield builds anymore, so the body has been rewritten in two layers: “a 2021 build record” and “the four-layer roadmap you can still reuse”.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In 2021, Aulvem’s precursor blog was built on VuePress 1.x, with the source kept on GitHub, builds and delivery handled by Netlify, and a custom domain bought through Onamae.com pointed at the whole thing. I worked through it while reading the usual “publish a blog for free” articles, but it took a while before the big picture of “what was happening where” clicked for me.&lt;/p&gt;
&lt;p&gt;This post leads with the thing my past self would have wanted first: the overall roadmap and the responsibility of each step. VuePress 1.x isn’t a serious option for new builds anymore, but the roadmap itself ports cleanly over to an Astro + Cloudflare Pages setup.&lt;/p&gt;
&lt;p&gt;The VuePress directory layout itself is split out into a separate post (&lt;a href=&quot;https://aulvem.com/blog/2021-03-01-vuepress-structure/&quot;&gt;VuePress/blog directory structure — a 2021 build note&lt;/a&gt;). This one focuses on “the sequence of getting the whole site published”, not “the contents of individual files”.&lt;/p&gt;
&lt;h2 id=&quot;the-short-answer--break-it-into-four-layers-and-clear-one-at-a-time&quot;&gt;The short answer — break it into four layers and clear one at a time&lt;/h2&gt;
&lt;p&gt;Short answer: the fastest way to get a VuePress blog live on a custom domain is to break the work into four layers — (1) local dev, (2) put the source on GitHub, (3) let Netlify auto-build and serve it, (4) delegate the Onamae.com nameservers to Netlify — and clear them one by one.&lt;/p&gt;
&lt;p&gt;The reason is separation of concerns. Cramming everything into one service makes it hard to tell where a failure occurred. Putting “write”, “store”, “build”, and “publish” on separate layers makes triage easier when something breaks.&lt;/p&gt;
&lt;p&gt;The whole picture looks like this.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[Local PC]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │ git push&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[GitHub] ──── source of truth&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │ webhook&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[Netlify] ──── build &amp;amp; static delivery (xxx.netlify.app)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │ DNS (nameserver delegation)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[Onamae.com domain]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │ served on the custom domain&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[Readers]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A caveat: these four layers aren’t VuePress-specific. Astro, Hugo, or any other SSG that converts Markdown to static HTML and serves it lines up the same way. The VuePress-specific parts only show up in the build commands of (1) and (3).&lt;/p&gt;
&lt;h2 id=&quot;glossary-ssg-and-jamstack--the-assumptions-this-roadmap-rests-on&quot;&gt;Glossary: SSG and Jamstack — the assumptions this roadmap rests on&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;SSG (Static Site Generator)&lt;/strong&gt;: A generic term for tools that convert Markdown or JSON to static HTML at build time. VuePress, Astro, Next.js (output:static), Hugo, and Jekyll all qualify. It pairs against the CMS pattern (WordPress and friends) where the server assembles the page dynamically per request.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Jamstack&lt;/strong&gt;: An acronym from JavaScript / APIs / Markup (pre-built static files). It refers to a setup where SSG-generated HTML sits on a CDN and any dynamic logic is supplied by external APIs. Netlify is hosting designed around this Jamstack assumption.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This roadmap only works because the output is “just static files”. The simplicity of “put the source on GitHub, let Netlify rebuild it and push it to a CDN” leans on the Jamstack premise.&lt;/p&gt;
&lt;h2 id=&quot;step-1--develop-and-write-the-vuepress-project-locally&quot;&gt;Step 1 — Develop and write the VuePress project locally&lt;/h2&gt;
&lt;p&gt;Short answer: in the local-development phase, write Markdown and Vue components with hot-reload via &lt;code&gt;vuepress dev src&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The reason is iteration speed. Fixing things locally is an order of magnitude faster than redeploying. Build times were short too, so an “edit while you write” workflow was realistic.&lt;/p&gt;
&lt;p&gt;Concretely, I developed against this layout.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;src&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├─ _posts                   Markdown for each article&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  └─ category&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│     └─ page.md&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─ .vuepress&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ├─ components            Article-side components (Vue)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ├─ public                images and robots.txt&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ├─ theme                 layouts / components / styles&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ├─ config.js             VuePress core configuration&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   └─ enhanceApp.js         Vue plugin entry point&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A two-way split: &lt;code&gt;_posts/&lt;/code&gt; for articles, &lt;code&gt;.vuepress/&lt;/code&gt; for framework configuration and theme. The details are in &lt;a href=&quot;https://aulvem.com/blog/2021-03-01-vuepress-structure/&quot;&gt;VuePress/blog directory structure&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A caveat: during development, &lt;code&gt;vuepress dev src --host 0.0.0.0 --port 8080&lt;/code&gt; lets you open the site from another device on the LAN to check the phone view. Markdown layouts tend to get sloppy if you only ever look at them on a desktop.&lt;/p&gt;
&lt;h2 id=&quot;step-2--create-a-github-repo-and-push-the-source&quot;&gt;Step 2 — Create a GitHub repo and push the source&lt;/h2&gt;
&lt;p&gt;Short answer: in the “push to GitHub” phase, create an empty repo, then push only the source from local with &lt;code&gt;git remote add&lt;/code&gt; and &lt;code&gt;git push -u origin main&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The reason is separating source from build output. Committing &lt;code&gt;dist/&lt;/code&gt; or &lt;code&gt;node_modules/&lt;/code&gt; bloats history and undermines the whole point of letting Netlify rebuild on its side.&lt;/p&gt;
&lt;p&gt;Concretely, I excluded the following via &lt;code&gt;.gitignore&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;node_modules/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;src/.vuepress/dist/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;src/.vuepress/.cache/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;src/.vuepress/.temp/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;.env&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;.env.local&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Netlify rebuilds the build output every time, so the repository only needs &lt;code&gt;src/&lt;/code&gt; and &lt;code&gt;package.json&lt;/code&gt; / &lt;code&gt;package-lock.json&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A caveat: if you’re going public, don’t accidentally commit API keys or access tokens. At the time I went back and forth on whether to put secrets in GitHub Secrets or Netlify environment variables — the conclusion I landed on was “values only used at build time go on the Netlify side, and anything that could leak at runtime shouldn’t exist at all”.&lt;/p&gt;
&lt;h2 id=&quot;step-3--connect-the-repo-to-netlify-and-let-it-auto-build&quot;&gt;Step 3 — Connect the repo to Netlify and let it auto-build&lt;/h2&gt;
&lt;p&gt;Short answer: in the Netlify connection phase, go through Add new site → Import an existing project, pick the GitHub repo, and fill in the build command and publish directory.&lt;/p&gt;
&lt;p&gt;The reason is webhook-driven automation. Netlify detects each &lt;code&gt;git push&lt;/code&gt; to GitHub and re-runs &lt;code&gt;vuepress build&lt;/code&gt; against the latest source. The old “manual &lt;code&gt;npm run build&lt;/code&gt; then FTP to a server” flow disappears entirely.&lt;/p&gt;
&lt;p&gt;The concrete settings were these.&lt;/p&gt;

























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Setting&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Branch to deploy&lt;/td&gt;&lt;td&gt;&lt;code&gt;main&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Build command&lt;/td&gt;&lt;td&gt;&lt;code&gt;vuepress build src&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Publish directory&lt;/td&gt;&lt;td&gt;&lt;code&gt;src/.vuepress/dist&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Node.js version&lt;/td&gt;&lt;td&gt;14.x (pinned via the &lt;code&gt;NODE_VERSION&lt;/code&gt; env var)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;After signing into Netlify, the flow looked roughly like this (UI as of 2021).&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;The Netlify login screen as of 2021, with the GitHub sign-in button centered on the page.&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-06-netlify-setup/2021-03-06-Netlify-login.webp&quot; class=&quot;page-small-img&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Once you pick the repository, enter &lt;code&gt;vuepress build src&lt;/code&gt; and &lt;code&gt;src/.vuepress/dist&lt;/code&gt; in the build settings and the deploy kicks off.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;The Netlify build configuration screen, showing the Build command and Publish directory input fields.&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-06-netlify-setup/2021-03-06-Netlify-repository-setting.webp&quot; class=&quot;page-small-img&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;A caveat: the first build often fails because of Node version mismatches. Pinning &lt;code&gt;NODE_VERSION&lt;/code&gt; to something like &lt;code&gt;14&lt;/code&gt;, or dropping a &lt;code&gt;.nvmrc&lt;/code&gt; at the repo root, cuts the accident rate. The detailed walkthrough lives in &lt;a href=&quot;https://aulvem.com/blog/2021-03-06-netlify-setup/&quot;&gt;Deploying a VuePress / static site to Netlify&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;step-4--buy-a-custom-domain-on-onamaecom&quot;&gt;Step 4 — Buy a custom domain on Onamae.com&lt;/h2&gt;
&lt;p&gt;Short answer: in the domain-purchase phase, search for the domain name you want, pick “do not use” for the server option, and check out. There’s no need to bundle a server contract.&lt;/p&gt;
&lt;p&gt;The reason is separation of concerns. Onamae.com’s job is “owning the domain”; hosting is Netlify’s job. You’ll usually be guided into bundling a server contract, but a Jamstack setup doesn’t need one.&lt;/p&gt;
&lt;p&gt;The actual screen looked like this.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;The Onamae.com homepage search form where you enter the domain name you want.&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-onamae-search.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;At the server selection step, pick “do not use” and proceed.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;The Onamae.com server selection screen with &apos;do not use&apos; selected.&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-onamae-server-selection.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;A caveat: always enable Whois privacy within its free tier — it keeps your personal information off the public Whois record. Renewal fees can be higher than the initial registration on some TLDs, so for long-term operation a standard TLD like .com / .net reads better later on.&lt;/p&gt;
&lt;h2 id=&quot;step-5--wire-netlify-and-onamaecom-together-by-delegating-nameservers&quot;&gt;Step 5 — Wire Netlify and Onamae.com together by delegating nameservers&lt;/h2&gt;
&lt;p&gt;Short answer: in the nameserver-delegation phase, on the Netlify side go through Add custom domain → Set up Netlify DNS, and paste the four nameservers it shows you into “Change nameservers” in Onamae.com Navi.&lt;/p&gt;
&lt;p&gt;The reason is to centralize DNS management on Netlify. Once you delegate nameservers, Netlify takes over A / CNAME records and SSL certificate issuance (Let’s Encrypt). You no longer have to write records yourself on the Onamae.com side.&lt;/p&gt;
&lt;p&gt;Open Domain settings from Netlify’s overview page.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;A Netlify site overview screen with a link to Domain settings visible near the middle.&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-Netlify-overview.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Step through Add custom domain and you’ll eventually see the four assigned nameservers.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;A list of four nameservers assigned by Netlify, in the dnsX.pXX.nsone.net format.&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-Netlify-custom-domains.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Sign in to Onamae.com Navi, open “Change nameservers” for the target domain, pick “use other nameservers”, and paste the four you noted down.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;The Onamae.com Navi &apos;change nameservers&apos; screen with Netlify&apos;s four nameservers pasted into the input fields.&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-Onamae-name-server.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Propagation takes anywhere from a few minutes to about 48 hours. If the custom domain still doesn’t resolve after half a day, try accessing from a different network (mobile data, for example) to rule out DNS caching. The detailed caveats are split into &lt;a href=&quot;https://aulvem.com/blog/2021-03-08-netlify-onamae/&quot;&gt;Connecting an Onamae.com custom domain to Netlify&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A caveat: once you’ve delegated, stop touching Onamae.com’s DNS records screen. Netlify DNS is now the source of truth, so subdomain additions and MX records for email should all happen in Netlify’s DNS Records UI.&lt;/p&gt;
&lt;h2 id=&quot;comparison-table--the-2021-vuepress-setup-vs-the-2026-astro-setup&quot;&gt;Comparison table — the 2021 VuePress setup vs. the 2026 Astro setup&lt;/h2&gt;
&lt;p&gt;The roadmap itself hasn’t changed, but the tools at each layer have rotated over the past five years. Aulvem itself has moved from VuePress to Astro.&lt;/p&gt;


















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Layer&lt;/th&gt;&lt;th&gt;2021: VuePress setup&lt;/th&gt;&lt;th&gt;2026: Astro setup (current Aulvem)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Local dev&lt;/td&gt;&lt;td&gt;VuePress 1.x + Node 14.x&lt;/td&gt;&lt;td&gt;Astro 5 + Node 20.x&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Article schema&lt;/td&gt;&lt;td&gt;frontmatter (untyped)&lt;/td&gt;&lt;td&gt;content collections + zod schema&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Git hosting&lt;/td&gt;&lt;td&gt;GitHub&lt;/td&gt;&lt;td&gt;GitHub&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CI / build &amp;amp; delivery&lt;/td&gt;&lt;td&gt;Netlify&lt;/td&gt;&lt;td&gt;Cloudflare Pages&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Domain registrar&lt;/td&gt;&lt;td&gt;Onamae.com&lt;/td&gt;&lt;td&gt;Onamae.com or Cloudflare Registrar&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DNS management&lt;/td&gt;&lt;td&gt;Netlify DNS&lt;/td&gt;&lt;td&gt;Cloudflare DNS&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SSL certificate&lt;/td&gt;&lt;td&gt;Let’s Encrypt (auto-issued by Netlify)&lt;/td&gt;&lt;td&gt;Cloudflare-issued automatically&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Image delivery&lt;/td&gt;&lt;td&gt;served straight from Netlify&lt;/td&gt;&lt;td&gt;Cloudflare R2 + image optimization&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The point isn’t that the newer side is “better” — it’s that the four-layer roadmap is unchanged and you only swap in different implementations per layer. The VuePress-to-Astro migration also progressed by carving things up layer-by-layer and replacing one at a time.&lt;/p&gt;
&lt;p&gt;A caveat: Netlify is still a valid choice in 2026, and if you’re leaning on its own features like Forms / Identity / Edge Functions it’s still a top pick. Which beats which between Netlify and Cloudflare Pages depends on the use case.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Is there any point in starting a blog on VuePress 1.x today?&lt;/strong&gt;
A. I wouldn’t recommend it as a first pick for a new blog. VuePress 1.x is effectively unmaintained, so timely vulnerability patches in dependencies are unlikely. For a Markdown-centric static blog, Astro + content collections or VitePress is a better return on your learning time. If you have a personal reason to stay on Vue, VitePress is the candidate to look at.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Do GitHub and Netlify really need to be split?&lt;/strong&gt;
A. Generally yes. GitHub is the source of truth for source code; Netlify is the delivery layer for built HTML — different responsibilities, so if one goes down the other survives. Some services like GitHub Pages or Cloudflare Pages combine both, and in those cases it’s fine to centralize. The Pages-style options come with constraints on CI customization, though, so if you want fine-grained control over the build pipeline, splitting them is easier.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Can you still publish if you put off buying the domain?&lt;/strong&gt;
A. Yes. Netlify hands out a free &lt;code&gt;xxx.netlify.app&lt;/code&gt; subdomain, so you can build and review content before paying for a custom domain. In practice, switching the domain over last is the safer order. Less chance of accidents that way than buying the domain first and then sitting on a long wait while you try to make the site work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. If I were to build this in 2026, what would I swap in?&lt;/strong&gt;
A. My personal swap is VuePress to Astro, Netlify to Cloudflare Pages, and Onamae.com staying as-is (or moving to Cloudflare Registrar). The four roadmap layers — local dev, Git hosting, build and delivery, DNS — carry over unchanged. Put differently: if you only memorize the service names without internalizing the four layers, you’ll have to start over every time you move to a different service.&lt;/p&gt;
&lt;h2 id=&quot;closing&quot;&gt;Closing&lt;/h2&gt;
&lt;p&gt;In the end, the fastest path to publishing a VuePress blog on a custom domain was to separate “where you write”, “where it’s stored”, “where it’s built”, and “where it’s served” into different layers, and clear them one at a time.&lt;/p&gt;
&lt;p&gt;As of 2026 I don’t think many people are spinning up new VuePress 1.x builds. But the four-layer split — local, GitHub, build &amp;amp; delivery, DNS — is alive and well on an Astro + Cloudflare Pages stack today. The specific commands and screenshots age out, but the skeleton can be reused — I’m leaving this here as one example of that.&lt;/p&gt;

</content:encoded><category>build</category><category>VuePress</category><category>Netlify</category><category>GitHub</category><category>domain</category></item><item><title>Windows Laptop for Blogging: Specs for Writing and Photos</title><link>https://aulvem.com/blog/2021-03-13-blog-pc/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-13-blog-pc/</guid><description>By this article&apos;s unofficial targets, writing needs 8 GB RAM and a 256 GB SSD; photo editing, 16 GB RAM (borderline), 512 GB SSD and an AVX2 or Arm CPU. Per Adobe&apos;s Windows requirements, photo editing needs at least 2 GB of GPU memory on Intel or AMD, and 4 GB on Arm for Photoshop. Worked out from Microsoft&apos;s and Adobe&apos;s official requirements as of October 2026.</description><pubDate>Sat, 13 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;By this article’s unofficial targets, writing alone takes 8 GB of RAM and a 256 GB SSD. Photo editing takes 16 GB (borderline, the low end of Adobe’s recommendation) and a 512 GB SSD, with an AVX2 Intel or AMD CPU or an Arm CPU.&lt;/p&gt;
&lt;p&gt;By official requirements, the minimums are 4 GB of RAM for Windows 11 and 8 GB for Adobe’s photo apps. A laptop with exactly that much is borderline.&lt;/p&gt;
&lt;p&gt;This covers Windows laptops as of October 2026, not Chromebooks or Macs. Only official requirements and makers’ spec figures are used; speed and comfort weren’t tested on real hardware and aren’t judged.&lt;/p&gt;
&lt;p&gt;AVX2 is a CPU instruction set, listed on the CPU maker’s spec page. Arm is a type of CPU, as in Snapdragon laptops. GPU memory, when given, is on the laptop’s spec page.&lt;/p&gt;
&lt;h2 id=&quot;specs-by-use-and-whether-you-carry-it&quot;&gt;Specs by use and whether you carry it&lt;/h2&gt;
&lt;p&gt;By this article’s unofficial targets, writing needs 8 GB RAM and a 256 GB SSD; photo editing, 16 GB RAM (borderline), 512 GB SSD and an AVX2 or Arm CPU.&lt;/p&gt;

























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Use and carrying&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;This article’s target&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Writing only, carried daily&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 GB RAM, 256 GB SSD, 1920 × 1080 or higher, 1.4 kg or less, 10 hours+ battery by the shorter stated figure&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Writing only, mostly at a desk&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 GB RAM, 256 GB SSD, 1920 × 1080 or higher&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Writing and photo editing, carried daily&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;16 GB RAM (exactly the recommended low end, borderline), 512 GB SSD, 1920 × 1080 or higher, 1.4 kg or less, 10 hours+ battery by the shorter stated figure, Intel/AMD: AVX2 and 2 GB+ GPU memory; Arm: 4 GB+ GPU memory&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Writing and photo editing, mostly at a desk&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;16 GB RAM (exactly the recommended low end, borderline), 512 GB SSD, 1920 × 1080 or higher, Intel/AMD: AVX2 and 2 GB+ GPU memory; Arm: 4 GB+ GPU memory&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Per Adobe’s Windows requirements, the CPU and GPU conditions in the photo-editing rows come from Lightroom Classic and Photoshop. Whether the cloud-based Lightroom runs on Arm couldn’t be confirmed on Adobe’s requirements page.&lt;/p&gt;
&lt;p&gt;In the calculator, pick your use and whether you carry the laptop daily. It shows the official minimums separately from this article’s own targets. With less than 10% to spare, it says borderline.&lt;/p&gt;
&lt;section id=&quot;windows-blog-spec-calc&quot; class=&quot;guide-tool not-prose&quot; data-lang=&quot;en&quot; aria-labelledby=&quot;windows-blog-spec-calc-title&quot;&gt; &lt;h3 id=&quot;windows-blog-spec-calc-title&quot;&gt;Windows laptop spec for blogging&lt;/h3&gt; &lt;p&gt;Pick whether you only write or also edit photos, and whether you carry the laptop daily. It shows the official minimum from Windows 11 and Adobe separately from this article&amp;#39;s own targets for memory, SSD, display, weight and battery.&lt;/p&gt; &lt;div class=&quot;guide-tool__body&quot;&gt; &lt;output aria-live=&quot;polite&quot;&gt;&lt;/output&gt; &lt;form class=&quot;guide-tool__form&quot; onsubmit=&quot;return false&quot;&gt;&lt;/form&gt; &lt;div class=&quot;guide-tool__picks&quot;&gt;&lt;div data-pick=&quot;anker_a1383&quot; hidden&gt;&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt; &lt;p class=&quot;guide-pick__cond&quot;&gt;For these settings&lt;/p&gt; &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Anker Power Bank (20000mAh, 87W, Built-In USB-C Cable) A1383&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61jWG2JyYNL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Anker Power Bank (20000mAh, 87W, Built-In USB-C Cable) A1383&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CXNVT5J4?q=Anker+Power+Bank+%2820000mAh%2C+87W%2C+Built-In+USB-C+Cable%29+A1383&amp;amp;us=B0CXDXP8VR&amp;amp;l=en&quot; aria-label=&quot;View Anker Power Bank (20000mAh, 87W, Built-In USB-C Cable) A1383 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;   &lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p class=&quot;guide-tool__note&quot;&gt;&lt;/p&gt; &lt;noscript&gt;&lt;p&gt;This calculator needs JavaScript. If it doesn&amp;#39;t run, use the table above.&lt;/p&gt;&lt;/noscript&gt; &lt;/section&gt;  &lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/GuideToolShell.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt; &lt;script data-astro-rerun&gt;(function(){const M = {&quot;official&quot;:{&quot;write&quot;:{&quot;mem&quot;:4,&quot;rec&quot;:null,&quot;disk&quot;:0,&quot;gpuMem&quot;:null,&quot;gpuMemArm&quot;:null},&quot;photo&quot;:{&quot;mem&quot;:8,&quot;rec&quot;:16,&quot;disk&quot;:10,&quot;gpuMem&quot;:2,&quot;gpuMemArm&quot;:4}},&quot;article&quot;:{&quot;write&quot;:{&quot;mem&quot;:8,&quot;sto&quot;:256},&quot;photo&quot;:{&quot;mem&quot;:16,&quot;sto&quot;:512},&quot;res&quot;:[1920,1080]},&quot;carry&quot;:{&quot;wMax&quot;:1.4,&quot;batMin&quot;:10},&quot;memTiers&quot;:[4,8,16,32,64],&quot;stoTiers&quot;:[128,256,512,1024,2048],&quot;tightRatio&quot;:0.1,&quot;win11Sto&quot;:64,&quot;win11Cores&quot;:2,&quot;tpm&quot;:&quot;2.0&quot;,&quot;works&quot;:[&quot;write&quot;,&quot;photo&quot;],&quot;carries&quot;:[&quot;daily&quot;,&quot;home&quot;],&quot;gpu&quot;:{&quot;lrc&quot;:2,&quot;lr&quot;:2,&quot;ps&quot;:1.5,&quot;psArm&quot;:4},&quot;rec4kGpu&quot;:4,&quot;products&quot;:{&quot;glm_14_240&quot;:{&quot;mem&quot;:8,&quot;sto&quot;:256,&quot;resW&quot;:1920,&quot;resH&quot;:1080,&quot;w&quot;:1.32,&quot;batMin&quot;:4,&quot;arch&quot;:&quot;x64&quot;,&quot;avx2&quot;:false,&quot;gpuMem&quot;:null},&quot;dell15_dc15255&quot;:{&quot;mem&quot;:8,&quot;sto&quot;:512,&quot;resW&quot;:1920,&quot;resH&quot;:1080,&quot;w&quot;:1.9,&quot;batMin&quot;:null,&quot;arch&quot;:&quot;x64&quot;,&quot;avx2&quot;:null,&quot;gpuMem&quot;:null},&quot;hp_omnibook3_17_dp0199nr&quot;:{&quot;mem&quot;:8,&quot;sto&quot;:512,&quot;resW&quot;:1920,&quot;resH&quot;:1080,&quot;w&quot;:2.02,&quot;batMin&quot;:null,&quot;arch&quot;:&quot;x64&quot;,&quot;avx2&quot;:null,&quot;gpuMem&quot;:null}},&quot;slotIds&quot;:{&quot;power&quot;:[&quot;anker_a1383&quot;,&quot;anker_a1695&quot;,&quot;ugreen_pb536&quot;]},&quot;pickOnlySlots&quot;:true,&quot;buy&quot;:{&quot;anker_a1383&quot;:{&quot;type&quot;:&quot;power_bank&quot;,&quot;ja&quot;:&quot;Anker Power Bank (20000mAh, 87W, Built-In USB-C ケーブル) A1383&quot;,&quot;en&quot;:&quot;Anker Power Bank (20000mAh, 87W, Built-In USB-C Cable) A1383&quot;,&quot;jp&quot;:&quot;B0CXNVT5J4&quot;,&quot;us&quot;:&quot;B0CXDXP8VR&quot;,&quot;cards&quot;:{&quot;ja&quot;:{&quot;asin&quot;:&quot;B0CXNVT5J4&quot;,&quot;asinUS&quot;:&quot;B0CXDXP8VR&quot;,&quot;title&quot;:&quot;Anker Power Bank (20000mAh, 87W, Built-In USB-C ケーブル) A1383&quot;,&quot;searchQuery&quot;:&quot;Anker Power Bank (20000mAh, 87W, Built-In USB-C ケーブル) A1383&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/41nUldy2uhL._AC_SY300_SX300_QL70_ML2_.jpg&quot;,&quot;jan&quot;:&quot;4571411183867&quot;},&quot;en&quot;:{&quot;asin&quot;:&quot;B0CXNVT5J4&quot;,&quot;asinUS&quot;:&quot;B0CXDXP8VR&quot;,&quot;title&quot;:&quot;Anker Power Bank (20000mAh, 87W, Built-In USB-C Cable) A1383&quot;,&quot;searchQuery&quot;:&quot;Anker Power Bank (20000mAh, 87W, Built-In USB-C Cable) A1383&quot;,&quot;imageUrl&quot;:&quot;https://m.media-amazon.com/images/I/61jWG2JyYNL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot;}},&quot;rank_jp&quot;:0,&quot;rank_us&quot;:0}},&quot;accessory&quot;:{&quot;ja&quot;:{&quot;power_bank&quot;:&quot;anker_a1383&quot;},&quot;en&quot;:{&quot;power_bank&quot;:&quot;anker_a1383&quot;}},&quot;live&quot;:[&quot;JP&quot;,&quot;US&quot;,&quot;CA&quot;,&quot;GB&quot;,&quot;DE&quot;,&quot;FR&quot;,&quot;IT&quot;,&quot;ES&quot;]};
const ID = &quot;windows-blog-spec-calc&quot;;

(function () {
// 計算の元（ブラウザのツールと calc.mjs の両方がこのファイルを使う）。依存なし・副作用なし。
// 値（公式の最小・推奨、この記事で決めた目安、商品の仕様）は calc.mjs が data.json の facts と sku_specs.json から M に入れて渡す。
//
// 公式の最小（work = write）= Windows 11 の最小（メモリ・ストレージ・画面）。
// 公式の最小（work = photo）= Windows 11 と Adobe（Lightroom Classic・Lightroom・Photoshop の Windows）の大きいほう。
//   メモリは Adobe の最小 8GB（推奨 16GB 以上）、ストレージは Windows 11 の 64GB + アプリの空き容量の最大、
//   GPU は DirectX 12・GPU メモリの最大、CPU は AVX2 対応の Intel / AMD か、Adobe が書く Arm（Lightroom Classic はエミュレーション経由）。
// メモリの段 = 公式の値以上の、この記事で決めた段（M.memTiers: 4・8・16・32・64GB）のうちいちばん小さい段。
// この記事の目安（公式ではない）= メモリは写真編集なら Adobe の推奨、ストレージ・解像度・質量・電池はこの記事で決めた値（M.article）。
// 余裕 = 値 − 比べる相手。比べる相手に対して tightRatio 未満なら「ぎりぎり」。

function snapTier(x, tiers) {
  const t = tiers.find((s) =&gt; s &gt;= x - 1e-9);
  return t == null ? null : t;
}

const tight = (margin, of, r) =&gt; Math.abs(margin) / Math.abs(of) &lt; r;

// work: &quot;write&quot; | &quot;photo&quot;、carry: &quot;daily&quot; | &quot;home&quot;
function spec(M, work, carry) {
  const o = M.official[work];
  const a = M.article[work];
  const memTier = snapTier(o.mem, M.memTiers);
  const memTight = tight(memTier - o.mem, o.mem, M.tightRatio);
  const memTarget = a.mem; // この記事の目安: 写真編集は Adobe の推奨の下限 16GB、書くだけは 8GB（Windows 11 の最小 4GB の2倍。この記事で決めた値）
  const memTargetTight = o.rec != null &amp;&amp; tight(memTarget - o.rec, o.rec, M.tightRatio);
  const stoNeed = M.win11Sto + (o.disk || 0);
  const stoTier = snapTier(stoNeed, M.stoTiers);
  const daily = carry === &quot;daily&quot;;
  const status = work === &quot;photo&quot; ? &quot;cond&quot; : &quot;ok&quot;; // 写真編集はメモリが推奨の下限ちょうど（ぎりぎり）
  return { o, a, memTier, memTight, memTarget, memTargetTight, stoNeed, stoTier, daily,
    wMax: daily ? M.carry.wMax : null, batMin: daily ? M.carry.batMin : null, status };
}

// 商品 p（{ mem, sto, resW, resH, w, batMin, arch, avx2, gpuMem }）が、条件の目安を全部満たすか
function productFits(M, p, work, carry) {
  const a = M.article[work];
  if (p.mem &lt; a.mem - 1e-9 || p.sto &lt; a.sto - 1e-9) return false;
  if (p.resW &lt; M.article.res[0] || p.resH &lt; M.article.res[1]) return false;
  if (work === &quot;photo&quot;) {
    const cpuOk = (p.arch === &quot;x64&quot; &amp;&amp; p.avx2 === true) || p.arch === &quot;arm&quot;;
    // GPU メモリが仕様ページに無い機種は、Adobe の GPU の最小を満たすか判定できないので候補にしない
    // Arm は Photoshop の Windows on ARM の表の GPU メモリ（4GB）で見る
    const gNeed = p.arch === &quot;arm&quot; ? M.official.photo.gpuMemArm : M.official.photo.gpuMem;
    if (!cpuOk || p.gpuMem == null || p.gpuMem &lt; gNeed - 1e-9) return false;
  }
  if (carry === &quot;daily&quot; &amp;&amp; (p.w &gt; M.carry.wMax + 1e-9 || p.batMin == null || p.batMin &lt; M.carry.batMin - 1e-9)) return false;
  return true;
}

// 記事内ツールの入力と結果（この記事専用）。計算は model.mjs の関数だけを使う。
// 入力は条件だけ（使い方・持ち運び）。機種は選ばせず、公式の最小（Windows 11・Adobe）と、この記事の目安を分けて出す。
// 商品は、その国のストアに基準を満たす出品が1つでもあるときだけ picks を返す（日本は0件なので picks を返さない → 選択肢を灰色にしない）。
// build-tool.mjs がこのファイルと model.mjs をそのまま埋め込むので、import は書かない（model の関数は同じスコープにある）。

const T_ = {
  ja: {
    work: &quot;使い方&quot;, carry: &quot;持ち運び&quot;,
    write: &quot;書くだけ&quot;, photo: &quot;書く＋写真編集（Lightroom Classic・Photoshop など）&quot;, photoS: &quot;書く＋写真&quot;,
    daily: &quot;毎日持ち歩く&quot;, home: &quot;ほぼ据え置き&quot;,
    offHead: &quot;公式の最小&quot;,
    offWrite: (m, s, c, tpm) =&gt; `公式の最小（Windows 11）: メモリ ${m}GB・ストレージ ${s}GB・互換性のある64ビット CPU（${c}コア以上）・DirectX 12 対応のグラフィックス・TPM ${tpm}・720p の画面`,
    offWriteNote: &quot;ブラウザやエディターにはメモリの公式の数字が無いので、Windows 11 の最小で判定しています&quot;,
    offPhoto: (m, rec) =&gt; `公式の最小（Adobe）: メモリ ${m}GB（推奨は ${rec}GB 以上）。Lightroom Classic・Lightroom・Photoshop とも同じです`,
    cpu: &quot;CPU: Lightroom Classic と Photoshop は AVX2 に対応した Intel か AMD の CPU が要件です。Celeron N4120 のように AVX2 が無い CPU は満たしません。型番ごとに Intel か AMD の仕様ページで確かめてください&quot;,
    lr: &quot;クラウド版の Lightroom の CPU の要件は SSE 4.2 対応の 64ビットの Intel か AMD で、AVX2 と Arm の記載はありません&quot;,
    arm: (g) =&gt; `Arm（Snapdragon など）: Lightroom Classic は「エミュレーション経由」で対応と書き、Photoshop は Arm 版の表で GPU メモリ ${g}GB を最小にしています（速さは試していません）`,
    gpu: (a, b, k) =&gt; `GPU: DirectX 12 対応で、GPU メモリは Lightroom Classic と Lightroom が ${a}GB、Photoshop が ${b}GB 以上（4K 以上の画面では ${k}GB を推奨）。仕様ページに GPU メモリが書かれていない機種は判定していません`,
    disk: (need, base, app, tier) =&gt; (app ? `公式の数字だけのストレージ: Windows 11 の ${base}GB ＋ アプリの ${app}GB で ${need}GB` : `公式の数字だけのストレージ: Windows 11 の ${base}GB`) + `で、SSD ${tier}GB に収まります（更新で必要な容量が増えることがあると Microsoft が注記しています）`,
    multi: &quot;公式の数字はアプリを1つずつ使うときのものです。同時に使う場合は判定していません&quot;,
    artHead: &quot;この記事の目安（公式の値ではありません）&quot;,
    artMem: (x, tight) =&gt; `メモリ: ${x}GB 以上${tight ? &quot;（Adobe の推奨の下限ちょうどで、ぎりぎり）&quot; : &quot;（Windows 11 の最小の2倍。この記事で決めた値）&quot;}`,
    memTight: (x, who) =&gt; `${x}GB のノートは${who}の最小ちょうどで、ぎりぎりです`,
    artSto: (x, photo) =&gt; `SSD: ${x}GB 以上${photo ? &quot;（写真やカタログの分は公式の数字が無いので、この記事で決めた値）&quot; : &quot;（この記事で決めた値）&quot;}`,
    artRes: (w, h) =&gt; `画面: ${w}×${h} 以上（Lightroom Classic と Photoshop の推奨解像度と同じ値）`,
    artW: (x) =&gt; `質量: ${x}kg 以下`,
    artBat: (x) =&gt; `電池: メーカーが示す時間のうち短いほうが ${x}時間以上（機種を絞るための線で、測定法の違う値どうしを比べる意味ではありません）`,
    bat: &quot;電池の時間は同じ測定法の値どうしで比べます。日本の測定法は JEITA 3.0 で、動画再生時とアイドル時を別々に示します。測定法の違う値の換算や、実際に使える時間の推定はしていません&quot;,
    kb: &quot;日本語配列かどうかは、メーカーの仕様に「日本語配列」と書いてあるかで確かめます&quot;,
    vOk: (m, s) =&gt; `○ メモリ ${m}GB・SSD ${s}GB から`, vCond: (m, s) =&gt; `△ メモリ ${m}GB（ぎりぎり）・SSD ${s}GB から`,
    memL: (x) =&gt; `目安 ${x}GB`, needL: (x) =&gt; `公式の最小 ${x}GB`,
    note: &quot;結果は Microsoft・Adobe・JEITA・Intel の公式の資料（2026年10月の確認）から出しています。公式の最小は、メモリを 4・8・16・32・64GB、SSD を 128GB・256GB・512GB・1TB・2TB の段（この記事で決めた段）に当てはめています。ストレージ・画面・質量・電池の目安は、この記事で決めた値です。速さや快適さは実機で試しておらず、判定していません。&quot;,
  },
  en: {
    work: &quot;Use&quot;, carry: &quot;Carrying&quot;,
    write: &quot;Writing only&quot;, photo: &quot;Writing + photo editing (Lightroom Classic, Photoshop, etc.)&quot;, photoS: &quot;Writing + photos&quot;,
    daily: &quot;Carry it daily&quot;, home: &quot;Mostly at home&quot;,
    offHead: &quot;Official minimum&quot;,
    offWrite: (m, s, c, tpm) =&gt; `Official minimum (Windows 11): ${m} GB RAM, ${s} GB storage, a compatible 64-bit CPU with ${c} or more cores, DirectX 12 graphics, TPM ${tpm}, a 720p display`,
    offWriteNote: &quot;Browsers and editors publish no RAM figure, so this uses the Windows 11 minimum&quot;,
    offPhoto: (m, rec) =&gt; `Official minimum (Adobe): ${m} GB RAM (${rec} GB or more recommended). The same for Lightroom Classic, Lightroom and Photoshop`,
    cpu: &quot;CPU: Lightroom Classic and Photoshop require an Intel or AMD CPU with AVX2. CPUs without AVX2, such as the Celeron N4120, don&apos;t qualify. Check each CPU model on Intel&apos;s or AMD&apos;s spec page&quot;,
    lr: &quot;The cloud-based Lightroom asks for a 64-bit Intel or AMD CPU with SSE 4.2 and lists neither AVX2 nor Arm&quot;,
    arm: (g) =&gt; `Arm (Snapdragon and others): Lightroom Classic lists ARM processors &quot;via emulation,&quot; and Photoshop&apos;s Windows on ARM table sets a ${g} GB GPU memory minimum (speed not tested)`,
    gpu: (a, b, k) =&gt; `GPU: DirectX 12, with at least ${a} GB of GPU memory for Lightroom Classic and Lightroom and ${b} GB for Photoshop (${k} GB recommended for 4K displays and above). Models whose spec pages don&apos;t list GPU memory aren&apos;t judged`,
    disk: (need, base, app, tier) =&gt; (app ? `Storage on official figures alone: Windows 11&apos;s ${base} GB + ${app} GB for the apps = ${need} GB` : `Storage on official figures alone: Windows 11&apos;s ${base} GB`) + `, which fits a ${tier} GB SSD (Microsoft notes updates can need more)`,
    multi: &quot;Each official figure is for one app on its own; running several together isn&apos;t judged&quot;,
    artHead: &quot;This article&apos;s own targets (not official figures)&quot;,
    artMem: (x, tight) =&gt; `Memory: ${x} GB or more${tight ? &quot; (exactly the low end of Adobe&apos;s recommendation, borderline)&quot; : &quot; (twice Windows 11&apos;s minimum; this article&apos;s choice)&quot;}`,
    memTight: (x, who) =&gt; `${x === 8 ? &quot;An&quot; : &quot;A&quot;} ${x} GB laptop is exactly at ${who}&apos;s minimum, borderline`,
    artSto: (x, photo) =&gt; `SSD: ${x} GB or more${photo ? &quot; (there&apos;s no official figure for photos and catalogs, so this is the article&apos;s own choice)&quot; : &quot; (this article&apos;s choice)&quot;}`,
    artRes: (w, h) =&gt; `Display: ${w} × ${h} or higher (the same as the recommended resolution for Lightroom Classic and Photoshop)`,
    artW: (x) =&gt; `Weight: ${x} kg or less`,
    artBat: (x) =&gt; `Battery: the shorter of the maker&apos;s stated figures at ${x} hours or more (a line for narrowing down models, not a way to compare different tests)`,
    bat: &quot;Compare battery figures only when they come from the same test, and note which test each comes from. Figures from different tests aren&apos;t converted, and real-world run time isn&apos;t estimated&quot;,
    kb: &quot;Check the keyboard layout on the maker&apos;s spec page&quot;,
    vOk: (m, s) =&gt; `✓ From ${m} GB RAM and a ${s} GB SSD`, vCond: (m, s) =&gt; `△ From ${m} GB RAM (borderline) and a ${s} GB SSD`,
    memL: (x) =&gt; `Target ${x} GB`, needL: (x) =&gt; `Official min ${x} GB`,
    note: &quot;Results come from official documents by Microsoft, Adobe, JEITA and Intel (checked October 2026). Official minimums are matched to memory tiers of 4, 8, 16, 32 and 64 GB and SSD tiers of 128 GB, 256 GB, 512 GB, 1 TB and 2 TB (tiers chosen for this article). The storage, display, weight and battery targets are this article&apos;s own choices. Speed and comfort weren&apos;t tested on real hardware and aren&apos;t judged.&quot;,
  },
};

function fields(M, lang) {
  const t = T_[lang];
  return [
    { name: &quot;work&quot;, type: &quot;select&quot;, label: t.work, value: &quot;write&quot;, options: M.works.map((x) =&gt; ({ value: x, label: t[x], short: t[x + &quot;S&quot;] })) },
    { name: &quot;carry&quot;, type: &quot;select&quot;, label: t.carry, value: &quot;daily&quot;, options: M.carries.map((x) =&gt; ({ value: x, label: t[x] })) },
  ];
}

function compute(v, M, lang) {
  const t = T_[lang];
  if (!M.works.includes(v.work) || !M.carries.includes(v.carry)) return { status: &quot;error&quot;, lines: [] };
  const s = spec(M, v.work, v.carry);
  const photo = v.work === &quot;photo&quot;;
  const lines = [];
  lines.push(t.offWrite(M.official.write.mem, M.win11Sto, M.win11Cores, M.tpm));
  if (!photo) { lines.push(t.offWriteNote); lines.push(t.memTight(s.memTier, &quot;Windows 11&quot;)); }
  if (photo) {
    lines.push(t.offPhoto(s.o.mem, s.o.rec));
    lines.push(t.memTight(s.memTier, &quot;Adobe&quot;));
    lines.push(t.cpu);
    lines.push(t.lr);
    lines.push(t.arm(M.gpu.psArm));
    lines.push(t.gpu(M.gpu.lrc, M.gpu.ps, M.rec4kGpu));
    lines.push(t.multi);
  }
  lines.push(t.disk(s.stoNeed, M.win11Sto, s.o.disk || 0, s.stoTier));
  lines.push(t.artHead);
  lines.push(t.artMem(s.memTarget, s.memTargetTight));
  lines.push(t.artSto(s.a.sto, photo));
  lines.push(t.artRes(M.article.res[0], M.article.res[1]));
  if (s.daily) { lines.push(t.artW(s.wMax)); lines.push(t.artBat(s.batMin)); lines.push(t.bat); }
  lines.push(t.kb);
  const verdict = s.status === &quot;cond&quot; ? t.vCond(s.memTarget, s.a.sto) : t.vOk(s.memTarget, s.a.sto);
  const need = s.o.rec ?? s.o.mem;
  const max = Math.max(s.memTarget, need) * 1.5;
  const meter = { min: 0, max, value: s.memTarget, ok: [need, max], unit: &quot;GB&quot;, valueLabel: t.memL(s.memTarget), okLabel: t.needL(s.o.mem) };
  // 型 D の仕様書の行: この記事の目安（メモリ・SSD・画面・質量・電池）と、その元の公式の最小（spec の結果だけ）
  const ja = lang === &quot;ja&quot;, who = photo ? &quot;Adobe&quot; : &quot;Microsoft&quot;;
  const sheet = [
    { key: ja ? &quot;メモリ&quot; : &quot;Memory&quot;, value: ja ? `${s.memTarget}GB 以上` : `${s.memTarget} GB or more`, reason: ja ? `公式の最小 ${s.o.mem}GB${s.o.rec ? `・推奨 ${s.o.rec}GB` : &quot;&quot;}${photo ? &quot;&quot; : &quot;（この記事は2倍）&quot;}` : `Official minimum ${s.o.mem} GB${s.o.rec ? `, recommended ${s.o.rec} GB` : &quot;&quot;}${photo ? &quot;&quot; : &quot; (this article doubles it)&quot;}`, src: who, tight: s.memTargetTight },
    { key: &quot;SSD&quot;, value: ja ? `${s.a.sto}GB 以上` : `${s.a.sto} GB or more`, reason: ja ? `公式の数字だけなら ${s.stoNeed}GB → ${s.stoTier}GB の段` : `Official figures alone: ${s.stoNeed} GB → ${s.stoTier} GB tier`, src: who },
    { key: ja ? &quot;画面&quot; : &quot;Display&quot;, value: `${M.article.res[0]}×${M.article.res[1]}`, reason: ja ? &quot;Lightroom Classic・Photoshop の推奨解像度&quot; : &quot;Lightroom Classic / Photoshop recommended resolution&quot;, src: &quot;Adobe&quot; },
  ];
  if (s.daily) {
    sheet.push({ key: ja ? &quot;質量&quot; : &quot;Weight&quot;, value: ja ? `${s.wMax}kg 以下` : `${s.wMax} kg or less`, reason: ja ? &quot;毎日持ち歩く（この記事の線）&quot; : &quot;Carried daily (this article&apos;s line)&quot;, src: ja ? &quot;この記事&quot; : &quot;This article&quot; });
    sheet.push({ key: ja ? &quot;電池&quot; : &quot;Battery&quot;, value: ja ? `${s.batMin}時間以上` : `${s.batMin} h or more`, reason: ja ? &quot;メーカーの時間の短いほう（この記事の線）&quot; : &quot;The shorter maker figure (this article&apos;s line)&quot;, src: ja ? &quot;この記事&quot; : &quot;This article&quot; });
  }
  const out = { status: s.status, verdict, lines, meter, sheet };
  // その国のストアに基準を満たす出品が1つも無ければ picks を返さない（商品の無い表示と灰色をやめる）
  const mk = lang === &quot;ja&quot; ? &quot;jp&quot; : &quot;us&quot;;
  const ids = Object.keys(M.products || {});
  if (ids.some((id) =&gt; M.buy &amp;&amp; M.buy[id] &amp;&amp; M.buy[id][mk])) out.picks = ids.filter((id) =&gt; productFits(M, M.products[id], v.work, v.carry));
  return out;
}

const NOTE = (lang) =&gt; T_[lang].note;

// AI・検索向けの早見表に出す条件（使い方 × 持ち運び）
function presets() {
  const P = (work, carry) =&gt; ({ work, carry });
  return [P(&quot;write&quot;, &quot;daily&quot;), P(&quot;write&quot;, &quot;home&quot;), P(&quot;photo&quot;, &quot;daily&quot;), P(&quot;photo&quot;, &quot;home&quot;)];
}

// カードに出す仕様（その商品の構成のうち、この計算で使った値）
function pickSpecs(id, v, M, lang) {
  const p = M.products[id];
  if (!p) return [];
  const ja = lang === &quot;ja&quot;;
  const sto = p.sto &gt;= 1024 ? `${p.sto / 1024}${ja ? &quot;&quot; : &quot; &quot;}TB` : `${p.sto}${ja ? &quot;&quot; : &quot; &quot;}GB`;
  return [
    ja ? `メモリ ${p.mem}GB・SSD ${sto}` : `${p.mem} GB memory, ${sto} SSD`,
    ja ? `画面 ${p.resW}×${p.resH}` : `${p.resW} × ${p.resH} display`,
    ja ? `質量 ${p.w}kg` : `${p.w} kg`,
    ...(p.batMin != null ? [ja ? `電池 最大${p.batMin}時間（メーカーの測定・短いほうの値）` : `Up to ${p.batMin} hours battery (maker&apos;s test, shorter figure)`] : []),
  ];
}

(window.__guideTools = window.__guideTools || []).push({ M: M, ID: ID, LAYOUT: &quot;sheet&quot;, RESULT: null, fields: fields, compute: compute, NOTE: typeof NOTE !== &quot;undefined&quot; ? NOTE : null, pickSpecs: typeof pickSpecs === &quot;function&quot; ? pickSpecs : null, tiles: typeof tiles === &quot;function&quot; ? tiles : null });
})();
})();&lt;/script&gt;
&lt;h2 id=&quot;windows-11-minimums-and-this-articles-targets&quot;&gt;Windows 11 minimums and this article’s targets&lt;/h2&gt;
&lt;p&gt;Per Microsoft, Windows 11 needs at least 4 GB of RAM, 64 GB of storage and a compatible 64-bit CPU with 2 cores or more. For graphics, it needs DirectX 12 with a WDDM 2.0 driver. It also needs TPM 2.0 and a 720p display.&lt;/p&gt;
&lt;p&gt;Writing needs Windows 11’s 64 GB and photo editing needs 74 GB with 10 GB for Adobe’s apps, so both fit on a 128 GB SSD. Microsoft notes updates can need more space, and a figure for photos and catalogs wasn’t found on the official pages. So this article’s own targets are 256 GB for writing and 512 GB for photo editing.&lt;/p&gt;









































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align:left&quot;&gt;Item&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Official minimum&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Target (writing only)&lt;/th&gt;&lt;th style=&quot;text-align:left&quot;&gt;Target (photo editing)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;RAM&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Windows 11 4 GB, Adobe 8 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;8 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;16 GB (borderline, at the low end of the recommendation)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Storage&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Windows 11 64 GB, photo editing 74 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;256 GB&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;512 GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;Screen&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Windows 11 720p, Photoshop 1280 × 800 at 100% scaling, or 1920 × 1080 at 150% scaling&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1920 × 1080 or higher&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;1920 × 1080 or higher&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;CPU&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Compatible 64-bit, 2 cores or more&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Per Windows 11’s requirements&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;AVX2 Intel or AMD, or Arm&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;text-align:left&quot;&gt;GPU&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;Windows 11 DirectX 12 with a WDDM 2.0 driver; for photo editing, Adobe’s GPU memory 2 GB (Arm Photoshop 4 GB)&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;DirectX 12 with a WDDM 2.0 driver, per Windows 11&lt;/td&gt;&lt;td style=&quot;text-align:left&quot;&gt;DirectX 12 with a WDDM 2.0 driver, plus 2 GB or more on Intel or AMD and 4 GB or more on Arm&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;checking-the-cpu-and-gpu-memory-for-photo-editing&quot;&gt;Checking the CPU and GPU memory for photo editing&lt;/h2&gt;
&lt;p&gt;Per Adobe and Intel, Lightroom Classic and Photoshop require an Intel or AMD CPU with AVX2. Intel’s spec page lists only SSE4.2 for the Celeron N4120, with no AVX2, so it doesn’t meet that requirement. Check each model’s CPU on Intel’s or AMD’s spec page.&lt;/p&gt;
&lt;p&gt;Per Adobe’s Windows requirements, the cloud-based Lightroom asks for a 64-bit Intel or AMD CPU with SSE 4.2 and has no AVX2 line. The AVX2 requirement belongs to Lightroom Classic and Photoshop.&lt;/p&gt;
&lt;p&gt;For Arm CPUs such as Snapdragon, Lightroom Classic lists ARM processors “via emulation,” and Photoshop’s Windows on ARM table sets a 4 GB GPU memory minimum. The cloud-based Lightroom’s Windows requirements don’t mention Arm.&lt;/p&gt;
&lt;p&gt;The GPU must support DirectX 12, with GPU memory of at least 2 GB for Lightroom Classic and Lightroom and 1.5 GB for Photoshop. Adobe recommends 4 GB for 4K displays and above. By this guide’s method, models whose spec pages don’t list GPU memory aren’t judged against Adobe’s minimum.&lt;/p&gt;
&lt;h2 id=&quot;daily-carry-14-kg-or-less-and-10-hours-or-more-of-battery&quot;&gt;Daily carry: 1.4 kg or less and 10 hours or more of battery&lt;/h2&gt;
&lt;p&gt;By this article’s unofficial targets, for daily carry, the target is 1.4 kg or less and at least 10 hours for the shorter of the maker’s stated battery figures. The 10 hours line is only for narrowing down models; it doesn’t mean figures from different tests can be compared.&lt;/p&gt;
&lt;p&gt;Per the makers’ spec pages, weights run 1.36 kg for a 13.8-inch example, up to 1.90 kg for a 15.6-inch one and from 2.02 kg for a 17.3-inch one. Only the 13.8-inch example fits this article’s 1.4 kg target, and only just (borderline). The 15.6- and 17.3-inch examples are sizes for using mostly at a desk.&lt;/p&gt;
&lt;p&gt;Even a laptop with 10 hours or more of battery can run out on a heavy day. A power bank that gives 45 W or more from one USB-C port and is under 100 Wh can top it up.&lt;/p&gt;
&lt;p&gt;Check the laptop’s spec page for USB PD charging and its AC adapter’s wattage. 45 W is only a floor; if the adapter is rated above the power bank’s one-port output, charging may be slow or fail.&lt;/p&gt;
&lt;p&gt;It is the cheapest checked product meeting the conditions. It has 100+ ratings and 4.0+ stars and is sold new by Amazon.com or the maker, not as a gray-market import or recalled model. As of October 2026, the pick gives up to 65 W from one USB-C port and holds 72 Wh; the 87 W in its name is the total.&lt;/p&gt;
&lt;h3 id=&quot;for-a-day-when-the-battery-runs-short&quot;&gt;For a day when the battery runs short&lt;/h3&gt;
&lt;p&gt;※ Sold by AnkerDirect (maker official). The rating count is shared with other models on the same listing.&lt;/p&gt;
&lt;div class=&quot;guide-pick not-prose&quot; lang=&quot;en&quot;&gt;  &lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Anker Power Bank (20000mAh, 87W, Built-In USB-C Cable) A1383&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://m.media-amazon.com/images/I/61jWG2JyYNL._AC_SY300_SX300_QL70_FMwebp_.jpg&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Anker Power Bank (20000mAh, 87W, Built-In USB-C Cable) A1383&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B0CXNVT5J4?q=Anker+Power+Bank+%2820000mAh%2C+87W%2C+Built-In+USB-C+Cable%29+A1383&amp;amp;us=B0CXDXP8VR&amp;amp;l=en&quot; aria-label=&quot;View Anker Power Bank (20000mAh, 87W, Built-In USB-C Cable) A1383 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;/aside&gt;   &lt;/div&gt;
&lt;h2 id=&quot;how-to-compare-battery-life-figures&quot;&gt;How to compare battery life figures&lt;/h2&gt;
&lt;p&gt;By this guide’s method, battery figures are compared only within the same test, such as one maker’s web-browsing test against the same test. Figures from different tests aren’t converted, and real-world run time isn’t estimated.&lt;/p&gt;
&lt;p&gt;Per the makers’ spec pages, the Surface Laptop 13.8-inch (8th Edition) is rated up to 20 hours of video and up to 16 hours of web browsing in Microsoft’s tests. Those ran at 150 nits on preproduction units, so only compare them with figures from the same test.&lt;/p&gt;
&lt;h2 id=&quot;screen-resolution-and-keyboard-layout&quot;&gt;Screen resolution and keyboard layout&lt;/h2&gt;
&lt;p&gt;By this article’s unofficial targets, the display target is 1920 × 1080 or higher, the same as the recommended resolution for Lightroom Classic and Photoshop.&lt;/p&gt;
&lt;p&gt;Per the official minimums, a 1366 × 768 screen meets the minimums for Windows 11 and Lightroom Classic. It’s exactly at Lightroom’s 1280 × 768 height, so it’s borderline. It’s 32 pixels short of Photoshop’s minimum height, which is 1280 × 800 at 100% scaling.&lt;/p&gt;
&lt;p&gt;When buying in the US, look for the keyboard layout line (US English, UK or Japanese) on the spec page or store listing. Also check whether the seller marks it as an import.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;is-4-gb-or-8-gb-of-ram-enough-for-just-writing-a-blog&quot;&gt;Is 4 GB or 8 GB of RAM enough for just writing a blog?&lt;/h3&gt;
&lt;p&gt;By official requirements, a 4 GB laptop is exactly at Windows 11’s 4 GB minimum for writing, so it’s borderline, while 8 GB is this article’s target. That target isn’t an official figure, and it comes with a 256 GB SSD.&lt;/p&gt;
&lt;h3 id=&quot;how-much-ram-do-i-need-for-blog-photo-editing-in-lightroom-or-photoshop&quot;&gt;How much RAM do I need for blog photo editing in Lightroom or Photoshop?&lt;/h3&gt;
&lt;p&gt;Per Adobe’s Windows requirements, Lightroom Classic, Lightroom and Photoshop all need at least 8 GB, so an 8 GB laptop is exactly at the minimum and borderline. This article’s target is 16 GB, which is exactly the low end of Adobe’s recommendation, so it’s borderline too.&lt;/p&gt;
&lt;p&gt;Each official memory figure is for one app on its own; there’s no figure for running Lightroom Classic and Photoshop together, so that isn’t judged here.&lt;/p&gt;
&lt;h3 id=&quot;can-a-cheap-celeron-laptop-run-lightroom-classic-or-photoshop&quot;&gt;Can a cheap Celeron laptop run Lightroom Classic or Photoshop?&lt;/h3&gt;
&lt;p&gt;Per Adobe and Intel, Lightroom Classic and Photoshop require an Intel or AMD CPU with AVX2. Intel’s spec page lists only SSE4.2 for the Celeron N4120, with no AVX2, so it doesn’t meet that requirement.&lt;/p&gt;
&lt;p&gt;Per Adobe’s Windows requirements, the cloud-based Lightroom asks for a 64-bit Intel or AMD CPU with SSE 4.2 and has no AVX2 line. The AVX2 requirement belongs to Lightroom Classic and Photoshop.&lt;/p&gt;
&lt;h3 id=&quot;is-a-128gb-ssd-enough&quot;&gt;Is a 128GB SSD enough?&lt;/h3&gt;
&lt;p&gt;By official requirements, writing needs Windows 11’s 64 GB and photo editing needs 74 GB with 10 GB for Adobe’s apps, so both fit on a 128 GB SSD. Microsoft notes updates can need more space, and a figure for photos and catalogs wasn’t found on the official pages.&lt;/p&gt;
&lt;p&gt;So this article’s own targets are 256 GB for writing and 512 GB for photo editing.&lt;/p&gt;
&lt;h3 id=&quot;is-a-1366--768-screen-okay&quot;&gt;Is a 1366 × 768 screen okay?&lt;/h3&gt;
&lt;p&gt;Per the official minimums, a 1366 × 768 screen meets the minimums for Windows 11 and Lightroom Classic. It’s exactly at Lightroom’s 1280 × 768 height, so it’s borderline.&lt;/p&gt;
&lt;p&gt;It’s 32 pixels short of Photoshop’s minimum height, which is 1280 × 800 at 100% scaling.&lt;/p&gt;
&lt;h3 id=&quot;is-it-okay-to-buy-a-windows-10-or-used-laptop&quot;&gt;Is it okay to buy a Windows 10 or used laptop?&lt;/h3&gt;
&lt;p&gt;Per Microsoft, Windows 10 support ended on October 14, 2025, and consumer Extended Security Updates (ESU) run only until October 12, 2027. If you buy used, pick a machine that meets Windows 11’s requirements, including a compatible 64-bit CPU (check with PC Health Check) and TPM 2.0.&lt;/p&gt;

&lt;details class=&quot;guide-data&quot;&gt;&lt;summary&gt;Data and formulas used (for verification)&lt;/summary&gt;&lt;div class=&quot;guide-sources&quot;&gt;&lt;p&gt;&lt;strong&gt;How this was checked&lt;/strong&gt;:&lt;/p&gt;&lt;p&gt;Sources: &lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Windows 11 specifications&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/whats-new/windows-11-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Windows 11 requirements&lt;/a&gt;, &lt;a href=&quot;https://www.microsoft.com/en-us/windows/end-of-support&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Windows 10 end of support&lt;/a&gt; and &lt;a href=&quot;https://www.microsoft.com/en-us/windows/extended-security-updates&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Windows 10 ESU&lt;/a&gt; ／ &lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Lightroom Classic system requirements&lt;/a&gt;, &lt;a href=&quot;https://helpx.adobe.com/lightroom/desktop/introduction/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Lightroom system requirements&lt;/a&gt; and &lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Photoshop system requirements&lt;/a&gt; ／ &lt;a href=&quot;https://www.intel.com/content/www/us/en/products/sku/197309/intel-celeron-processor-n4120-4m-cache-up-to-2-60-ghz/specifications.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Intel Celeron N4120 specifications&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Official minimum for writing = Windows 11’s minimum requirements (two Microsoft pages): 4 GB of RAM, 64 GB of storage, A compatible 64-bit processor or SoC, 1 GHz or faster, with 2 or more cores (Check with PC Health Check), DirectX 12 or later with a WDDM 2.0 driver, TPM 2.0, and 720p (HD) display larger than 9 inches diagonally, 8 bits per color channel. Browsers and editors publish no RAM figure, so writing is judged against the Windows 11 minimum.&lt;/li&gt;
&lt;li&gt;Official minimum for photo editing = the higher of Windows 11 and Adobe’s Windows requirements. RAM: Lightroom Classic 8 GB, Lightroom 8 GB, Photoshop 8 GB (all recommend 16 GB or more). CPU: Lightroom Classic and Photoshop require Intel or AMD CPU with AVX2 support required; the cloud-based Lightroom asks for Intel or AMD, 64-bit with SSE 4.2, 2 GHz or faster (no AVX2 or Arm line). Arm: Lightroom Classic lists ARM processors via emulation; Photoshop lists WinARM, with 4 GB of GPU memory in its Windows on ARM table. GPU: GPU with DirectX 12 support, 2 GB of GPU memory for Lightroom Classic, GPU with DirectX 12 (feature level 12_0 or later), 1.5 GB of GPU memory (4 GB recommended for 4K displays and greater) for Photoshop. Free space: Lightroom Classic 8 GB, Lightroom 10 GB, Photoshop 10 GB (for the app). Each figure is per app; running them together isn’t judged.&lt;/li&gt;
&lt;li&gt;Official minimums are matched to memory tiers of 4, 8, 16, 32 and 64 GB and SSD tiers of 128 GB, 256 GB, 512 GB, 1 TB and 2 TB (tiers chosen for this article). SSD needed = Windows 11’s 64 GB plus the largest app free-space figure. If the headroom (value minus what it’s compared with) is under 10% of what it’s compared with, it’s marked borderline (a threshold set for this article). 4 GB is exactly Windows 11’s minimum, 8 GB exactly Adobe’s minimum and 16 GB exactly the low end of Adobe’s recommendation, so each is borderline.&lt;/li&gt;
&lt;li&gt;This article’s own targets (not official figures): memory 8 GB for writing (twice Windows 11’s minimum) and 16 GB for photo editing (the low end of Adobe’s recommendation). Storage 256 GB for writing and 512 GB for photo editing (official figures fit in 128 GB, but Microsoft notes updates can need more and there’s no official figure for photos and catalogs). Display 1920 x 1080 or higher (the same as the recommended resolution for Lightroom Classic and Photoshop). For daily carry, 1.4 kg or less, and the shorter of the maker’s stated battery figures at 10 hours or more (a line for narrowing down models, not a way to compare different tests).&lt;/li&gt;
&lt;li&gt;Display check: 1366 x 768 meets Windows 11 (720p) and Lightroom Classic’s 1024 x 768 minimum, is exactly at Lightroom’s 1280 x 768 height, and is 32 pixels short of Photoshop’s minimum height at 100% scaling (1280 x 800 at 100% scaling, or 1920 x 1080 at 150% scaling). Weight examples are from makers’ spec pages: 13.8-inch 1.36 kg (Surface Laptop 13.8-inch (8th Edition), Japanese spec page; the US page says 1342 g), 15.6-inch 1.9 kg (Dell 15 DC15255, maximum), 17.3-inch 2.02 kg (HP OmniBook 3 17-dp0000, starting weight).&lt;/li&gt;
&lt;li&gt;Battery figures are used exactly as the maker states them, with their test. Japan’s standard test is JEITA 3.0 (Reports video playback and idle run times separately; brightness 200 cd/m2 or more; video 3840 x 2160, 60 fps, H.264/AVC, 75.5 Mbps video bitrate). The Surface Laptop 13.8-inch (8th Edition) figures come from Microsoft’s own tests (local video playback 20 hours, web browsing 16 hours; May 2026, preproduction Snapdragon X2 Plus 16GB/512GB units, 150 nits), not JEITA. Figures from different tests aren’t converted, and real-world run time isn’t estimated.&lt;/li&gt;
&lt;li&gt;AVX2 is checked in the instruction set extensions on Intel’s spec page (for example, the Celeron N4120 lists Intel SSE4.2 (no AVX2 listed)). Models whose spec pages don’t list GPU memory aren’t judged against Adobe’s GPU minimum. Windows 10 support ended on 2025-10-14; consumer ESU runs until 2027-10-12. Speed and comfort weren’t tested on real hardware and aren’t judged. Products must have 100+ ratings and 4+ stars, be sold new by Amazon or the maker, match the maker’s spec page by model, not be imports, and be a current model. As of October 8, 2026, no qualifying listing was found on Amazon.co.jp (the GLM GM-JAPAN model number couldn’t be matched). On Amazon.com, the Surface Laptop 13.8-inch 7th Edition is the previous generation (The current model is the 8th Edition (Snapdragon X2 Plus / X2 Elite)), 8th Edition listings had at most 27 ratings, and the other Windows laptops with 100+ ratings and 4+ stars were over 1.4 kg or previous-generation models.&lt;/li&gt;
&lt;li&gt;The power bank (slot power) is one that can charge a laptop (at least 45 W from one USB-C port, under 100 Wh), picked with the criteria above (checked on Amazon.co.jp on 2026-10-10). The chosen Anker A1383 gives up to 65 W from one USB-C port and 87 W in total (the 87W in its name is the total), with 72 Wh (calculated as 20000mAh × 3.6V).&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Official values used&lt;/strong&gt;&lt;/p&gt;














































































































































































































































































































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Source&lt;/th&gt;&lt;th&gt;Checked&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Windows 11 minimum RAM&lt;/td&gt;&lt;td&gt;4 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 11 minimum storage&lt;/td&gt;&lt;td&gt;64 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt; Storage: 64 GB or larger storage device.&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 11 minimum CPU cores&lt;/td&gt;&lt;td&gt;2 cores&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt; Processor: 1 gigahertz (GHz) or faster with 2 or more cores on a compatible 64-b&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 11 minimum display&lt;/td&gt;&lt;td&gt;720p (HD) display larger than 9 inches diagonally, 8 bits per color channel&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt; Display: High definition (720p) display that is greater than 9” diagonally, 8 bi&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 11 graphics requirement&lt;/td&gt;&lt;td&gt;DirectX 12 or later with a WDDM 2.0 driver&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt; Graphics card: Compatible with DirectX 12 or later with WDDM 2.0 driver.&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 11 TPM requirement&lt;/td&gt;&lt;td&gt;2.0&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/windows-11-specifications&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt; TPM: version 2.0。System firmware: UEFI, Secure Boot capable&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 10 end of support date&lt;/td&gt;&lt;td&gt;2025-10-14&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/end-of-support&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom Classic (Windows) minimum RAM&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom Classic (Windows) recommended RAM&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Recommended: RAM 16 GB or more&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom Classic (Windows) free disk space&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Storage: 8 GB of available hard disk space; additional space is required for ins&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom Classic (Windows) minimum GPU&lt;/td&gt;&lt;td&gt;GPU with DirectX 12 support, 2 GB of GPU memory&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Graphics card (Minimum): GPU with DirectX 12 support, 2 GB of GPU memory&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom Classic (Windows) recommended GPU&lt;/td&gt;&lt;td&gt;GPU with DirectX 12 support; 4 GB of GPU memory for 4K displays and greater; 8 GB of dedicated GPU memory or 16 GB of shared memory for full GPU acceleration and AI features&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Recommended: 4 GB of GPU memory for 4K displays and greater; 8 GB of dedicated G&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom Classic AVX2 requirement&lt;/td&gt;&lt;td&gt;Intel or AMD CPU with AVX2 support required&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; AVX: Intel or AMD CPUs having AVX2 support&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom Classic (Windows) minimum resolution&lt;/td&gt;&lt;td&gt;1024 x 768&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Monitor resolution: 1024 x 768 display / Recommended: 1920 x 1080 display or gre&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom Classic (Windows) recommended resolution&lt;/td&gt;&lt;td&gt;1920 x 1080 or greater&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Recommended: 1920 x 1080 display or greater&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom Classic (Windows) on ARM&lt;/td&gt;&lt;td&gt;ARM processors via emulation&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-classic/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Processor: Intel or AMD processor (2 GHz or faster with SSE 4.2 or later and 64-&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom (Windows) minimum RAM&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-cc/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom (Windows) free disk space&lt;/td&gt;&lt;td&gt;10 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-cc/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Hard disk space: 10 GB of available hard-disk space; additional free space is re&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom (Windows) minimum GPU&lt;/td&gt;&lt;td&gt;GPU with DirectX 12 support, 2 GB of VRAM&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom-cc/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Graphics card: GPU with DirectX 12 support, 2GB of VRAM&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photoshop (Windows) minimum RAM&lt;/td&gt;&lt;td&gt;8 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photoshop (Windows) recommended RAM&lt;/td&gt;&lt;td&gt;16 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Recommended: RAM 16 GB or more&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photoshop (Windows) free disk space&lt;/td&gt;&lt;td&gt;10 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Hard disk space: 10 GB of available hard disk space&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photoshop (Windows) GPU requirement&lt;/td&gt;&lt;td&gt;GPU with DirectX 12 (feature level 12_0 or later), 1.5 GB of GPU memory (4 GB recommended for 4K displays and greater)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Graphics card: GPU with DirectX 12 (feature level 12_0 or later), 1.5 GB of GPU&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photoshop (Windows) minimum resolution&lt;/td&gt;&lt;td&gt;1280 x 800 at 100% scaling, or 1920 x 1080 at 150% scaling&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Monitor resolution: 1280 x 800 at 100% scaling, or 1920 x 1080 at 150% scaling /&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photoshop (Windows) supported OS&lt;/td&gt;&lt;td&gt;Windows 11 v24H2 / v23H2, Windows 10 v22H2 / v21H2 LTSC&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Operating system: Win 11 v24H2, v23H2, Win 10 v22H2, v21H2 LTSC&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;JEITA battery run time method 3.0 issue date&lt;/td&gt;&lt;td&gt;2023-05-31&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://home.jeita.or.jp/pc_tablet/files/battery3.0.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;home.jeita.or.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;JEITA 3.0 reports two run times: video playback and idle&lt;/td&gt;&lt;td&gt;Reports video playback and idle run times separately&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://home.jeita.or.jp/pc_tablet/files/battery3.0.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;home.jeita.or.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;JEITA 3.0 screen brightness&lt;/td&gt;&lt;td&gt;200 cd/m2&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://home.jeita.or.jp/pc_tablet/files/battery3.0.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;home.jeita.or.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;JEITA 3.0 video playback conditions&lt;/td&gt;&lt;td&gt;3840 x 2160, 60 fps, H.264/AVC, 75.5 Mbps video bitrate&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://home.jeita.or.jp/pc_tablet/files/battery3.0.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;home.jeita.or.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;JEITA 3.0 volume condition&lt;/td&gt;&lt;td&gt;50% volume with headphones (or the lowest speaker volume; 0% and mute not allowed)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://home.jeita.or.jp/pc_tablet/files/battery3.0.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;home.jeita.or.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;JEITA 3.0 idle condition&lt;/td&gt;&lt;td&gt;Specified wallpaper shown full screen, left on the desktop&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://home.jeita.or.jp/pc_tablet/files/battery3.0.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;home.jeita.or.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;JEITA 3.0 wireless condition&lt;/td&gt;&lt;td&gt;Wi-Fi connected to an access point (traffic not specified); Bluetooth, LTE and 5G may be off&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://home.jeita.or.jp/pc_tablet/files/battery3.0.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;home.jeita.or.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;What JEITA 3.0 is for&lt;/td&gt;&lt;td&gt;A common yardstick for comparing run times and showing how use changes them&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://home.jeita.or.jp/pc_tablet/files/battery3.0.pdf&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;home.jeita.or.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GLM-14-240 (GM-JAPAN) weight&lt;/td&gt;&lt;td&gt;1.3 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.gm-japan.co.jp/product/glm-14-240/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;gm-japan.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GLM-14-240 battery (maker’s figure)&lt;/td&gt;&lt;td&gt;Up to 6 hours (office work), up to 4 hours (video streaming)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.gm-japan.co.jp/product/glm-14-240/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;gm-japan.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GLM-14-240 keyboard&lt;/td&gt;&lt;td&gt;Japanese layout, backlit&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.gm-japan.co.jp/product/glm-14-240/&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;gm-japan.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Celeron N4120 instruction set extensions&lt;/td&gt;&lt;td&gt;Intel SSE4.2 (no AVX2 listed)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.intel.com/content/www/us/en/products/sku/197309/intel-celeron-processor-n4120-4m-cache-up-to-2-60-ghz/specifications.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;intel.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HP OmniBook 3 17.3-inch (17-dp0000) weight&lt;/td&gt;&lt;td&gt;2.02 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://support.hp.com/lv-en/document/ish_13672664-13672707-16&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;support.hp.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dell 15 DC15255 weight (maximum)&lt;/td&gt;&lt;td&gt;1.9 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.dell.com/en-us/shop/dell-laptops/dell-15-laptop/spd/dell-dc15255-laptop&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;dell.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;US-layout import laptops on Amazon.co.jp&lt;/td&gt;&lt;td&gt;Some third-party importers on Amazon.co.jp state in their seller name that keyboards are US layout&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.amazon.co.jp/dp/B0DB66L7WY&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;amazon.co.jp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 11 processor requirement&lt;/td&gt;&lt;td&gt;A compatible 64-bit processor or SoC, 1 GHz or faster, with 2 or more cores&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows/whats-new/windows-11-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt; Processor: 1 gigahertz (GHz) or faster with two or more cores on a compatible 64&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;How to check Windows 11 processor eligibility&lt;/td&gt;&lt;td&gt;Check with PC Health Check&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/windows-hardware/design/minimum/windows-processor-requirements&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;learn.microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Windows 10 consumer ESU end date&lt;/td&gt;&lt;td&gt;2027-10-12&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/windows/extended-security-updates&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Surface Laptop 13.8-inch (8th Edition) weight&lt;/td&gt;&lt;td&gt;1.36 kg&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/ja-jp/surface/devices/surface-laptop/tech-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Surface Laptop 13.8-inch (8th Edition) battery (Microsoft video playback test)&lt;/td&gt;&lt;td&gt;20 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/surface/devices/surface-laptop/tech-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Surface Laptop 13.8-inch (8th Edition) battery (Microsoft web browsing test)&lt;/td&gt;&lt;td&gt;16 hours&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/surface/devices/surface-laptop/tech-specs&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Current Surface Laptop generation&lt;/td&gt;&lt;td&gt;The current model is the 8th Edition (Snapdragon X2 Plus / X2 Elite)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/surface/devices/surface-laptop&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;microsoft.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom (Windows) CPU requirement&lt;/td&gt;&lt;td&gt;Intel or AMD, 64-bit with SSE 4.2, 2 GHz or faster (no AVX2 or Arm line)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom/desktop/introduction/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lightroom (Windows) minimum resolution&lt;/td&gt;&lt;td&gt;1280 x 768&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/lightroom/desktop/introduction/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Monitor resolution: 1280 x 768 display / Recommended 1920 x 1080 display or grea&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photoshop (Windows) recommended resolution&lt;/td&gt;&lt;td&gt;1920 x 1080 or higher&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Photoshop (Windows on ARM) minimum GPU memory&lt;/td&gt;&lt;td&gt;4 GB&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://helpx.adobe.com/photoshop/system-requirements.html&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;helpx.adobe.com&lt;/a&gt; Windows on ARM: Processor ARM Processor / RAM 8 GB, 16 GB or more / Graphics car&lt;/td&gt;&lt;td&gt;2026-10-08&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Anker A1383 maximum output from one USB-C port&lt;/td&gt;&lt;td&gt;65 W&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ankerjapan.com/products/a1383&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ankerjapan.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Anker A1383 total output&lt;/td&gt;&lt;td&gt;87 W&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ankerjapan.com/products/a1383&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ankerjapan.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Anker A1383 energy capacity&lt;/td&gt;&lt;td&gt;72 Wh&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.ankerjapan.com/products/a1383&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;ankerjapan.com&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2026-10-11&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Windows laptop spec for blogging: quick reference&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The calculator in this article shows the result for your own settings. Settings can be set in the URL; each link below opens the calculator with those settings.&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Settings&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Calculator&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Writing only, Carry it daily&lt;/td&gt;&lt;td&gt;✓ From 8 GB RAM and a 256 GB SSD. Official minimum (Windows 11): 4 GB RAM, 64 GB storage, a compatible 64-bit CPU with 2 or more cores, DirectX 12 graphics, TPM 2.0, a 720p display. Browsers and editors publish no RAM figure, so this uses the Windows 11 minimum. A 4 GB laptop is exactly at Windows 11’s minimum, borderline. Storage on official figures alone: Windows 11’s 64 GB, which fits a 128 GB SSD (Microsoft notes updates can need more). This article’s own targets (not official figures). Memory: 8 GB or more (twice Windows 11’s minimum; this article’s choice). SSD: 256 GB or more (this article’s choice). Display: 1920 × 1080 or higher (the same as the recommended resolution for Lightroom Classic and Photoshop). Weight: 1.4 kg or less. Battery: the shorter of the maker’s stated figures at 10 hours or more (a line for narrowing down models, not a way to compare different tests). Compare battery figures only when they come from the same test, and note which test each comes from. Figures from different tests aren’t converted, and real-world run time isn’t estimated. Check the keyboard layout on the maker’s spec page&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-13-blog-pc/?windows-blog-spec-calc-work=write&amp;amp;windows-blog-spec-calc-carry=daily#windows-blog-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Writing only, Mostly at home&lt;/td&gt;&lt;td&gt;✓ From 8 GB RAM and a 256 GB SSD. Official minimum (Windows 11): 4 GB RAM, 64 GB storage, a compatible 64-bit CPU with 2 or more cores, DirectX 12 graphics, TPM 2.0, a 720p display. Browsers and editors publish no RAM figure, so this uses the Windows 11 minimum. A 4 GB laptop is exactly at Windows 11’s minimum, borderline. Storage on official figures alone: Windows 11’s 64 GB, which fits a 128 GB SSD (Microsoft notes updates can need more). This article’s own targets (not official figures). Memory: 8 GB or more (twice Windows 11’s minimum; this article’s choice). SSD: 256 GB or more (this article’s choice). Display: 1920 × 1080 or higher (the same as the recommended resolution for Lightroom Classic and Photoshop). Check the keyboard layout on the maker’s spec page&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-13-blog-pc/?windows-blog-spec-calc-work=write&amp;amp;windows-blog-spec-calc-carry=home#windows-blog-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Writing + photo editing (Lightroom Classic, Photoshop, etc.), Carry it daily&lt;/td&gt;&lt;td&gt;△ From 16 GB RAM (borderline) and a 512 GB SSD. Official minimum (Windows 11): 4 GB RAM, 64 GB storage, a compatible 64-bit CPU with 2 or more cores, DirectX 12 graphics, TPM 2.0, a 720p display. Official minimum (Adobe): 8 GB RAM (16 GB or more recommended). The same for Lightroom Classic, Lightroom and Photoshop. An 8 GB laptop is exactly at Adobe’s minimum, borderline. CPU: Lightroom Classic and Photoshop require an Intel or AMD CPU with AVX2. CPUs without AVX2, such as the Celeron N4120, don’t qualify. Check each CPU model on Intel’s or AMD’s spec page. The cloud-based Lightroom asks for a 64-bit Intel or AMD CPU with SSE 4.2 and lists neither AVX2 nor Arm. Arm (Snapdragon and others): Lightroom Classic lists ARM processors “via emulation,” and Photoshop’s Windows on ARM table sets a 4 GB GPU memory minimum (speed not tested). GPU: DirectX 12, with at least 2 GB of GPU memory for Lightroom Classic and Lightroom and 1.5 GB for Photoshop (4 GB recommended for 4K displays and above). Models whose spec pages don’t list GPU memory aren’t judged. Each official figure is for one app on its own; running several together isn’t judged. Storage on official figures alone: Windows 11’s 64 GB + 10 GB for the apps = 74 GB, which fits a 128 GB SSD (Microsoft notes updates can need more). This article’s own targets (not official figures). Memory: 16 GB or more (exactly the low end of Adobe’s recommendation, borderline). SSD: 512 GB or more (there’s no official figure for photos and catalogs, so this is the article’s own choice). Display: 1920 × 1080 or higher (the same as the recommended resolution for Lightroom Classic and Photoshop). Weight: 1.4 kg or less. Battery: the shorter of the maker’s stated figures at 10 hours or more (a line for narrowing down models, not a way to compare different tests). Compare battery figures only when they come from the same test, and note which test each comes from. Figures from different tests aren’t converted, and real-world run time isn’t estimated. Check the keyboard layout on the maker’s spec page&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-13-blog-pc/?windows-blog-spec-calc-work=photo&amp;amp;windows-blog-spec-calc-carry=daily#windows-blog-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Writing + photo editing (Lightroom Classic, Photoshop, etc.), Mostly at home&lt;/td&gt;&lt;td&gt;△ From 16 GB RAM (borderline) and a 512 GB SSD. Official minimum (Windows 11): 4 GB RAM, 64 GB storage, a compatible 64-bit CPU with 2 or more cores, DirectX 12 graphics, TPM 2.0, a 720p display. Official minimum (Adobe): 8 GB RAM (16 GB or more recommended). The same for Lightroom Classic, Lightroom and Photoshop. An 8 GB laptop is exactly at Adobe’s minimum, borderline. CPU: Lightroom Classic and Photoshop require an Intel or AMD CPU with AVX2. CPUs without AVX2, such as the Celeron N4120, don’t qualify. Check each CPU model on Intel’s or AMD’s spec page. The cloud-based Lightroom asks for a 64-bit Intel or AMD CPU with SSE 4.2 and lists neither AVX2 nor Arm. Arm (Snapdragon and others): Lightroom Classic lists ARM processors “via emulation,” and Photoshop’s Windows on ARM table sets a 4 GB GPU memory minimum (speed not tested). GPU: DirectX 12, with at least 2 GB of GPU memory for Lightroom Classic and Lightroom and 1.5 GB for Photoshop (4 GB recommended for 4K displays and above). Models whose spec pages don’t list GPU memory aren’t judged. Each official figure is for one app on its own; running several together isn’t judged. Storage on official figures alone: Windows 11’s 64 GB + 10 GB for the apps = 74 GB, which fits a 128 GB SSD (Microsoft notes updates can need more). This article’s own targets (not official figures). Memory: 16 GB or more (exactly the low end of Adobe’s recommendation, borderline). SSD: 512 GB or more (there’s no official figure for photos and catalogs, so this is the article’s own choice). Display: 1920 × 1080 or higher (the same as the recommended resolution for Lightroom Classic and Photoshop). Check the keyboard layout on the maker’s spec page&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://aulvem.com/blog/2021-03-13-blog-pc/?windows-blog-spec-calc-work=photo&amp;amp;windows-blog-spec-calc-carry=home#windows-blog-spec-calc&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Open with these settings&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/details&gt;</content:encoded><category>guides</category><category>windows</category></item><item><title>PC cleaning with an air-duster can and an anti-static brush — Elecom ECO and Sanwa Supply brush review</title><link>https://aulvem.com/blog/2021-03-11-air-duster-brush/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-11-air-duster-brush/</guid><description>Years of use with the Elecom Air Duster ECO and the Sanwa Supply anti-static cleaning brush. How they compare with electric air dusters and alcohol + cotton swabs, and a routine for cleaning the inside of a PC.</description><pubDate>Thu, 11 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported from the old VuePress blog. The Elecom Air Duster ECO and the Sanwa Supply anti-static cleaning brush are both still current products, though prices and model numbers may have shifted. The review angles here (the strengths and weaknesses of the can, where the anti-static brush helps, and how to choose between cans and an electric duster) still hold up.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dust inside a PC or around a keyboard, left alone, eventually clogs fans, drives thermal throttling, and makes key presses catch. A quick clean once a month makes a real difference to how long the hardware lasts.&lt;/p&gt;
&lt;p&gt;This is a review of the &lt;strong&gt;Elecom Air Duster ECO&lt;/strong&gt; and the &lt;strong&gt;Sanwa Supply anti-static cleaning brush&lt;/strong&gt; — a combination I have been using for several years — compared against the three obvious alternatives: cans alone, electric dusters, and alcohol + cotton swabs.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--can--anti-static-brush-is-fast-and-cheap&quot;&gt;The verdict — “can + anti-static brush” is fast and cheap&lt;/h2&gt;
&lt;p&gt;Short answer: for a light clean once or twice a month, blowing the big dust away with an air-duster can and brushing the detail with an anti-static brush is the best time-to-result trade-off. An electric duster makes more sense if you clean weekly.&lt;/p&gt;
&lt;p&gt;The reasoning is straightforward. A can costs around 1,000 yen, so the entry cost is low, and the peak airflow often beats an electric duster. The anti-static brush lets you touch parts that can be damaged by static — CPU, memory, GPU PCBs — without worrying about it.&lt;/p&gt;
&lt;p&gt;You may want a different setup if any of these apply:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You clean more than once a week&lt;/strong&gt;: the per-can cost starts to add up. An electric duster is cheaper over time&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You are sensitive to the gas smell or the room is hard to ventilate&lt;/strong&gt;: switch to electric, or do it outside&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The grime is greasy — oil, fingerprints, tar&lt;/strong&gt;: air and bristles will not move it. You need anhydrous ethanol and cotton swabs alongside&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;elecom-air-duster-eco--the-package&quot;&gt;Elecom Air Duster ECO — the package&lt;/h2&gt;
&lt;p&gt;Short answer: a standard spray-can size, with a red nozzle and a cap in the box.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Elecom Air Duster ECO can, front&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-11-air-duster-brush/2021-03-11-Air-Duster-front.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;I use it on the gaps between keys, inside a PC case, and at the vents of a laptop — anywhere a brush will not reach. At a roughly monthly cadence, one can lasts me about six months.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Elecom Air Duster ECO narrow nozzle&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-11-air-duster-brush/2021-03-11-Air-Duster-Nozzle.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The red narrow nozzle ships taped to the can’s label. It snaps on when you need to focus the airflow into a tight gap.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Elecom Air Duster ECO safety cap&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-11-air-duster-brush/2021-03-11-Air-Duster-cap.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;A clear cap fits over the trigger button to prevent accidental firing inside a bag or drawer.&lt;/p&gt;
&lt;h2 id=&quot;elecom-air-duster-eco--what-worked&quot;&gt;Elecom Air Duster ECO — what worked&lt;/h2&gt;
&lt;p&gt;Short answer: strong airflow, and a price low enough that you do not hesitate to use it.&lt;/p&gt;
&lt;h3 id=&quot;strong-immediate-airflow&quot;&gt;Strong, immediate airflow&lt;/h3&gt;
&lt;p&gt;Pull the trigger and the air comes out in a single hard burst. Dust packed in keyboard gaps or around case fans clears in one short blast at close range.&lt;/p&gt;
&lt;p&gt;I also have an electric duster, and on peak airflow alone, the can still feels stronger (depends on model and remaining gas).&lt;/p&gt;
&lt;h3 id=&quot;cheap-enough-to-use-freely&quot;&gt;Cheap enough to use freely&lt;/h3&gt;
&lt;p&gt;At roughly 1,000 yen a can, I can blow away a stray clump of dust without thinking about it. Not having to mentally save it up “for a proper clean later” matters more than it sounds.&lt;/p&gt;
&lt;p&gt;Lower friction to start cleaning → higher cleaning frequency → longer hardware life. That feedback loop is the real value.&lt;/p&gt;
&lt;h2 id=&quot;elecom-air-duster-eco--what-didnt&quot;&gt;Elecom Air Duster ECO — what didn’t&lt;/h2&gt;
&lt;p&gt;Short answer: the gas smell lingers, and a single-use can means a running cost.&lt;/p&gt;
&lt;h3 id=&quot;the-gas-leaves-a-smell&quot;&gt;The gas leaves a smell&lt;/h3&gt;
&lt;p&gt;The propellant has a smell that hangs in the room for a while after use. Short bursts of one or two seconds are unnoticeable, but five seconds or more in a row and the smell builds up.&lt;/p&gt;
&lt;p&gt;In a well-ventilated room it is a non-issue. Late at night in an apartment building, full-power cleaning is harder to justify.&lt;/p&gt;
&lt;h3 id=&quot;running-cost-piles-up&quot;&gt;Running cost piles up&lt;/h3&gt;
&lt;p&gt;A can is one-and-done. Once a month, six months a can — manageable. Once a week works out to four to six cans a year. At 1,000 yen each, that is 4,000 to 6,000 yen annually. An electric duster (around 10,000 yen) pays for itself in roughly two years.&lt;/p&gt;
&lt;p&gt;I am still using cans, but if you clean heavily, the electric option is worth considering.&lt;/p&gt;
&lt;h2 id=&quot;sanwa-supply-anti-static-cleaning-brush--the-package&quot;&gt;Sanwa Supply anti-static cleaning brush — the package&lt;/h2&gt;
&lt;p&gt;Short answer: a brush with anti-static construction, with a large head on one end and a small head on the other. Often sold in packs of three.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Sanwa Supply anti-static cleaning brush, large-brush end&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-11-air-duster-brush/2021-03-11-Brush-Large-brush.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;I use it to sweep dust off the inside of a PC. The handle is said to contain anti-static material that bleeds off any charge that builds up.&lt;/p&gt;
&lt;p&gt;CPU, memory, and GPU boards can be killed by static. On parts where you would normally hesitate to brush with a synthetic-fibre brush, an anti-static brush gives you enough confidence to actually do the work. It saves you from the folk-remedy approach of “strip down and build the PC in the bathroom” (only half-joking).&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Sanwa Supply anti-static cleaning brush, small-brush end&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-11-air-duster-brush/2021-03-11-Small-brush.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The opposite end has a smaller brush for narrow spots — between heatsink fins, behind the I/O shield, around the base of SATA connectors. Anywhere the large brush cannot fit, this end takes over.&lt;/p&gt;
&lt;h2 id=&quot;sanwa-supply-anti-static-cleaning-brush--what-worked&quot;&gt;Sanwa Supply anti-static cleaning brush — what worked&lt;/h2&gt;
&lt;p&gt;Short answer: the anti-static design makes it easier to touch boards, and the small-brush end reaches into places the large one cannot.&lt;/p&gt;
&lt;h3 id=&quot;confidence-near-sensitive-boards&quot;&gt;Confidence near sensitive boards&lt;/h3&gt;
&lt;p&gt;You hear about bent CPU pins and broken memory; you hear less about static damage, but it is not rare either. An anti-static brush takes the “should I really be touching this?” hesitation off the table.&lt;/p&gt;
&lt;p&gt;I have no way to measure how much risk it actually removes, but as insurance, it is worth keeping around.&lt;/p&gt;
&lt;h3 id=&quot;the-small-brush-reaches-narrow-spots&quot;&gt;The small brush reaches narrow spots&lt;/h3&gt;
&lt;p&gt;A PC’s interior is full of gaps too tight for a finger. The small brush is barely thicker than a toothpick, so the bristle tips can reach into heatsink fins and the base of connectors.&lt;/p&gt;
&lt;p&gt;It also picks out the wad-of-lint kind of dust that the air-duster can never quite blows free.&lt;/p&gt;
&lt;h2 id=&quot;sanwa-supply-anti-static-cleaning-brush--what-didnt&quot;&gt;Sanwa Supply anti-static cleaning brush — what didn’t&lt;/h2&gt;
&lt;p&gt;Short answer: the large brush end is a touch oversized.&lt;/p&gt;
&lt;h3 id=&quot;the-large-brush-is-bigger-than-i-want-inside-a-case&quot;&gt;The large brush is bigger than I want inside a case&lt;/h3&gt;
&lt;p&gt;Inside a PC case, a brush “a size or two smaller” would be easier to steer. Running it along a row of heatsinks on a motherboard, the bristle tips keep catching on the neighbouring connectors.&lt;/p&gt;
&lt;p&gt;For keyboard cleaning the large brush is fine, so it is more a “use it for the right thing” comment than a real complaint.&lt;/p&gt;
&lt;h2 id=&quot;comparison-can--anti-static-brush-vs-other-cleaning-methods&quot;&gt;Comparison: can + anti-static brush vs other cleaning methods&lt;/h2&gt;





























































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;Can + anti-static brush (this pairing)&lt;/th&gt;&lt;th&gt;Alcohol + cotton swabs&lt;/th&gt;&lt;th&gt;Air-duster can alone&lt;/th&gt;&lt;th&gt;Electric air duster&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Initial cost&lt;/td&gt;&lt;td&gt;Around 2,000 yen&lt;/td&gt;&lt;td&gt;From around 500 yen&lt;/td&gt;&lt;td&gt;Around 1,000 yen&lt;/td&gt;&lt;td&gt;From around 10,000 yen&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Running cost&lt;/td&gt;&lt;td&gt;Disposable cans only&lt;/td&gt;&lt;td&gt;Consumables (swabs, ethanol)&lt;/td&gt;&lt;td&gt;Disposable cans&lt;/td&gt;&lt;td&gt;Electricity only&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Best on&lt;/td&gt;&lt;td&gt;Dry dust in general&lt;/td&gt;&lt;td&gt;Grease, fingerprints, tar&lt;/td&gt;&lt;td&gt;Dry coarse dust&lt;/td&gt;&lt;td&gt;Dry dust in general&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Anti-static&lt;/td&gt;&lt;td&gt;Yes (anti-static brush)&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Depends on model&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Noise&lt;/td&gt;&lt;td&gt;Hiss of the nozzle only&lt;/td&gt;&lt;td&gt;Quiet&lt;/td&gt;&lt;td&gt;Hiss of the nozzle only&lt;/td&gt;&lt;td&gt;Loud motor&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Environmental load&lt;/td&gt;&lt;td&gt;Discarded cans&lt;/td&gt;&lt;td&gt;Low&lt;/td&gt;&lt;td&gt;Discarded cans&lt;/td&gt;&lt;td&gt;Low (reused for the life of the unit)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Gas smell&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Alcohol smell&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;An electric air duster saves you the monthly cost of a can, at the price of a 10,000-yen initial outlay and noticeable motor noise. For a once-or-twice-a-month routine, cans are easier overall.&lt;/p&gt;
&lt;p&gt;Greasy grime — finger oils on keycaps, tar baked onto fans — does not move with air. You need a separate step with alcohol and cotton swabs, or anhydrous ethanol, to wipe it off.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Should I buy an air-duster can or an electric duster?&lt;/strong&gt;
A. If you clean once or twice a month, a can is enough. If you clean weekly, or you have other gear that wants cleaning (cameras, instruments, 3D printers) and you can do it outside, the electric option becomes a candidate. The running-cost break-even point lands around two to three years (depends on use).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. I hear electric dusters have weaker airflow than cans. True?&lt;/strong&gt;
A. It depends on the model and how full the can is. A fresh full can hits a higher peak airflow, but as you use it, evaporative cooling chills the can and the airflow tails off. An electric duster keeps a steady output, so for long cleaning sessions it can be the easier tool.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Do anti-static brushes actually stop static?&lt;/strong&gt;
A. Not completely. They are designed to bleed off charge through the handle material, but they are not a guarantee. Pair them with the basics: touch a grounded metal surface to discharge yourself before handling boards, and avoid cleaning during dry mid-winter days.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. If I blow air into a running PC, will it spin the fans hard enough to damage them?&lt;/strong&gt;
A. Spinning a fan past its normal speed with airflow can wear the bearing. The standard trick is to hold the fan still — with a finger, or the brush handle — before you fire the duster. Do the same for CPU-cooler fans.&lt;/p&gt;
&lt;h2 id=&quot;verdict--a-reasonably-cheap-reasonably-safe-combination&quot;&gt;Verdict — a “reasonably cheap, reasonably safe” combination&lt;/h2&gt;
&lt;p&gt;Short answer: for a light monthly clean, the can + anti-static brush combination hits the right balance of time, cost, and safety. Hard to beat as a default.&lt;/p&gt;
&lt;p&gt;My internal-cleaning routine has settled into this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Blow the big dust away with the air-duster can (hold the fans still with a finger)&lt;/li&gt;
&lt;li&gt;Sweep what’s left off with the large brush&lt;/li&gt;
&lt;li&gt;Finish into heatsink fins and around connectors with the small brush&lt;/li&gt;
&lt;li&gt;Wipe greasy or fingerprinted spots with anhydrous ethanol on a cotton swab&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Do this every month and the once-a-year deep clean comes around to “the inside isn’t really that dirty” — which is exactly the state you want.&lt;/p&gt;
&lt;p&gt;When cleaning frequency creeps up, move to an electric air duster. When greasy grime starts to dominate, add alcohol to the kit. Layer the tools as the workload grows.&lt;/p&gt;
</content:encoded><category>reviews</category><category>PCPeripherals</category></item><item><title>Logitech MX MASTER 2S review — the side wheel that fixes Excel horizontal scrolling</title><link>https://aulvem.com/blog/2021-03-09-logicool-mx-master-2s/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-09-logicool-mx-master-2s/</guid><description>Six-plus months with the Logitech MX MASTER 2S at work. Strong on the side wheel and vertically stacked thumb buttons; weak on the gesture button&apos;s durability.</description><pubDate>Tue, 09 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported from the old VuePress blog. The MX MASTER 2S is an older model in 2026 — the current line is the MX Master 3S. The review angles here (side-wheel value, hand-size fit, gesture-button caveat) still hold up.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I used the Logitech MX MASTER 2S at work for over half a year. This is the write-up from that time, kept for reference.&lt;/p&gt;
&lt;p&gt;It is the kind of mouse that feels expensive on the shelf — around 9,400 yen at the time of writing. If you spend your days in Excel or creative tools, the productivity gain pays the difference back.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--buy-it-if-you-live-in-excels-horizontal-axis&quot;&gt;The verdict — buy it if you live in Excel’s horizontal axis&lt;/h2&gt;
&lt;p&gt;Short answer: the side wheel makes horizontal scrolling so easy it becomes invisible. If you scroll vertically and horizontally all day in Excel or design tools, the price is justified.&lt;/p&gt;
&lt;p&gt;The reason is mechanical. Operations that normally cost a “Shift + wheel” combo, or a drag to the edge of the window, collapse into a single flick of the side wheel. Multiply that by the hundreds of times a day you scroll, and the one-or-two-second saving adds up.&lt;/p&gt;
&lt;p&gt;A few cautions before buying:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Smaller hands&lt;/strong&gt;: the MX MASTER 2S is a large mouse, and there is only one size&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Heavy gaming use&lt;/strong&gt;: there is a known durability issue with the gesture button (covered below)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-and-feel&quot;&gt;Build and feel&lt;/h2&gt;
&lt;p&gt;Short answer: a sculpted, monochrome body with a distinctive front taper. It looks like a premium tool, not a peripheral.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logitech MX MASTER 2S, top view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-09-logicool-mx-master-2s/2021-03-09-Logicool-MX-MASTER-2S-upward.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;From the side it reads like a horizontal “H” — you grip it between thumb and pinky rather than draping your hand over it.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logitech MX MASTER 2S, underside&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-09-logicool-mx-master-2s/2021-03-09-Logicool-MX-MASTER-2S-back.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The underside holds the power switch and a device-pair toggle. It pairs with up to three devices.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logitech MX MASTER 2S, left side&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-09-logicool-mx-master-2s/2021-03-09-Logicool-MX-MASTER-2S-left.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The left flank carries the thumb rest with the gesture button, the side wheel, and two vertically stacked thumb buttons. Charging is over micro-USB Type-B — one of the model’s few real weak points.&lt;/p&gt;
&lt;h2 id=&quot;what-worked&quot;&gt;What worked&lt;/h2&gt;
&lt;p&gt;Short answer: the side wheel is the headline. The shape and the button layout are quiet upgrades on every other mouse I had used.&lt;/p&gt;
&lt;h3 id=&quot;the-side-wheel--excel-horizontal-scrolling-in-one-flick&quot;&gt;The side wheel — Excel horizontal scrolling in one flick&lt;/h3&gt;
&lt;p&gt;This is the single biggest difference from any other mouse. A &lt;strong&gt;dedicated horizontal-scroll wheel&lt;/strong&gt; sits on the left flank.&lt;/p&gt;
&lt;p&gt;Horizontal pans in Excel, canvas panning in Figma, timeline scrubbing in a video editor — all of them resolve to one finger, no keyboard modifier.&lt;/p&gt;
&lt;h3 id=&quot;thumb-buttons-stacked-vertically-easy-to-press&quot;&gt;Thumb buttons stacked vertically, easy to press&lt;/h3&gt;
&lt;p&gt;Most mice put the thumb buttons in a front-back layout and map them to Back and Forward. The MX MASTER 2S &lt;strong&gt;stacks them vertically&lt;/strong&gt;. It feels strange for a day, and then you stop noticing — the two buttons are easier to tell apart by feel.&lt;/p&gt;
&lt;h3 id=&quot;a-design-that-does-not-stand-out-in-an-office&quot;&gt;A design that does not stand out in an office&lt;/h3&gt;
&lt;p&gt;The matte, monochrome finish keeps it quiet on a desk. It looks at home in a home office or a meeting room without drawing attention.&lt;/p&gt;
&lt;h2 id=&quot;what-didnt&quot;&gt;What didn’t&lt;/h2&gt;
&lt;p&gt;Short answer: it is large, it charges over micro-USB Type-B, and the gesture button has a durability concern.&lt;/p&gt;
&lt;h3 id=&quot;sized-for-larger-hands-with-no-smaller-option&quot;&gt;Sized for larger hands, with no smaller option&lt;/h3&gt;
&lt;p&gt;For me the grip was the most comfortable I had used. For smaller hands it is harder to recommend, and there is no smaller variant. If you can, hold one in a store before committing.&lt;/p&gt;
&lt;h3 id=&quot;charging-is-micro-usb-type-b&quot;&gt;Charging is micro-USB Type-B&lt;/h3&gt;
&lt;p&gt;In 2026, USB Type-C is the default for peripherals. Charging happens every two or three months, so it is not a daily annoyance — it is just one more cable to keep around.&lt;/p&gt;
&lt;h3 id=&quot;the-gesture-button-is-the-weak-link&quot;&gt;The gesture button is the weak link&lt;/h3&gt;
&lt;p&gt;This is the reason I eventually moved on from this mouse.&lt;/p&gt;
&lt;p&gt;Mid-game, I pressed the gesture button with some force and it &lt;strong&gt;stuck in the pressed state&lt;/strong&gt;. It is the kind of thing you could fix by opening the body, but I did not feel I had clicked it especially hard — the structure looks under-built for that kind of input.&lt;/p&gt;
&lt;p&gt;If you tend to hammer buttons during long gaming sessions, take this seriously.&lt;/p&gt;
&lt;h2 id=&quot;comparison-mx-master-2s-vs-3--3s&quot;&gt;Comparison: MX MASTER 2S vs 3 / 3S&lt;/h2&gt;



































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;MX MASTER 2S&lt;/th&gt;&lt;th&gt;MX MASTER 3 / 3S&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Charging&lt;/td&gt;&lt;td&gt;micro-USB Type-B&lt;/td&gt;&lt;td&gt;USB Type-C&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Main wheel&lt;/td&gt;&lt;td&gt;Mechanical&lt;/td&gt;&lt;td&gt;MagSpeed (electromagnetic)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Side wheel&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes (smoother)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Gesture button durability&lt;/td&gt;&lt;td&gt;Weaker&lt;/td&gt;&lt;td&gt;Improved&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Price at launch&lt;/td&gt;&lt;td&gt;~9,400 yen&lt;/td&gt;&lt;td&gt;~13,000 yen and up&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;For a new purchase today, the current MX Master 3S is the easier recommendation. If you find a 2S secondhand or on clearance and do not lean on the gesture button, it still holds up in daily use.&lt;/p&gt;
&lt;h2 id=&quot;the-software-logicool-options&quot;&gt;The software (Logicool Options)&lt;/h2&gt;
&lt;p&gt;Logicool Options remaps almost every button on the mouse.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logicool Options home screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-09-logicool-mx-master-2s/2021-03-09-Logicool-MX-MASTER-2S-Logicool-Options-home.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The gesture button can carry four directional actions — up, down, left, right — on top of its press action.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logicool Options gesture configuration&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-09-logicool-mx-master-2s/2021-03-09-Logicool-MX-MASTER-2S-Logicool-Options-gesture.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;Wheel sensitivity and pointer speed are tunable in fine steps. You can, for example, dial the wheel scroll distance specifically for Excel sessions.&lt;/p&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Logitech MX MASTER 2S (MX2100CR)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-09-logicool-mx-master-2s/2021-03-09-Logicool-MX-MASTER-2S.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Logitech MX MASTER 2S (MX2100CR)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B08K8PH9G3?q=Logitech+MX+MASTER+2S+%28MX2100CR%29&amp;amp;l=en&quot; aria-label=&quot;View Logitech MX MASTER 2S (MX2100CR) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Does it work with a Mac?&lt;/strong&gt;
A. Yes. Logicool Options for Mac is available, and the mouse connects over either Bluetooth or the USB receiver.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How long does the battery last?&lt;/strong&gt;
A. Logitech lists 70 days. In actual use I charged it every two to three months.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Can it be used for gaming?&lt;/strong&gt;
A. Response-wise it behaves like an ordinary mouse. For FPS or other titles that need precise input, a dedicated gaming mouse is the better tool — and given the gesture-button concern, anything with violent clicking is best kept off this mouse.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Does it connect to an iPad?&lt;/strong&gt;
A. Yes, from iPadOS 13.4 onward iPads support mice. Pairing happens over Bluetooth.&lt;/p&gt;
&lt;h2 id=&quot;verdict--a-mouse-for-a-specific-kind-of-work&quot;&gt;Verdict — a mouse for a specific kind of work&lt;/h2&gt;
&lt;p&gt;It is not a universal recommendation. For the right workload, though, it is hard to go back from.&lt;/p&gt;
&lt;p&gt;In Excel, Figma, or a video editor — anywhere horizontal scrolling shows up constantly — the side wheel changes the day-to-day feel of the work.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Logitech MX MASTER 2S, summary shot&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-09-logicool-mx-master-2s/2021-03-09-Logicool-MX-MASTER-2S-summary.webp&quot; loading=&quot;lazy&quot;/&gt;
&lt;p&gt;The two things to weigh are the size and the gesture button. If you can hold one in a store before deciding, that is still the surest way to avoid buyer’s remorse.&lt;/p&gt;</content:encoded><category>reviews</category><category>mouse</category><category>logicool</category><category>pc-peripherals</category></item><item><title>Pointing an Onamae.com domain at Netlify — DNS handover steps and gotchas</title><link>https://aulvem.com/blog/2021-03-08-netlify-onamae/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-08-netlify-onamae/</guid><description>Steps for wiring an Onamae.com domain to Netlify by delegating the nameservers. Covers how DNS works, using Cloudflare DNS as an alternative, and tips for waiting out propagation — written through a 2026 lens.</description><pubDate>Mon, 08 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: A post ported over from the old VuePress blog. The skeleton of the procedure hasn’t changed, but the Netlify / Onamae.com UI screenshots are from 2021. Cloudflare Pages + Cloudflare DNS is a common pairing now too, so a short comparison is added at the end.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pointing an Onamae.com domain at a Netlify site is the kind of task you trip over on the first attempt if the UI isn’t familiar. The two things that snag people are pretty consistent: “where do I change the nameservers”, and “is it slow because it’s working or because it isn’t”.&lt;/p&gt;
&lt;p&gt;This post tries to clear both up before you start clicking, so the order is: how DNS works, the connection steps, then how to confirm propagation. The Netlify deploy itself is assumed to be done already, per &lt;a href=&quot;https://aulvem.com/blog/2021-03-06-netlify-setup/&quot;&gt;Setting up a static site with VuePress, GitHub, and Netlify&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;short-answer--delegate-the-nameservers-to-netlify-dns&quot;&gt;Short answer — delegate the nameservers to Netlify DNS&lt;/h2&gt;
&lt;p&gt;The shortest path for connecting an Onamae.com domain to Netlify is to &lt;strong&gt;rewrite the Onamae.com nameservers to the four Netlify DNS ones&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The reason is that Netlify takes over DNS-record management (A / AAAA / CNAME), so SSL issuance, apex-domain handling, and adding subdomains all run more or less on autopilot. You only need to write records yourself if you’ve chosen the &lt;strong&gt;delegate to a separate DNS (e.g. Cloudflare DNS) and CNAME to Netlify&lt;/strong&gt; layout.&lt;/p&gt;
&lt;p&gt;If you’re undecided: Netlify DNS for delegation, Cloudflare DNS if you want to bundle multiple services under one domain. That’s the dividing line.&lt;/p&gt;
&lt;h2 id=&quot;how-dns-delegation-works--who-holds-the-address-book&quot;&gt;How DNS delegation works — who holds the address book&lt;/h2&gt;
&lt;p&gt;DNS is the distributed database that resolves “domain name → server IP”. A nameserver is the &lt;strong&gt;authoritative source&lt;/strong&gt; for those lookups.&lt;/p&gt;
&lt;p&gt;Right after you buy a domain at Onamae.com, Onamae.com itself is the authoritative source (the primary DNS). Switching the nameservers to Netlify DNS is what “changing nameservers” means, and from that point on the A / CNAME records live on the Netlify side.&lt;/p&gt;
&lt;h3 id=&quot;onamaecom-dns-vs-netlify-dns-vs-cloudflare-dns&quot;&gt;Onamae.com DNS vs Netlify DNS vs Cloudflare DNS&lt;/h3&gt;















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;Onamae.com DNS (default)&lt;/th&gt;&lt;th&gt;Netlify DNS (delegated)&lt;/th&gt;&lt;th&gt;Cloudflare DNS (delegated)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Setup effort&lt;/td&gt;&lt;td&gt;Hand-write A / CNAME&lt;/td&gt;&lt;td&gt;Records generated automatically&lt;/td&gt;&lt;td&gt;Hand-write your own CNAME&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Fit with Netlify&lt;/td&gt;&lt;td&gt;OK&lt;/td&gt;&lt;td&gt;The official short path&lt;/td&gt;&lt;td&gt;Good (CNAME flattening supported)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HTTPS certificate&lt;/td&gt;&lt;td&gt;Automatic on Netlify&lt;/td&gt;&lt;td&gt;Automatic on Netlify&lt;/td&gt;&lt;td&gt;Automatic on Netlify&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CDN / WAF&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes (via Cloudflare)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Email / other services&lt;/td&gt;&lt;td&gt;Slightly awkward&lt;/td&gt;&lt;td&gt;Awkward&lt;/td&gt;&lt;td&gt;Easy&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2026 popularity&lt;/td&gt;&lt;td&gt;△&lt;/td&gt;&lt;td&gt;◯&lt;/td&gt;&lt;td&gt;◎&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;If you’re stuck, walk down the table: “only using Netlify → Netlify DNS”, “want email or another service on the same domain too → Cloudflare DNS”. That keeps the decision stable.&lt;/p&gt;
&lt;h2 id=&quot;connection-steps--10-minutes-of-actual-work-up-to-48-hours-of-propagation&quot;&gt;Connection steps — 10 minutes of actual work, up to 48 hours of propagation&lt;/h2&gt;
&lt;p&gt;The actual work starts here. The clicking part takes around 10 minutes; DNS taking effect everywhere can take up to 48 hours (in practice it’s usually done within a few hours).&lt;/p&gt;
&lt;h3 id=&quot;step-1-register-a-domain-at-onamaecom&quot;&gt;Step 1: Register a domain at Onamae.com&lt;/h3&gt;
&lt;p&gt;On the Onamae.com homepage, type in the domain name you want. For non-&lt;code&gt;.com&lt;/code&gt; TLDs, select the TLD explicitly.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;Onamae.com homepage domain search form&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-onamae-search.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;In the results, tick the TLD you want and &lt;strong&gt;proceed to pricing confirmation&lt;/strong&gt;.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;Onamae.com domain selection screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-onamae-domain.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;On the next screen — the server-selection step — pick &lt;strong&gt;don’t use one&lt;/strong&gt;, since hosting is going to Netlify. Don’t accidentally sign up for a rental server here (an annual fee straight down the drain).&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;Onamae.com server selection screen with don&apos;t use option&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-onamae-server-selection.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Once payment is done, the domain is yours. Whois proxy is included free, so you can leave it on.&lt;/p&gt;
&lt;h3 id=&quot;step-2-run-add-custom-domain-in-netlify&quot;&gt;Step 2: Run Add custom domain in Netlify&lt;/h3&gt;
&lt;p&gt;From the target Netlify site’s overview, open &lt;strong&gt;Domain settings&lt;/strong&gt;.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;Netlify site overview screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-Netlify-overview.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Click &lt;strong&gt;Add custom domain&lt;/strong&gt;, type in the domain you registered (as the apex, e.g. &lt;code&gt;example.com&lt;/code&gt;), and click Verify. That takes you to the ownership-check screen.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;Netlify Domain settings screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-Netlify-domain.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;h3 id=&quot;step-3-turn-on-netlify-dns-and-copy-the-nameservers&quot;&gt;Step 3: Turn on Netlify DNS and copy the nameservers&lt;/h3&gt;
&lt;p&gt;Right after adding the domain, you’ll see &lt;strong&gt;Check DNS configuration&lt;/strong&gt;. Open Options → &lt;strong&gt;Set up Netlify DNS&lt;/strong&gt; to enable Netlify DNS.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;Netlify custom domains list with Set up Netlify DNS option&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-Netlify-custom-domains.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;A few confirmation dialogs follow — read through them as you go. At the end, four FQDNs (shaped like &lt;code&gt;dns1.p0X.nsone.net&lt;/code&gt;) appear under &lt;strong&gt;Name servers&lt;/strong&gt;. Leave this browser tab open and copy them.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;Netlify Name servers list&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-Netlify-name-server.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;h3 id=&quot;step-4-switch-the-nameservers-to-netlify-on-onamaecom&quot;&gt;Step 4: Switch the nameservers to Netlify on Onamae.com&lt;/h3&gt;
&lt;p&gt;In another tab, log into Onamae.com Navi. From the top-bar &lt;strong&gt;menu&lt;/strong&gt; → &lt;strong&gt;change nameservers&lt;/strong&gt;.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;Onamae.com Navi menu&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-namae-menu.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Tick the target domain, pick the “Other” tab, and paste the four nameservers from Netlify into the nameserver fields, top to bottom.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;Onamae.com nameserver change screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-08-netlify-onamae/2021-03-08-Onamae-name-server.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Click confirm and a “change request received” email arrives. That’s the active work done.&lt;/p&gt;
&lt;h3 id=&quot;step-5-wait-for-dns-propagation-and-the-https-certificate&quot;&gt;Step 5: Wait for DNS propagation and the HTTPS certificate&lt;/h3&gt;
&lt;p&gt;Propagation lands anywhere from a few minutes to 48 hours. On Netlify’s side, once DNS finishes propagating, Let’s Encrypt certificate issuance runs automatically, and after that you can reach the registered domain over HTTPS.&lt;/p&gt;
&lt;p&gt;A few tips for confirming:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If it’s still not visible after 30 minutes, try &lt;code&gt;nslookup example.com 1.1.1.1&lt;/code&gt; to check name resolution against a different DNS&lt;/li&gt;
&lt;li&gt;If only your home network can’t see it, suspect the router or OS DNS cache&lt;/li&gt;
&lt;li&gt;If the certificate is still &lt;code&gt;pending&lt;/code&gt; after half a day, hit &lt;strong&gt;Renew certificate&lt;/strong&gt; once from the Netlify Domains screen — that re-kicks issuance&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;gotchas--four-common-stumbles&quot;&gt;Gotchas — four common stumbles&lt;/h2&gt;
&lt;p&gt;Short answer: &lt;strong&gt;mistyping the nameservers&lt;/strong&gt;, &lt;strong&gt;redoing the settings before propagation finishes&lt;/strong&gt;, &lt;strong&gt;misclicking the Onamae.com renewal emails&lt;/strong&gt;, and &lt;strong&gt;running email on the same domain&lt;/strong&gt;. Those four.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mistyping the nameservers&lt;/strong&gt;: copy all four exactly. Order doesn’t matter, but watch the trailing &lt;code&gt;.&lt;/code&gt; and any leading whitespace&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Redoing settings repeatedly before propagation&lt;/strong&gt;: changing the Onamae.com side again mid-propagation because “it’s not working” just resets the TTL and stretches the wait. Give it half a day first&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Misclicking the renewal emails&lt;/strong&gt;: Onamae.com sends a lot of ad emails about similar-looking domains. Build the habit of logging into Navi and checking the contract list to confirm whether a renewal notice is the real one&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Running email on the same domain&lt;/strong&gt;: moving the whole nameserver to Netlify DNS means you have to re-create the MX records on the Netlify DNS side. If email is in play, delegating to Cloudflare DNS is safer (each provider’s MX UI may shift through 2026)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Can I connect this without Netlify DNS — i.e. leaving Onamae.com’s DNS in place?&lt;/strong&gt;
A. Yes. In Onamae.com’s DNS-record settings, point the apex at A record 75.2.60.5, and point www at &lt;code&gt;&amp;lt;site&amp;gt;.netlify.app&lt;/code&gt; via CNAME. Netlify’s load-balancer IP could change in the future, so for the long run, delegating to Netlify DNS or Cloudflare DNS is the safer move.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. What’s different about pointing through Cloudflare DNS instead?&lt;/strong&gt;
A. You delegate the nameservers to Cloudflare and point CNAME at Netlify from there. The upside is you can layer Cloudflare’s CDN and WAF on top, and it’s easier to co-locate multiple services (email, a separate host) on the same domain. Aulvem itself currently runs on Cloudflare Pages, with DNS managed on the Cloudflare side.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How long does it take to propagate after switching nameservers?&lt;/strong&gt;
A. In practice, most of it lands within a few minutes to a few hours, with up to 48 hours as the outer bound. Mid-propagation, what you see depends on whether the network you’re on has cached the old record, so if it’s still not visible after half a day, try a different network.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Is Netlify still a reasonable choice in 2026?&lt;/strong&gt;
A. Still reasonable, yes. That said, in 2026 Cloudflare Pages and Vercel are the more natural defaults for a new project. If you’re leaning on Netlify Forms or Identity, Netlify still holds up.&lt;/p&gt;
&lt;h2 id=&quot;closing&quot;&gt;Closing&lt;/h2&gt;
&lt;p&gt;The real question behind pointing an Onamae.com domain at Netlify is “which DNS holds the authoritative copy of the domain”. Only using Netlify? Delegate to Netlify DNS — that’s the lightest path. Bundling multiple services? Go through Cloudflare DNS instead.&lt;/p&gt;
&lt;p&gt;The screenshots are still the 2021 ones, but the basic flow — delegate the nameservers — hasn’t moved in 2026. Netlify itself is still around, and for projects leaning on Forms or Identity it’s still a top pick.&lt;/p&gt;
&lt;p&gt;If you want to revisit the Netlify-side initial setup, see &lt;a href=&quot;https://aulvem.com/blog/2021-03-06-netlify-setup/&quot;&gt;Setting up a static site with VuePress, GitHub, and Netlify&lt;/a&gt;.&lt;/p&gt;
</content:encoded><category>build</category><category>Netlify</category><category>domain</category><category>DNS</category></item><item><title>RATOC RS-WFIREX4 review — a sub-10,000-yen entry point into the smart home</title><link>https://aulvem.com/blog/2021-03-07-rs-wfirex4/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-07-rs-wfirex4/</guid><description>A few years with the RS-WFIREX4. A small, unobtrusive infrared smart remote with Alexa / Google Home / Siri support. Setup difficulty and response lag are its weak points.</description><pubDate>Sun, 07 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported from the old VuePress blog. The hardware spec and UI described here are from the time of writing. The successor RS-WFIREX5 is now on sale, so check the current line-up before buying new.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The remote always vanished at the exact moment I wanted to use it. That was the steady-state problem.&lt;/p&gt;
&lt;p&gt;To fix it at the physical layer, I bought the RATOC RS-WFIREX4 — an infrared smart remote that lets a phone or a smart speaker drive any infrared appliance in the house. This is the write-up after a few years of use.&lt;/p&gt;
&lt;p&gt;The price sits just under 10,000 yen. As smart remotes go it is on the entry-level end, but the feature set is not far from a Nature Remo or a SwitchBot hub.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--a-solid-pick-for-a-first-smart-remote&quot;&gt;The verdict — a solid pick for a first smart remote&lt;/h2&gt;
&lt;p&gt;Short answer: as a sub-10,000-yen infrared smart remote with Alexa / Google Home / Siri support, it does the entry-level job well. If you want to take one step of friction out of using the remotes around your home, buy.&lt;/p&gt;
&lt;p&gt;Three reasons.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Small, white body that disappears against a wall&lt;/li&gt;
&lt;li&gt;Built-in temperature, humidity, and illuminance sensors that can drive automation conditions&lt;/li&gt;
&lt;li&gt;Official support for all three major smart-speaker ecosystems&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A few cautions before buying:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;If you expect the immediacy of a physical remote&lt;/strong&gt;: there is a two-to-three-second lag&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If setup is not your thing&lt;/strong&gt;: the initial configuration does not just flow from the app — plan to read the manual alongside&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If your room has no line-of-sight for infrared&lt;/strong&gt;: appliances tucked behind a wall or a door may not be reachable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-hardware--a-small-white-box-made-to-live-on-a-wall&quot;&gt;The hardware — a small white box made to live on a wall&lt;/h2&gt;
&lt;p&gt;Short answer: a small white plastic box. There is a hook on the back for wall mounting, so it goes almost anywhere.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;RS-WFIREX4, front view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-07-rs-wfirex4/2021-03-07-RS-WFIREX4-front.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The front is almost blank except for the logo and a small indicator. It melts into a white wall and does not announce itself in a living room.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;RS-WFIREX4 held in a palm, showing scale&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-07-rs-wfirex4/2021-03-07-RS-WFIREX4-size.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;It fits in the palm of a hand. Height is around 4cm. There are vent slots on the side.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;RS-WFIREX4 back, showing wall-mount hook and lanyard hole&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-07-rs-wfirex4/2021-03-07-RS-WFIREX4-back.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The back has a wall-mount hook and a lanyard hole. The base has rubber feet. Whether you set it on a desk or hang it on a wall, nothing about it looks out of place.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;RS-WFIREX4 top, showing the micro-USB Type-B power port&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-07-rs-wfirex4/2021-03-07-RS-WFIREX4-upward.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Power is delivered over micro-USB Type-B. In 2026 USB Type-C is the norm, so this dates the unit — but for a device you plug in once and never unplug, the practical cost is small. The side carries a status LED and a reset button.&lt;/p&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for RATOC Smart Home Remote RS-WFIREX4&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-07-rs-wfirex4/2021-03-07-RS-WFIREX4.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;RATOC Smart Home Remote RS-WFIREX4&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B07BLQ4M3M?q=RATOC+Smart+Home+Remote+RS-WFIREX4&amp;amp;l=en&quot; aria-label=&quot;View RATOC Smart Home Remote RS-WFIREX4 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;what-worked&quot;&gt;What worked&lt;/h2&gt;
&lt;p&gt;Short answer: the core job of replacing infrared remotes is done well. The smart-speaker integration and the on-board sensors are welcome extras.&lt;/p&gt;
&lt;h3 id=&quot;covers-almost-any-infrared-appliance&quot;&gt;Covers almost any infrared appliance&lt;/h3&gt;
&lt;p&gt;Teach it a remote signal and it drives appliances that fall outside the built-in templates. In practice, almost every remote-driven appliance in the house can end up running through a single app.&lt;/p&gt;
&lt;p&gt;After installing it, the number of times per week I went hunting for a remote dropped sharply. To the point that “remote included or smart-compatible” quietly became a purchase criterion for new appliances.&lt;/p&gt;
&lt;p&gt;The headline templated categories are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Air conditioners&lt;/li&gt;
&lt;li&gt;TVs&lt;/li&gt;
&lt;li&gt;Lights&lt;/li&gt;
&lt;li&gt;Fans&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;App downloads:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;iOS: &lt;a href=&quot;https://apps.apple.com/jp/app/wi-fi-xue-xirimokon/id1063944197&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Wi-Fi Learning Remote (App Store)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Android: &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.ratoc.wfirex&quot; rel=&quot;noopener noreferrer sponsored nofollow&quot; target=&quot;_blank&quot;&gt;Wi-Fi Learning Remote (Google Play)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;control-from-outside-the-house&quot;&gt;Control from outside the house&lt;/h3&gt;
&lt;p&gt;Your phone does not need to be on home Wi-Fi. As long as the unit itself is online over the house network, the app reaches it from anywhere. Turn the air conditioner on before you get home, switch off a light you forgot — that kind of operation becomes routine.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;RS-WFIREX4 app home screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-07-rs-wfirex4/2021-03-07-RS-WFIREX4-App-home.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;h3 id=&quot;built-in-temperature-humidity-and-illuminance-sensors&quot;&gt;Built-in temperature, humidity, and illuminance sensors&lt;/h3&gt;
&lt;p&gt;The bottom of the appliance list screen always shows the temperature, humidity, and illuminance at the unit’s location. Illuminance is reported in three levels rather than a raw lux value — personally, I find that granularity more useful.&lt;/p&gt;
&lt;p&gt;You can use these readings as automation triggers, for example “turn on the air conditioner when the temperature rises above 28 °C”.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;RS-WFIREX4 app appliance list, with temperature, humidity, and illuminance at the bottom&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-07-rs-wfirex4/2021-03-07-RS-WFIREX4-Home-appliance-selection.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;h3 id=&quot;per-appliance-remote-ui&quot;&gt;Per-appliance remote UI&lt;/h3&gt;
&lt;p&gt;For templated appliances, the app shows a layout designed for that kind of device. If a button you need is missing from the template, you can add it yourself.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;RS-WFIREX4 app remote screen, with a per-appliance UI&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-07-rs-wfirex4/2021-03-07-RS-WFIREX4-remote-control.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;This is the opposite of the “ten generic buttons on a flat screen” feel of most universal-remote apps. The fact that the layout matches the appliance reads as a small thing and turns out to matter.&lt;/p&gt;
&lt;h3 id=&quot;alexa-google-home-and-siri-all-supported&quot;&gt;Alexa, Google Home, and Siri all supported&lt;/h3&gt;
&lt;p&gt;Official support for all three smart-speaker ecosystems. Finish the integration in the app and you can drive appliances by voice.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;RS-WFIREX4 app Alexa integration screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-07-rs-wfirex4/2021-03-07-RS-WFIREX4-Alexa.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The wins show up when your hands are busy cooking, when the phone is in the other room at night, when the remote is missing in the morning.&lt;/p&gt;
&lt;h2 id=&quot;what-didnt&quot;&gt;What didn’t&lt;/h2&gt;
&lt;p&gt;Short answer: a two-to-three-second lag from going via the cloud, the inherent line-of-sight problem of infrared, and a non-trivial initial setup.&lt;/p&gt;
&lt;h3 id=&quot;two-to-three-second-response-time&quot;&gt;Two-to-three-second response time&lt;/h3&gt;
&lt;p&gt;The path is phone → RATOC cloud → home unit → appliance. The immediacy of a physical remote is not on the table.&lt;/p&gt;
&lt;p&gt;The trap is the moment you ask “did that work?” and tap again. Two commands arrive, and the air conditioner can flip ON / OFF / ON. The fix is a habit: press once, wait a few seconds.&lt;/p&gt;
&lt;h3 id=&quot;infrared-with-the-obstacle-problem-that-implies&quot;&gt;Infrared, with the obstacle problem that implies&lt;/h3&gt;
&lt;p&gt;This is a property of infrared rather than of this product. Thick doors and walls between the unit and the appliance stop the signal.&lt;/p&gt;
&lt;p&gt;Cranking up the output extends the range, but then it also reaches a near-identical unit a wall away in someone else’s room. Every smart remote on the market lives with this trade-off.&lt;/p&gt;
&lt;p&gt;Pick a “central spot with line-of-sight to the appliances you care about” when you choose where to mount it.&lt;/p&gt;
&lt;h3 id=&quot;initial-setup-needs-the-manual&quot;&gt;Initial setup needs the manual&lt;/h3&gt;
&lt;p&gt;Wi-Fi setup → unit registration → appliance registration → integration setup. The flow is more steps than the app’s UI alone tries to walk you through. The fastest route is to keep the manual or the official setup page open alongside.&lt;/p&gt;
&lt;p&gt;It is not a heavy lift for an experienced user, but it is not a “plug it in and it works in five minutes” device either, and that is worth knowing upfront.&lt;/p&gt;
&lt;h3 id=&quot;micro-usb-type-b-for-power&quot;&gt;micro-USB Type-B for power&lt;/h3&gt;
&lt;p&gt;In 2026, the port is dated. For a once-and-done install it does not bite, but cable management is easier with USB Type-C.&lt;/p&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for RATOC Smart Home Remote RS-WFIREX4&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-07-rs-wfirex4/2021-03-07-RS-WFIREX4.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;RATOC Smart Home Remote RS-WFIREX4&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B07BLQ4M3M?q=RATOC+Smart+Home+Remote+RS-WFIREX4&amp;amp;l=en&quot; aria-label=&quot;View RATOC Smart Home Remote RS-WFIREX4 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;
&lt;h2 id=&quot;comparison--rs-wfirex4-vs-switchbot-hub--nature-remo&quot;&gt;Comparison — RS-WFIREX4 vs SwitchBot Hub / Nature Remo&lt;/h2&gt;
&lt;p&gt;Short answer: the core feature set is roughly the same across all three. The differences show up in extras (Matter, hub features, ecosystem) and price band.&lt;/p&gt;

































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;RS-WFIREX4&lt;/th&gt;&lt;th&gt;SwitchBot Hub 2&lt;/th&gt;&lt;th&gt;Nature Remo 3 / mini 2&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Price (reference)&lt;/td&gt;&lt;td&gt;Under 10,000 yen&lt;/td&gt;&lt;td&gt;~8,000 – 10,000 yen&lt;/td&gt;&lt;td&gt;~6,000 – 13,000 yen&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Temperature sensor&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Humidity sensor&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No on mini 2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Illuminance sensor&lt;/td&gt;&lt;td&gt;Yes (3 levels)&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes on Remo 3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Motion sensor&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes on Remo 3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Alexa / Google / Siri&lt;/td&gt;&lt;td&gt;All three&lt;/td&gt;&lt;td&gt;All three&lt;/td&gt;&lt;td&gt;All three&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Matter support&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Partial&lt;/td&gt;&lt;td&gt;Partial&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ecosystem&lt;/td&gt;&lt;td&gt;Standalone&lt;/td&gt;&lt;td&gt;Broad (button pushers, etc.)&lt;/td&gt;&lt;td&gt;Mostly standalone&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Power&lt;/td&gt;&lt;td&gt;micro-USB Type-B&lt;/td&gt;&lt;td&gt;USB Type-C&lt;/td&gt;&lt;td&gt;USB Type-C&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Spec and price move over time — check each manufacturer’s official page for current numbers.&lt;/p&gt;
&lt;p&gt;A rough buying guide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cheap entry-level pick&lt;/strong&gt;: RS-WFIREX4&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Want to combine it with physical button pushers and friends&lt;/strong&gt;: SwitchBot Hub 2&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Want motion-sensor-based automation&lt;/strong&gt;: Nature Remo 3&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Put differently: if you scope the requirement down to the core (infrared remote + sensors + smart-speaker integration), the RS-WFIREX4 does not leave a meaningful gap.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Does it work with both Alexa and Google Home?&lt;/strong&gt;
A. Yes. Enable the skill or action from the integration screen in the app and the same appliances can be controlled from either side. Siri Shortcuts is officially supported as well.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Can I control it from my phone when I am out of the house?&lt;/strong&gt;
A. Yes. The RS-WFIREX4 stays connected to the manufacturer’s cloud over your home Wi-Fi, so the app reaches it even when your phone is on 4G or 5G. If your home router goes down, of course, nothing gets through.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How long does it take for an appliance to respond after I press a button?&lt;/strong&gt;
A. Two to three seconds in real use. The path is phone → cloud → unit → appliance, so it never matches the immediacy of a physical remote. Mashing the button sends duplicate commands, so the safe habit is to press once and wait.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Which appliances does it support?&lt;/strong&gt;
A. Anything with an infrared remote, basically. Templates are provided for the major categories — air conditioners, TVs, lights, fans. Outside the templates you can teach it the raw remote signal and it still works.&lt;/p&gt;
&lt;h2 id=&quot;verdict--a-sensible-first-one&quot;&gt;Verdict — a sensible “first one”&lt;/h2&gt;
&lt;p&gt;It is not flashy. What it is, is a quiet, complete take on the basics of a smart remote.&lt;/p&gt;
&lt;p&gt;Under 10,000 yen, full Alexa / Google Home / Siri support, three on-board sensors, a small body — that combination is hard to fault as an entry-level pick. The response lag and the setup work are structural, so the call is whether you can live with them.&lt;/p&gt;
&lt;p&gt;If you want to push further — Matter-based ecosystems, motion-sensor automation — it is worth lining up the SwitchBot Hub 2 and Nature Remo 3 alongside.&lt;/p&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for RATOC Smart Home Remote RS-WFIREX4&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-07-rs-wfirex4/2021-03-07-RS-WFIREX4.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;RATOC Smart Home Remote RS-WFIREX4&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B07BLQ4M3M?q=RATOC+Smart+Home+Remote+RS-WFIREX4&amp;amp;l=en&quot; aria-label=&quot;View RATOC Smart Home Remote RS-WFIREX4 on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;
</content:encoded><category>reviews</category><category>gadget</category><category>smart-home</category><category>iot</category></item><item><title>Setting up a static site with VuePress, GitHub, and Netlify</title><link>https://aulvem.com/blog/2021-03-06-netlify-setup/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-06-netlify-setup/</guid><description>The initial setup for wiring a GitHub repository up to Netlify and auto-deploying a static site for free. Walks through account creation, site setup, build configuration, two-factor auth, and the free-tier ceiling — with the original 2021 screenshots — assuming a VuePress site.</description><pubDate>Sat, 06 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: A post ported over from the old VuePress blog. Netlify’s admin UI and pricing have moved on since 2021, so parts of this don’t line up one-to-one with the current product. The skeleton — connect GitHub, set a build command, get auto-deploys — is still the same shape, and that’s why I’ve kept the post around.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is the initial setup for picking Netlify as a static host, wiring up a GitHub repository, and getting auto-deploys running. The screenshots are the original 2021 ones; the current Netlify dashboard has a different layout, so read them with that grain of salt.&lt;/p&gt;
&lt;p&gt;The five things covered here are: account creation, repository connection, build configuration, two-factor authentication, and a look at the free tier. Custom-domain setup is in a separate post.&lt;/p&gt;
&lt;h2 id=&quot;the-services-used&quot;&gt;The services used&lt;/h2&gt;
&lt;p&gt;Short answer: GitHub for code, Netlify for static hosting — the minimal pair.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt; — code hosting&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://app.netlify.com/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Netlify&lt;/a&gt; — static site hosting&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The reason is that Netlify watches GitHub and builds and publishes automatically when you push. You write locally, push, and check the result — a short loop.&lt;/p&gt;
&lt;p&gt;The overall flow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Develop and write locally&lt;/li&gt;
&lt;li&gt;Push the source to GitHub&lt;/li&gt;
&lt;li&gt;Netlify picks it up, builds, and serves&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Note: the steps below assume you already have a GitHub account with 2FA enabled.&lt;/p&gt;
&lt;h2 id=&quot;create-a-netlify-account&quot;&gt;Create a Netlify account&lt;/h2&gt;
&lt;p&gt;Short answer: sign in from the Netlify homepage with your GitHub account.&lt;/p&gt;
&lt;p&gt;The reason is that wiring Netlify to GitHub via OAuth is shorter than running two separate accounts, and you don’t have to set up a Netlify password.&lt;/p&gt;
&lt;p&gt;Open Netlify, and the screen below comes up — sign in with your GitHub account.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;Netlify login screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-06-netlify-setup/2021-03-06-Netlify-login.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Note: as of 2026, Netlify has refreshed the UI, and the sign-up layout and button positions are different from this screenshot. The OAuth-with-GitHub flow itself is the same.&lt;/p&gt;
&lt;h2 id=&quot;connect-a-github-repository&quot;&gt;Connect a GitHub repository&lt;/h2&gt;
&lt;p&gt;Short answer: from the dashboard, click &lt;strong&gt;New site from Git&lt;/strong&gt;, pick GitHub, and select the target repository.&lt;/p&gt;
&lt;p&gt;The reason is that Netlify is built around Git as the source of truth. Drag-and-drop from a local folder exists as a separate option, but if you want auto-deploys, Git is the prerequisite.&lt;/p&gt;
&lt;p&gt;After signing in, &lt;strong&gt;New site from Git&lt;/strong&gt; opens the deploy-source picker. Pick GitHub, then pick the repository.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;Netlify create a new site screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-06-netlify-setup/2021-03-06-Netlify-repository.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Note: private repositories use the same flow. For organisation-owned repos, the organisation may have to approve the Netlify app on their side first.&lt;/p&gt;
&lt;h2 id=&quot;fill-in-the-build-settings&quot;&gt;Fill in the build settings&lt;/h2&gt;
&lt;p&gt;Short answer: set &lt;strong&gt;Branch&lt;/strong&gt;, &lt;strong&gt;Build command&lt;/strong&gt;, and &lt;strong&gt;Publish directory&lt;/strong&gt;, then click &lt;strong&gt;Deploy site&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The reason is that those three fields are how Netlify decides which branch, how to build, and what to serve. They’re the only fields that really change with the framework (VuePress, Next.js, Astro, and so on).&lt;/p&gt;
&lt;p&gt;Once you pick the repository, the build-settings screen comes up.&lt;/p&gt;
&lt;img width=&quot;600&quot; alt=&quot;Netlify build settings screen&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-06-netlify-setup/2021-03-06-Netlify-repository-setting.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Example values for a VuePress site:&lt;/p&gt;





















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Field&lt;/th&gt;&lt;th&gt;Example&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Branch&lt;/td&gt;&lt;td&gt;&lt;code&gt;master&lt;/code&gt; or &lt;code&gt;main&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Build command&lt;/td&gt;&lt;td&gt;&lt;code&gt;npm run build&lt;/code&gt; (for VuePress)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Publish directory&lt;/td&gt;&lt;td&gt;&lt;code&gt;docs/.vuepress/dist&lt;/code&gt; (VuePress default)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;After filling those in, click &lt;strong&gt;Deploy site&lt;/strong&gt; and the build kicks off. When the status reads &lt;strong&gt;Published&lt;/strong&gt;, the deploy worked.&lt;/p&gt;
&lt;p&gt;Note: changing the build command after the fact and breaking the deploy is a classic mistake. &lt;strong&gt;Don’t casually edit a configuration that’s already working.&lt;/strong&gt; Mistyping the publish directory by a single folder is enough to ship a blank page.&lt;/p&gt;
&lt;h2 id=&quot;auto-deploys-and-https&quot;&gt;Auto-deploys and HTTPS&lt;/h2&gt;
&lt;p&gt;Short answer: push to the configured branch and Netlify builds automatically; HTTPS comes on by itself.&lt;/p&gt;
&lt;p&gt;The reason is that Netlify wraps Let’s Encrypt internally, so even after a custom domain is attached, certificate issuance and renewal are handled for you. There’s nothing manual to do in the normal case.&lt;/p&gt;
&lt;p&gt;In practice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pushing to the configured branch triggers a build&lt;/li&gt;
&lt;li&gt;Once the build succeeds, the result is pushed to the serving CDN&lt;/li&gt;
&lt;li&gt;Attach a custom domain and Netlify issues the certificate automatically&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note: right after attaching a custom domain, propagation takes a while. At the time, it felt like roughly half a day to settle, though it depends on DNS propagation.&lt;/p&gt;
&lt;h2 id=&quot;turn-on-two-factor-authentication&quot;&gt;Turn on two-factor authentication&lt;/h2&gt;
&lt;p&gt;Short answer: open User settings, go to Security, and enable &lt;strong&gt;Two-factor authentication&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The reason is that this account holds the deploy keys and the custom-domain settings. If it gets taken over, the attacker can swap out a live site. Turning 2FA on at the start saves regret later.&lt;/p&gt;
&lt;p&gt;Steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click your avatar in the top right and open &lt;strong&gt;User settings&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Security&lt;/strong&gt; in the left menu&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;Two-factor authentication&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Direct link:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://app.netlify.com/user/security#two-factor-authentication/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://app.netlify.com/user/security#two-factor-authentication/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Note: switching phones without backing up your authenticator app (Authy, 1Password, Google Authenticator, and so on) means you can lock yourself out. Keep the recovery codes somewhere separate.&lt;/p&gt;
&lt;h2 id=&quot;about-the-free-tier&quot;&gt;About the free tier&lt;/h2&gt;
&lt;p&gt;Short answer: the Netlify Starter plan was 100GB of bandwidth and 300 build minutes a month (as of 2021).&lt;/p&gt;
&lt;p&gt;The reason is that for a personal blog, if you keep image weight in check, the free tier just about covers you. Commercial use or high-frequency updates is a different conversation.&lt;/p&gt;
&lt;p&gt;The Starter plan at the time:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bandwidth: 100GB / month&lt;/li&gt;
&lt;li&gt;Build time: 300 minutes / month&lt;/li&gt;
&lt;li&gt;Site count: personal-use range&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For reference, dropping in lots of video or uncompressed PNGs eats both bandwidth and build time fast. Converting to WebP, or offloading images to an external image service, makes it easier to stay inside the free tier.&lt;/p&gt;
&lt;p&gt;Note: pricing has been revised as of 2026. Check the official &lt;a href=&quot;https://www.netlify.com/pricing/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Pricing&lt;/a&gt; page for the current limits.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. When a build fails, where do you look first?&lt;/strong&gt;
A. The Build command output in the deploy log. When it builds locally but fails on Netlify, it’s usually a Node.js version mismatch, or a gap between &lt;code&gt;package-lock.json&lt;/code&gt; and your environment variables.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. I changed the build command and the site disappeared — can I roll back?&lt;/strong&gt;
A. Open the Deploys tab, find a past successful build, and use &lt;strong&gt;Publish deploy&lt;/strong&gt; to roll back. Roll back first, then fix the offending commit — that’s the safer order.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Is custom-domain setup covered here?&lt;/strong&gt;
A. No. The steps for pointing an Onamae.com domain at Netlify are in a separate post.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How does Netlify compare with Vercel or Cloudflare Pages?&lt;/strong&gt;
A. The core experience — auto-deploying a static site from GitHub — is close. The differences show up in pricing, build minutes, and the edge-runtime story. The reason I picked Netlify in 2021 came down to two things: Japanese-language docs were in better shape at the time, and VuePress sample configs were easier to find.&lt;/p&gt;
&lt;h2 id=&quot;closing&quot;&gt;Closing&lt;/h2&gt;
&lt;p&gt;Netlify’s initial setup is OAuth into GitHub, pick a repository, type one line for the build command and one for the publish folder — that’s it. HTTPS and rebuilds are automatic, and the only things that really trip people up early on are mistyping the build command and forgetting to filter out their own PC from analytics.&lt;/p&gt;
&lt;p&gt;Custom-domain setup is in a separate post. Analytics exclusion rules and how to pick an image host I’ll come back to another time.&lt;/p&gt;</content:encoded><category>build</category><category>VuePress</category><category>Netlify</category></item><item><title>Cup Noodle Refill Lidded Mug review — a wide-bottomed desk mug that resists spills</title><link>https://aulvem.com/blog/2021-03-05-cupnoodlemug/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-05-cupnoodlemug/</guid><description>Six-plus months with the Cup Noodle Refill Lidded Mug as a daily desk cup. Wide base that resists tipping, a lid that keeps dust out, lightweight polypropylene that handles the microwave.</description><pubDate>Fri, 05 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported from the old VuePress blog. The refill mug itself is still listed on Nissin’s official online shop and at the Cup Noodles Museum shop. The numbers are the manufacturer’s published figures from the original writing; current official specs may differ. Heavily rewritten.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I picked up the “Refill Lidded Mug” on the way home from the Cup Noodles Museum, mostly as a novelty. It was designed for swapping in refill noodles, but it ended up living on my desk as a daily-use cup.&lt;/p&gt;
&lt;p&gt;It feels better suited to that — a desk mug for coffee or tea — than to its stated purpose. The reasoning is below.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--for-anyone-who-wants-a-desk-mug-that-doesnt-tip&quot;&gt;The verdict — for anyone who wants a desk mug that doesn’t tip&lt;/h2&gt;
&lt;p&gt;Short answer: the wide base and low center of gravity make it hard to knock over, even sitting right next to a keyboard. The lid keeps dust out and the polypropylene body is light. If you can live with the look, the practical value is high for the price (under 1,000 yen).&lt;/p&gt;
&lt;p&gt;Three reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The base is wider than a typical mug&lt;/strong&gt;: the shape is a direct copy of the Cup Noodle cup, so it absorbs a stray arm or sleeve without going over&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A lid is included&lt;/strong&gt;: it comes with a vented lid, so dust doesn’t get in while it sits on your desk&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Light in the hand&lt;/strong&gt;: polypropylene is much lighter than ceramic, which makes carrying it around easier&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is harder to recommend if any of these apply:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You don’t want a loud design on your desk&lt;/strong&gt;: it is the Cup Noodle livery, untouched — not always a great fit for a workplace or a customer meeting&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You want cold drinks with condensation handled&lt;/strong&gt;: as a plastic mug it insulates worse than ceramic&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-and-feel&quot;&gt;Build and feel&lt;/h2&gt;
&lt;p&gt;Short answer: a Cup Noodle cup with a handle bolted on. The material is polypropylene, and because it was designed to hold refill noodles, the base is wide.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Cup Noodle mug, front view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-05-cupnoodlemug/2021-03-05-CupNoodleMug-front.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The front is the Cup Noodle packaging, as-is. To someone who doesn’t know the product, it looks like you are drinking Cup Noodle.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Cup Noodle mug next to a pen for scale&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-05-cupnoodlemug/2021-03-05-CupNoodleMug-size.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The width and height are roughly the same as a regular-size Cup Noodle (rated). As a mug it reads as a little wider and a little shorter than usual.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Cup Noodle mug, looking down inside&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-05-cupnoodlemug/2021-03-05-CupNoodleMug-upward.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;img width=&quot;800&quot; alt=&quot;Cup Noodle mug, underside&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-05-cupnoodlemug/2021-03-05-CupNoodleMug-bottom.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;Inside is the molded fill-line rib for hot water. The base has a wide outer diameter and a large footprint. Most mugs taper from a wide rim to a narrower bottom; this one is closer to the opposite.&lt;/p&gt;
&lt;p&gt;The material is polypropylene. Heat resistance is listed as 140 degrees C.&lt;/p&gt;
&lt;h2 id=&quot;what-worked&quot;&gt;What worked&lt;/h2&gt;
&lt;p&gt;Short answer: stability from the wide base, dust protection from the lid, and how light it is.&lt;/p&gt;
&lt;h3 id=&quot;wide-base-hard-to-tip&quot;&gt;Wide base, hard to tip&lt;/h3&gt;
&lt;p&gt;This is the headline difference. I had spent years occasionally knocking over the mug on my desk with a stray arm or sleeve; in the six-plus months since switching to this one, I have not tipped it once.&lt;/p&gt;
&lt;p&gt;The reason is built in. A Cup Noodle cup is designed to stay upright on an unstable surface — low center of gravity, wide base.&lt;/p&gt;
&lt;h3 id=&quot;a-lid-that-keeps-dust-out&quot;&gt;A lid that keeps dust out&lt;/h3&gt;
&lt;p&gt;It comes with a vented lid as standard. There is no locking mechanism, so it is not the cup for commuting with, but for something that stays parked on a desk it is enough.&lt;/p&gt;
&lt;p&gt;Knowing that dust and crumbs aren’t drifting into the cup while I am away from my seat changes how the cup feels day to day.&lt;/p&gt;
&lt;h3 id=&quot;light-with-a-roomy-handle&quot;&gt;Light, with a roomy handle&lt;/h3&gt;
&lt;p&gt;Polypropylene is noticeably lighter than ceramic. The handle is large enough for three fingers, which makes it easy to carry full.&lt;/p&gt;
&lt;p&gt;It is also labeled as microwave-safe, so reheating a cold coffee can happen in place.&lt;/p&gt;
&lt;h2 id=&quot;what-didnt&quot;&gt;What didn’t&lt;/h2&gt;
&lt;p&gt;Short answer: the refill noodles cost more than a regular Cup Noodle, the plastic picks up some smell, and the look isn’t always workplace-safe.&lt;/p&gt;
&lt;h3 id=&quot;refill-noodles-cost-more-than-a-regular-cup-noodle&quot;&gt;Refill noodles cost more than a regular Cup Noodle&lt;/h3&gt;
&lt;p&gt;The intended workflow — drop refill noodles into the mug, pour hot water — doesn’t really pencil out. A regular-size Cup Noodle is often cheaper.&lt;/p&gt;
&lt;p&gt;Given the production scale, the refill premium is understandable, but if you bought the mug specifically for that use, it is a small letdown.&lt;/p&gt;
&lt;h3 id=&quot;some-smell-carries-over&quot;&gt;Some smell carries over&lt;/h3&gt;
&lt;p&gt;Polypropylene picks up a small amount of color and smell after coffee or tea, even after washing. It is something you notice when you compare against a ceramic mug, not something that gets in the way of daily use.&lt;/p&gt;
&lt;h3 id=&quot;the-look-is-hard-to-bring-out-at-work&quot;&gt;The look is hard to bring out at work&lt;/h3&gt;
&lt;p&gt;The packaging is unchanged, so it doesn’t sit naturally in a customer meeting or a more formal office. For a desk you sit at alone it is fine; for shared spaces a plain mug is the safer pick.&lt;/p&gt;
&lt;h2 id=&quot;comparison--versus-other-desk-mugs&quot;&gt;Comparison — versus other desk mugs&lt;/h2&gt;
&lt;p&gt;Short answer: a mug that is both hard to tip and has a lid, for under 1,000 yen, doesn’t have many direct competitors.&lt;/p&gt;





















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;Cup Noodle Refill Lidded Mug&lt;/th&gt;&lt;th&gt;Typical ceramic mug&lt;/th&gt;&lt;th&gt;Thermos-style tumbler (with lid)&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Tip resistance&lt;/td&gt;&lt;td&gt;Wide base, hard to tip&lt;/td&gt;&lt;td&gt;Roughly the same diameter top-to-bottom, easier to tip&lt;/td&gt;&lt;td&gt;Depends on base; narrow ones tip easily&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lid&lt;/td&gt;&lt;td&gt;Included (vented, no lock)&lt;/td&gt;&lt;td&gt;Sold separately&lt;/td&gt;&lt;td&gt;Included (some lockable)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Weight&lt;/td&gt;&lt;td&gt;Light (plastic)&lt;/td&gt;&lt;td&gt;Heavy&lt;/td&gt;&lt;td&gt;Medium (metal)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Insulation&lt;/td&gt;&lt;td&gt;Weak (single-wall plastic)&lt;/td&gt;&lt;td&gt;Medium&lt;/td&gt;&lt;td&gt;Strong (vacuum-insulated)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Microwave&lt;/td&gt;&lt;td&gt;Yes (rated)&lt;/td&gt;&lt;td&gt;Depends on the piece&lt;/td&gt;&lt;td&gt;No (metal)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Visual restraint&lt;/td&gt;&lt;td&gt;Loud&lt;/td&gt;&lt;td&gt;Usually neutral&lt;/td&gt;&lt;td&gt;Neutral&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Price&lt;/td&gt;&lt;td&gt;Under 1,000 yen&lt;/td&gt;&lt;td&gt;A few hundred to a few thousand yen&lt;/td&gt;&lt;td&gt;2,000 yen and up&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;If you want full insulation, a Thermos-style tumbler is the right tool. If you want a neutral look and microwave compatibility, a regular ceramic mug. If the requirement is “won’t tip, has a lid, cheap,” this one fits.&lt;/p&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for Nissin Cup Noodle Refill Lidded Mug&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-05-cupnoodlemug/2021-03-05-CupNoodleMug.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;Nissin Cup Noodle Refill Lidded Mug&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B01LYSLENN?q=Nissin+Cup+Noodle+Refill+Lidded+Mug&amp;amp;l=en&quot; aria-label=&quot;View Nissin Cup Noodle Refill Lidded Mug on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Is it dishwasher-safe?&lt;/strong&gt;
A. Depending on the package, it may be listed as not supported. As a plastic mug, repeated hot-cycle dishwashing risks deformation, and hand-washing is the safer call.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Where can I buy it?&lt;/strong&gt;
A. The Nissin Foods online shop, the museum shop at the Cup Noodles Museum, and various marketplaces. Physical retail is limited, so online is the realistic route.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How much does it hold?&lt;/strong&gt;
A. Roughly the same capacity as a regular-size Cup Noodle. As an everyday drink cup it reads on the larger side.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Can kids use it?&lt;/strong&gt;
A. It is light and won’t shatter, so it is friendlier than ceramic in that sense. The lid does not lock, though, so for actual spill-proofing a kids’ mug with a locking lid is safer.&lt;/p&gt;
&lt;h2 id=&quot;verdict--bought-as-a-novelty-kept-as-a-tool&quot;&gt;Verdict — bought as a novelty, kept as a tool&lt;/h2&gt;
&lt;p&gt;Short answer: the intended use (refill noodles) is hard to justify on cost, but as a lidded desk mug it earns its place for the price.&lt;/p&gt;
&lt;p&gt;I bought it as a Cup Noodles Museum souvenir, and six-plus months later it is still on my desk every day. That was not the plan.&lt;/p&gt;
&lt;p&gt;If the brief is “a lidded mug that won’t tip, under 1,000 yen,” competitors are thin on the ground. Whether it works for you depends on how much you can live with the look.&lt;/p&gt;
&lt;p&gt;I am quietly considering buying a second one for the office.&lt;/p&gt;</content:encoded><category>reviews</category><category>dailyNecessities</category></item><item><title>Image placement and sitemap setup for VuePress — a 2021 build note (archived)</title><link>https://aulvem.com/blog/2021-03-04-vuepress-image-sitemap/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-04-vuepress-image-sitemap/</guid><description>How I split the image directories, declared the favicon, and configured vuepress-plugin-sitemap and robots.txt when I built a personal blog on VuePress 1.x back in 2021 — kept alongside the original config.js and folder layout.</description><pubDate>Thu, 04 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: A post ported over from the old VuePress blog. Both VuePress 1.x and vuepress-plugin-sitemap are effectively no longer maintained, so this isn’t a reference for new builds. It’s left up as a record of how image sitemaps and image-directory layout were thought through at the time. All code snippets assume VuePress 1.x as of 2021.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A record of how image placement and sitemap settings were laid out back when I was building a personal blog on VuePress 1.x. The setup that was standard at the time — managing images in the same folder structure as the Markdown posts, hard-coding the favicon into the head array of config.js, and emitting the sitemap with vuepress-plugin-sitemap — is kept here as-is.&lt;/p&gt;
&lt;p&gt;What this post covers is four things: “how to split the image directory”, “how to declare the favicon”, “how to configure the sitemap plugin”, and “where to place robots.txt”. The broader VuePress directory layout itself is covered separately in &lt;a href=&quot;https://aulvem.com/blog/2021-03-01-vuepress-structure/&quot;&gt;VuePress/blog directory structure&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;the-short-answer--split-public-and-publicresources&quot;&gt;The short answer — split public and public/resources&lt;/h2&gt;
&lt;p&gt;Short answer: physically separate the files in image and sitemap territory between those served directly at the root and those organized per article.&lt;/p&gt;
&lt;p&gt;VuePress 1.x copies the contents of src/.vuepress/public to the root of dist as-is. Anything placed directly under public is served from the site root after the build. The split I went with: files where “being at the root has meaning in itself” — the favicon, robots.txt, sitemap.xml — go directly under public, and files that need to be “organized per article” — the article images — go under public/resources.&lt;/p&gt;
&lt;p&gt;The reason is that putting both at the same level kills visibility once the file count grows. With hundreds of article images directly under public, the favicon gets buried in the pile.&lt;/p&gt;
&lt;h2 id=&quot;files-in-scope&quot;&gt;Files in scope&lt;/h2&gt;
&lt;p&gt;Short answer: the two places touched here are the public folder under src/.vuepress and config.js.&lt;/p&gt;
&lt;p&gt;Specifically, the layout looks like this.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;src&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─ .vuepress&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ├─ public&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  ├─ resources&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  │  └─ category&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  │     └─ page&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  │        └─ img.jpg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  ├─ top.jpg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  ├─ favicon.ico&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  ├─ favicon.png&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  └─ robots.txt&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   └─ config.js&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A caveat: the directory layout at a broader scope is covered in &lt;a href=&quot;https://aulvem.com/blog/2021-03-01-vuepress-structure/&quot;&gt;VuePress/blog directory structure&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;why-organize-an-image-sitemap&quot;&gt;Why organize an image sitemap&lt;/h2&gt;
&lt;p&gt;Short answer: to tell crawlers where the images live, and to keep me from losing track of images on the authoring side.&lt;/p&gt;
&lt;p&gt;An image sitemap is an extension that, inside sitemap.xml, lists “this page has these images” against each URL. A regular sitemap is just a list of page URLs; an image sitemap also passes image URLs to the crawler. In theory this opens up another inbound path from image search.&lt;/p&gt;
&lt;p&gt;That said, vuepress-plugin-sitemap 2.x on VuePress 1.x doesn’t, by default, emit image entries to the sitemap. What this post covers stops at “images are served correctly and a page-level sitemap is being emitted” — it doesn’t cover a strict image sitemap with image entries included.&lt;/p&gt;
&lt;h2 id=&quot;comparison-image-sitemap-vs-regular-sitemap&quot;&gt;Comparison: image sitemap vs. regular sitemap&lt;/h2&gt;






























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Lens&lt;/th&gt;&lt;th&gt;Regular sitemap (sitemap.xml)&lt;/th&gt;&lt;th&gt;Image sitemap&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;What it conveys&lt;/td&gt;&lt;td&gt;List of page URLs&lt;/td&gt;&lt;td&gt;Each page URL + the images contained on that page&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;How it’s submitted to Google&lt;/td&gt;&lt;td&gt;Search Console / robots.txt&lt;/td&gt;&lt;td&gt;Same (embedded as extension elements)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;vuepress-plugin-sitemap 2.x support&lt;/td&gt;&lt;td&gt;Generated by default&lt;/td&gt;&lt;td&gt;Not supported by default&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;How well it works for a personal blog&lt;/td&gt;&lt;td&gt;Essentially required&lt;/td&gt;&lt;td&gt;Worth considering if you’re targeting image-search traffic&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The reasoning is that image-search traffic moves the needle for photo media but doesn’t shift much for text-driven tech blogs. Setting up just the regular sitemap first and stepping into the image sitemap only after image-search traffic starts showing up was a good enough order.&lt;/p&gt;
&lt;h2 id=&quot;decide-the-directory-for-per-article-images&quot;&gt;Decide the directory for per-article images&lt;/h2&gt;
&lt;p&gt;Short answer: under src/.vuepress/public/resources, create per-article folders and place the images there.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;src&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─ .vuepress&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   └─ public&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      └─ resources&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;         └─ category&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;            └─ page&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;               └─ img.jpg&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The reason is that aligning the Markdown folder structure with the image folder structure one-to-one makes it easier to trace where images live when posts get moved or deleted later. A single post often contains several images, so I split folders at the page level.&lt;/p&gt;
&lt;p&gt;A caveat: match folder names to the article’s slug. Renaming on the article side and renaming the image folder at different times causes broken links.&lt;/p&gt;
&lt;h2 id=&quot;put-shared-images-and-the-favicon-directly-under-public&quot;&gt;Put shared images and the favicon directly under public&lt;/h2&gt;
&lt;p&gt;Short answer: the top image, profile image, and favicon all sit directly under src/.vuepress/public.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;src&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─ .vuepress&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   └─ public&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      ├─ favicon.ico&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      └─ favicon.png&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The reason is that shared images at the time were only two or three files — not enough to warrant a folder. The plan was, once shared images grew, to break out a public/resources/common folder and move them in, like this.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;src&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─ .vuepress&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   └─ public&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      └─ resources&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;         ├─ category&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;         └─ common&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;            └─ img.jpg&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Because VuePress has no index.html, the favicon is declared by writing a link tag in the head array of config.js.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;module&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;exports&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  head: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;link&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, { rel: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;icon&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, href: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/resources/favicon.ico&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; }],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you want PWA support, prepare a PNG favicon separately from the ico and put it at the same level. At the time the site’s PWA support was only half done, so I’ve left out that part of the description.&lt;/p&gt;
&lt;p&gt;A caveat: the head declaration is reflected in every built HTML file. Get the href path off by even one level and the favicon stops loading across the entire site.&lt;/p&gt;
&lt;h2 id=&quot;install-vuepress-plugin-sitemap-and-set-hostname&quot;&gt;Install vuepress-plugin-sitemap and set hostname&lt;/h2&gt;
&lt;p&gt;Short answer: add vuepress-plugin-sitemap to the plugins array, declare hostname and exclude, and sitemap.xml is generated automatically.&lt;/p&gt;
&lt;p&gt;The site used &lt;a href=&quot;https://www.npmjs.com/package/vuepress-plugin-sitemap&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;vuepress-plugin-sitemap&lt;/a&gt; (at the time of writing, &lt;code&gt;vuepress-plugin-sitemap: ^2.3.1&lt;/code&gt;). The setup is finished entirely in config.js.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;module&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;exports&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  plugins: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      &amp;quot;sitemap&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        hostname: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;https://xxxx&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        exclude: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;https://xxxx/404.html&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The reasoning: hostname is required because it’s used to assemble the URLs inside the sitemap. exclude is where you list URLs you want kept out of the crawl, like the 404 page. The other fine-grained options didn’t really need touching at personal-blog scale.&lt;/p&gt;
&lt;p&gt;A caveat: vuepress-plugin-sitemap 2.x is for VuePress 1.x. For VuePress 2.x, it’s a different package and a different configuration API.&lt;/p&gt;
&lt;h2 id=&quot;place-robotstxt-directly-under-public&quot;&gt;Place robots.txt directly under public&lt;/h2&gt;
&lt;p&gt;Short answer: robots.txt &lt;strong&gt;has to&lt;/strong&gt; sit directly under src/.vuepress/public.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;src&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─ .vuepress&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ├─ public&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  └─ robots.txt&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   └─ config.js&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The reason is that VuePress copies the contents of public to the root of dist. Place it in a subfolder and it isn’t served from the root, so to crawlers the site looks like one without a robots.txt.&lt;/p&gt;
&lt;p&gt;The contents are the same as for any other framework.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;User-agent : *&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Disallow :&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Sitemap : https://xxxx/sitemap.xml&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Including a Sitemap line lets crawlers find sitemap.xml even without going through Search Console.&lt;/p&gt;
&lt;p&gt;A caveat: leaving Disallow blank means “allow everything”, but if you’ll later expose a staging environment through the same setup, an operation flow that swaps robots.txt per environment is safer.&lt;/p&gt;
&lt;h2 id=&quot;pitfalls--what-tripped-me-up-at-the-time&quot;&gt;Pitfalls — what tripped me up at the time&lt;/h2&gt;
&lt;p&gt;Short answer: two things tripped me up — image paths colliding with the favicon path, and sitemap.xml caching more aggressively than expected.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Writing image references as &lt;code&gt;/img.jpg&lt;/code&gt; collides with files that already sit directly under public. I standardized on writing article images with full paths like &lt;code&gt;/resources/category/page/img.jpg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;sitemap.xml caches easily in both CDNs and browsers, so right after a deploy it can still show the old contents when viewed from Search Console. Resubmit the rebuilt URL and confirm it’s picked up&lt;/li&gt;
&lt;li&gt;After every build, check that robots.txt and sitemap.xml are emitted directly under dist. Misplacing them under public is the most easily missed kind of accident — the build passes, but the file simply isn’t at the root&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Is an image sitemap a different thing from a regular sitemap.xml?&lt;/strong&gt;
A. An image sitemap is an extension of sitemap.xml that lists image:image entries against each URL. A regular sitemap is just a list of pages; an image sitemap tells the crawler “which images live on which page” as well. vuepress-plugin-sitemap 2.x doesn’t emit image entries by default, so if you wanted to include images you had to extend it with another plugin or regenerate the sitemap yourself.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Why split off public/resources instead of putting everything directly under public?&lt;/strong&gt;
A. If everything sits directly under public, article images, shared images, the favicon, and robots.txt all end up at the same level and visibility drops. Slipping public/resources in as one extra layer physically separates per-article images (resources/category/article-name) from things that need to live at the public root (favicon, robots.txt).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Is the VuePress 1.x sitemap plugin still usable in 2026?&lt;/strong&gt;
A. Technically it still runs, but maintenance on both vuepress-plugin-sitemap and VuePress 1.x itself has effectively stopped. For new builds, picking an SSG with sitemap generation built in officially — Astro or Next.js — is easier in both the short and long term. For maintaining an existing site, pinning Node LTS and plugin versions to extend its life is the realistic move.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. What happens if robots.txt is placed somewhere other than directly under public?&lt;/strong&gt;
A. It won’t be emitted under dist after the build, so it’s not served at the root and crawlers treat the site as one without a robots.txt. Because VuePress copies the contents of public to the root of dist, public is the only place to put robots.txt if you want it served at the same level as sitemap.xml.&lt;/p&gt;
&lt;h2 id=&quot;closing&quot;&gt;Closing&lt;/h2&gt;
&lt;p&gt;The initial setup for image and sitemap territory on VuePress 1.x — splitting the roles of “directly under public” and “public/resources”, letting config.js’s head load the favicon, declaring hostname and exclude through vuepress-plugin-sitemap, and placing robots.txt directly under public — covers the whole loop on its own.&lt;/p&gt;
&lt;p&gt;The settings themselves are small, but fixing the image-directory split later, after the post count has grown, hurts more than it should. Drawing the line once at the start — “per-article images and shared images live at different levels” — saves trouble down the road.&lt;/p&gt;
&lt;p&gt;As of 2026 VuePress 1.x is hard to recommend as a choice for new builds, so this post is kept as material for comparing the build philosophy at the time against Astro and the like.&lt;/p&gt;</content:encoded><category>build</category><category>VuePress</category></item><item><title>JOBY GorillaPod JB01542-PKK review — a small tripod for wrapping a webcam around a pillar</title><link>https://aulvem.com/blog/2021-03-03-jobygorillapod-jb01542-pkk/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-03-jobygorillapod-jb01542-pkk/</guid><description>Six months with the JOBY GorillaPod JB01542-PKK. The wide-articulating legs wrap around pillars and handrails, which is the real point. Suited to webcams and phones; not to mirrorless-class loads.</description><pubDate>Wed, 03 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported from the old VuePress blog. The JOBY GorillaPod JB01542-PKK is still in circulation as part of the current line-up in 2026, but successors and variants (GorillaPod Mobile / Magnetic / 1K, etc.) have multiplied. Read this as a review of one specific use case — fixing a webcam in place — rather than as a universal recommendation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When remote work started, I wanted to wrap a webcam around the pillar next to my desk and fix it slightly above eye level. The generic tripods I had on hand could only extend their legs — none of them could “wrap around a pillar” — so I ended up buying a JOBY GorillaPod to add to the kit.&lt;/p&gt;
&lt;p&gt;What I bought was the &lt;strong&gt;JOBY GorillaPod JB01542-PKK&lt;/strong&gt; (ball head with 1/4-inch screw, mini-size flexible-leg type). After about half a year of leaving it permanently set up for webcam duty, here is the write-up.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--a-good-match-for-anyone-wanting-to-fix-a-webcam-to-a-pillar-or-handrail&quot;&gt;The verdict — a good match for anyone wanting to fix a webcam to a pillar or handrail&lt;/h2&gt;
&lt;p&gt;Short answer: with its three wide-articulating legs, wrapping it around a pillar to fix a webcam above eye level is something it does honestly well. As a tripod for heavier gear like a mirrorless, though, the 50-something gram body is far too light, and the ball head does not take kindly to fine adjustment. Treat it as a specialist for “light gear, awkward places” and the satisfaction is high.&lt;/p&gt;
&lt;p&gt;Good fit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You want to wrap a webcam or phone around a &lt;strong&gt;pillar, handrail, or shelf&lt;/strong&gt; for work-from-home use&lt;/li&gt;
&lt;li&gt;You want to travel with just one tripod (for phone or GoPro use)&lt;/li&gt;
&lt;li&gt;You want to &lt;strong&gt;mount unusually&lt;/strong&gt; — on a monitor edge or a desk leg&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Less of a fit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You want to put a mirrorless plus standard zoom (or heavier) on it — both the load rating and the tripod’s own weight are short&lt;/li&gt;
&lt;li&gt;You want a ball head that adjusts in 1° steps&lt;/li&gt;
&lt;li&gt;You want a quick release for swapping cameras often&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-look--all-plastic-with-rubber-leg-tips-a-50-something-gram-mini-tripod&quot;&gt;The look — all plastic with rubber leg tips, a 50-something gram mini tripod&lt;/h2&gt;
&lt;p&gt;Short answer: the body is moulded plastic, the joints in the legs are ball-shaped and rotate 360°, and the leg tips have anti-slip rubber and a small magnet. It sits in the palm of one hand, and paired with a webcam the balance comes out right.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;JOBY GorillaPod JB01542-PKK, close-up of the body&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-03-jobygorillapod-jb01542-pkk/2021-03-03-JobyGorillaPod-JB01542-PKK-up.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;By category this is a &lt;strong&gt;mini tripod with a 1/4-inch screw and ball head&lt;/strong&gt;. The leg joints are chains of ball segments that each rotate independently, so the legs as a whole bend freely.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;JOBY GorillaPod with its legs bent to show range of motion&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-03-jobygorillapod-jb01542-pkk/2021-03-03-JobyGorillaPod-JB01542-PKK-range-of-motion.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The range of motion is enough that, for a handrail-thickness pole (around 4cm diameter), three legs can wrap around it without strain. The head tilts to roughly 90°, so horizontal shooting is also workable.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;JOBY GorillaPod with a GoPro mounted, for scale&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-03-jobygorillapod-jb01542-pkk/2021-03-03-JobyGorillaPod-JB01542-PKK-gopro.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;This is roughly the size with a GoPro mounted. Own weight is around 52g, maximum load around 325g. With a mirrorless the centre of gravity ends up too high and balance is easily lost, but it pairs cleanly with a phone, a GoPro, a compact, or a webcam.&lt;/p&gt;
&lt;h2 id=&quot;what-worked&quot;&gt;What worked&lt;/h2&gt;
&lt;p&gt;Short answer: the &lt;strong&gt;flexibility of where you can place it&lt;/strong&gt; — “wrap around a pillar”, “clamp onto a monitor edge”, “tangle around a desk leg” — is the biggest difference from an ordinary tripod.&lt;/p&gt;
&lt;h3 id=&quot;wide-leg-range--wraps-around-pillars-handrails-and-shelves&quot;&gt;Wide leg range — wraps around pillars, handrails, and shelves&lt;/h3&gt;
&lt;p&gt;A normal tripod assumes you will set it on the floor. With the JB01542-PKK, each of the three legs bends freely, so &lt;strong&gt;wrapping around&lt;/strong&gt; a cylindrical object to fix the camera in place is genuinely workable. For my permanent home-office setup, wrapping it around the pillar by the desk and placing the webcam slightly above face level worked on the first try.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;JOBY GorillaPod wrapped around a pillar with a webcam attached&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-03-jobygorillapod-jb01542-pkk/2021-03-03-JobyGorillaPod-JB01542-PKK-web-camera.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The actual fixed setup. One leg is hooked over the top of the pillar, and the other two are wrapped around it. Wrapping all three works too, but hooking one leg upward stops it from sliding down.&lt;/p&gt;
&lt;h3 id=&quot;light--no-guilt-about-leaving-it-hanging-at-face-height-for-hours&quot;&gt;Light — no guilt about leaving it hanging at face height for hours&lt;/h3&gt;
&lt;p&gt;Around 50g for the tripod itself. Combined with a webcam (about 100g) the total still falls short of 200g. In a setup where the thing is &lt;strong&gt;dangling at head height for long stretches&lt;/strong&gt;, weight translates directly into drop risk, so the lightness itself is reassuring. It did not shift in shaking up to JMA seismic intensity 3 (within my own trial range).&lt;/p&gt;
&lt;h3 id=&quot;magnetic-leg-tips-for-casual-mounting-on-steel-shelving-or-cabinets&quot;&gt;Magnetic leg tips for casual mounting on steel shelving or cabinets&lt;/h3&gt;
&lt;p&gt;Each leg tip has a small magnet inside. It will cling lightly to steel shelving or a cabinet top when set down — useful for casual mounting in places you cannot wrap around. It is not strong enough on its own to hold a camera, so treat it strictly as an aid.&lt;/p&gt;
&lt;h3 id=&quot;no-quick-release-is-actually-a-plus-if-all-your-gear-uses-14-inch-screws&quot;&gt;No quick release is actually a plus if all your gear uses 1/4-inch screws&lt;/h3&gt;
&lt;p&gt;If everything on your camera side — webcam, GoPro mount, compact — already takes a 1/4-inch screw, a quick release is just one more adapter to thread through. The JB01542-PKK screws on directly, so no conversion plate is needed.&lt;/p&gt;
&lt;h2 id=&quot;what-didnt&quot;&gt;What didn’t&lt;/h2&gt;
&lt;p&gt;Short answer: it is too light, so a mirrorless puts the centre of gravity too high. The ball head is stiff and bad at fine adjustment. There is no quick release, so frequent swapping is awkward.&lt;/p&gt;
&lt;h3 id=&quot;a-mirrorless-puts-the-centre-of-gravity-too-high&quot;&gt;A mirrorless puts the centre of gravity too high&lt;/h3&gt;
&lt;p&gt;The 325g load rating is high enough on paper that some entry-level mirrorless bodies clear it. In practice &lt;strong&gt;the higher the centre of gravity, the easier it tips&lt;/strong&gt;. With a mirrorless and a standard zoom on top, it slowly leaned over — not by the head lock giving up, but by the leg joints flexing. Safer to treat it as out of spec, and reach for a larger tripod for anything mirrorless-class and up.&lt;/p&gt;
&lt;h3 id=&quot;the-ball-head-is-stiff-and-bad-at-1-adjustments&quot;&gt;The ball head is stiff and bad at 1° adjustments&lt;/h3&gt;
&lt;p&gt;The head’s angle lock has &lt;strong&gt;no adjustment screw — it is a press-fit&lt;/strong&gt; held by firm resistance from the start. That is good for preventing drops, but for composing in fine steps you can really only move it in 5°–10° increments. Not the right pick for anyone who needs to nail a horizontal in video.&lt;/p&gt;
&lt;h3 id=&quot;no-quick-release-is-a-minus-for-anyone-swapping-gear-often&quot;&gt;No quick release is a minus for anyone swapping gear often&lt;/h3&gt;
&lt;p&gt;The flip side of the “1/4-inch direct” advantage. If you cycle through multiple bodies, every swap means turning a screw. For a permanent install, it is a non-issue.&lt;/p&gt;
&lt;h2 id=&quot;comparison&quot;&gt;Comparison&lt;/h2&gt;
&lt;p&gt;Short answer: against a “tripod you put on the floor”, &lt;strong&gt;placement freedom&lt;/strong&gt; wins by a wide margin. Against “other flexible tripods”, it is cheaper but loses to higher models (GorillaPod 1K / 3K and so on) on load rating and rigidity.&lt;/p&gt;
&lt;h3 id=&quot;vs-a-typical-extendable-tripod&quot;&gt;vs a typical extendable tripod&lt;/h3&gt;








































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;JB01542-PKK&lt;/th&gt;&lt;th&gt;Typical extendable mini tripod&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Placement&lt;/td&gt;&lt;td&gt;Floor, pillar, handrail, shelf edge&lt;/td&gt;&lt;td&gt;Flat floor only&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Height adjustment&lt;/td&gt;&lt;td&gt;By bending the legs&lt;/td&gt;&lt;td&gt;Stepped, via the elevator column&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Own weight&lt;/td&gt;&lt;td&gt;~52g (rated)&lt;/td&gt;&lt;td&gt;~200–500g&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Load rating&lt;/td&gt;&lt;td&gt;~325g (rated)&lt;/td&gt;&lt;td&gt;1–3kg class is common&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Fine adjustment&lt;/td&gt;&lt;td&gt;Weak (ball head is stiff)&lt;/td&gt;&lt;td&gt;Strong on 3-way head models&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Price band&lt;/td&gt;&lt;td&gt;Cheap&lt;/td&gt;&lt;td&gt;Cheap to high-end, full range&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Extendable tripods are good at &lt;strong&gt;placing heavy gear on a flat floor&lt;/strong&gt;. The JB01542-PKK is good at &lt;strong&gt;hooking light gear onto non-flat places&lt;/strong&gt;. The use cases are different, so the choice comes down to “where do you want to put it?“.&lt;/p&gt;
&lt;h3 id=&quot;vs-other-flexible-tripods-inside-the-gorillapod-line&quot;&gt;vs other flexible tripods (inside the GorillaPod line)&lt;/h3&gt;















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;JB01542-PKK&lt;/th&gt;&lt;th&gt;GorillaPod 1K Kit&lt;/th&gt;&lt;th&gt;GorillaPod 3K Kit&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Target gear&lt;/td&gt;&lt;td&gt;Phone / webcam / GoPro&lt;/td&gt;&lt;td&gt;Mirrorless (light)&lt;/td&gt;&lt;td&gt;Medium DSLR&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Load rating&lt;/td&gt;&lt;td&gt;~325g&lt;/td&gt;&lt;td&gt;~1kg&lt;/td&gt;&lt;td&gt;~3kg&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Head&lt;/td&gt;&lt;td&gt;Simple ball&lt;/td&gt;&lt;td&gt;Ball + pan&lt;/td&gt;&lt;td&gt;Ball + pan + Arca-Swiss compatible&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Quick release&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Size&lt;/td&gt;&lt;td&gt;Mini (palm-sized)&lt;/td&gt;&lt;td&gt;Medium&lt;/td&gt;&lt;td&gt;Large&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Price band&lt;/td&gt;&lt;td&gt;Cheapest&lt;/td&gt;&lt;td&gt;Mid&lt;/td&gt;&lt;td&gt;High&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Inside the GorillaPod line, the JB01542-PKK sits as the smallest, lightest, cheapest entry-level option. &lt;strong&gt;If you are planning around a mirrorless or up, 1K and above is the safer band.&lt;/strong&gt; Conversely, if you will only ever mount a webcam and a phone, the weight and price of the 1K is overspec.&lt;/p&gt;
&lt;aside class=&quot;aff-card not-prose my-10 rounded-2xl border border-[color:var(--aulvem-border)] bg-[color:var(--aulvem-surface)] px-5 py-5 sm:px-6 sm:py-6 has-image&quot; aria-label=&quot;Buy links for JOBY GorillaPod 325 (JB01542-PKK)&quot; data-astro-cid-jx6ez42w&gt;&lt;div class=&quot;aff-image&quot; data-astro-cid-jx6ez42w&gt;&lt;img src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-03-jobygorillapod-jb01542-pkk/2021-03-03-JobyGorillaPod-JB01542-PKK.webp&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; data-astro-cid-jx6ez42w&gt;&lt;/div&gt;&lt;p class=&quot;aff-title&quot; data-astro-cid-jx6ez42w&gt;JOBY GorillaPod 325 (JB01542-PKK)&lt;/p&gt;&lt;div class=&quot;aff-buttons&quot; data-astro-cid-jx6ez42w&gt;&lt;a href=&quot;https://aulvem.com/go/amazon/B07FVRDK87?q=JOBY+GorillaPod+325+%28JB01542-PKK%29&amp;amp;l=en&quot; aria-label=&quot;View JOBY GorillaPod 325 (JB01542-PKK) on Amazon&quot; rel=&quot;sponsored nofollow noopener noreferrer&quot; target=&quot;_blank&quot; data-shop=&quot;amazon&quot; class=&quot;aff-btn inline-flex items-center gap-2 rounded-lg border border-[color:var(--aulvem-border)] bg-white px-4 py-2.5&quot; style=&quot;font-size: 14px; font-weight: 500;&quot; data-astro-cid-5i2hoyi2&gt; &lt;img src=&quot;https://api.iconify.design/fa6-brands/amazon.svg?color=%23FF9900&quot; width=&quot;16&quot; height=&quot;16&quot; alt=&quot;&quot; aria-hidden=&quot;true&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; style=&quot;display:block&quot; data-astro-cid-5i2hoyi2&gt; &lt;span data-astro-cid-5i2hoyi2&gt;View on Amazon&lt;/span&gt; &lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;aff-note&quot; data-astro-cid-jx6ez42w&gt;
Opens the Amazon store for your country where available, otherwise amazon.co.jp (primarily sold in Japan; may ship internationally on select items).
&lt;/p&gt;&lt;/aside&gt;&lt;script type=&quot;module&quot; src=&quot;https://aulvem.com/home/runner/work/aulvem-hp/aulvem-hp/src/components/blog/AffiliateCard.astro?astro&amp;type=script&amp;index=0&amp;lang.ts&quot;&gt;&lt;/script&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Is it okay to mount a mirrorless camera on it?&lt;/strong&gt;
A. The manufacturer’s stated maximum load is around 325g. An entry-level mirrorless body on its own just about clears that, but adding a lens usually pushes it over. In practice it is safer to stick to gear under 300g — phones, compacts, webcams, GoPros.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Will cameras other than 1/4-inch screw fit?&lt;/strong&gt;
A. The head is 1/4-inch screw only. There is no quick release. You can add a separate Arca-Swiss clamp meant for a DSLR and effectively share gear across tripods, but the added weight cancels out the lightness advantage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How strong is the magnet in the legs?&lt;/strong&gt;
A. Each leg tip has a small magnet that lightly clings to steel surfaces like shelving or cabinet tops. It is not strong enough on its own to hold a camera in place — it is meant as an aid to wrapping or to spreading the legs (JOBY does not publish a specific holding force).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Is it suited to outdoor or travel use?&lt;/strong&gt;
A. At around 50g it is light and packs into a gap in a bag, so portability is high. On the other hand it is weak in wind, so for long exposures or time-lapses outdoors it is safer to weigh it down with a stone or a bag, or to bring a full-size tripod as well.&lt;/p&gt;
&lt;h2 id=&quot;verdict--a-specialist-for-light-gear-in-awkward-places&quot;&gt;Verdict — a specialist for “light gear in awkward places”&lt;/h2&gt;
&lt;p&gt;As a general-purpose tripod it is underpowered, but for someone who wants to do something unusual — like &lt;strong&gt;wrapping a webcam around a pillar&lt;/strong&gt; — there is really no other option. That kind of product.&lt;/p&gt;
&lt;p&gt;Over half a year of permanent use, the webcam + JB01542-PKK pairing ran without trouble. It did not slip down through a JMA seismic intensity 3 quake, and the ball head’s lock did not loosen.&lt;/p&gt;
&lt;p&gt;Conversely, if you want to mount a mirrorless, dial in fine adjustments, or swap cameras often, a higher-end GorillaPod 1K Kit or a straightforward extendable tripod will leave you happier. A tripod that is &lt;strong&gt;strong when the use case is narrow, weak when it is not&lt;/strong&gt;.&lt;/p&gt;
</content:encoded><category>reviews</category><category>tripod</category><category>joby</category><category>camera-equipment</category></item><item><title>VuePress Markdown extensions — Components / Slots / frontmatter (2021 archive)</title><link>https://aulvem.com/blog/2021-03-02-vuepress-markdown/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-02-vuepress-markdown/</guid><description>A note on the Markdown extensions I used when building a blog with VuePress 1.x in 2021 — embedded Vue components, named containers, and frontmatter — with a 2026 follow-up.</description><pubDate>Tue, 02 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: A post ported over from the old VuePress blog. VuePress 1.x is no longer a choice for new builds, so the body here is kept as an archive of “Markdown extension notes from 2021”. The ideas behind containers and frontmatter still carry over to MDX + Astro / Next.js, so read it as comparison material.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Back in 2021, the precursor blog to Aulvem ran on VuePress 1.x. Plain Markdown couldn’t quite handle table of contents, callout blocks, and article metadata, so I ended up touching VuePress’s own Markdown extensions more than once. This post is a cleaned-up version of those configuration notes, viewed from 2026.&lt;/p&gt;
&lt;p&gt;VuePress 1.x is for all practical purposes unmaintained as of 2026, and I wouldn’t recommend it for new projects. Even so, the thinking behind containers and embedded components has carried over into the MDX side of the world, so there’s still some value in leaving the calls I made then on record.&lt;/p&gt;
&lt;h2 id=&quot;short-answer--split-vuepress-markdown-extensions-into-three-layers&quot;&gt;Short answer — split VuePress Markdown extensions into three layers&lt;/h2&gt;
&lt;p&gt;Short answer: VuePress 1.x Markdown extensions are easier to think about when split into three layers — “embedded Vue components”, “named containers (custom blocks)”, and “frontmatter”.&lt;/p&gt;
&lt;p&gt;The reason is that each layer involves different config files and responsibilities. Components belong on the &lt;code&gt;.vue&lt;/code&gt; side, containers belong in the &lt;code&gt;index.js&lt;/code&gt; plugin config plus styles, and frontmatter belongs in article metadata and the template — keeping them separate stops you from losing track of which setting goes where.&lt;/p&gt;
&lt;p&gt;As a concrete split, repeating elements like a table of contents or footer become components, callout boxes become containers, and titles, categories, and tags go in frontmatter.&lt;/p&gt;
&lt;p&gt;A caveat: as of 2026, MDX + a framework (Astro / Next.js) handles the same roles more directly, so from here on, read this as an archive of “how it worked in VuePress 1.x at the time”.&lt;/p&gt;
&lt;h2 id=&quot;extendmarkdown--the-entry-point-for-overriding-markdown-it-behavior&quot;&gt;extendMarkdown — the entry point for overriding markdown-it behavior&lt;/h2&gt;
&lt;p&gt;Short answer: &lt;code&gt;markdown.extendMarkdown&lt;/code&gt; in &lt;code&gt;config.js&lt;/code&gt; lets you touch the markdown-it instance directly.&lt;/p&gt;
&lt;p&gt;VuePress 1.x parses Markdown with markdown-it internally, and &lt;code&gt;extendMarkdown&lt;/code&gt; is the hook for overriding that configuration. Line break handling, link &lt;code&gt;target&lt;/code&gt;, and the syntax highlighting area all got tuned here.&lt;/p&gt;
&lt;p&gt;The setting I actually used is below. It enables &lt;code&gt;breaks: true&lt;/code&gt;, which turns editor line breaks into &lt;code&gt;&amp;lt;br&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;markdown&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  extendMarkdown&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;md&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    md.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;({ breaks: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; })&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A caveat: &lt;code&gt;breaks: true&lt;/code&gt; is convenient for Japanese blog writing where each sentence is broken to its own line, but it doesn’t sit well with English-style paragraphs written as one block. It’s a setting you pick based on how the article is written, not something that should be on by default.&lt;/p&gt;
&lt;h2 id=&quot;embedding-vue-components-inside-markdown&quot;&gt;Embedding Vue components inside Markdown&lt;/h2&gt;
&lt;p&gt;Short answer: in VuePress you can write a Vue component directly inside a Markdown file.&lt;/p&gt;
&lt;p&gt;The reason is that VuePress’s build converts Markdown to a Vue SFC before rendering. Write the tag with the same syntax you’d use inside a &lt;code&gt;.vue&lt;/code&gt; file, and it gets resolved as a component at build time.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&amp;lt;ComponentName /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Repeating blocks (related links under an article, footers, table of contents) were turned into components this way.&lt;/p&gt;
&lt;p&gt;A caveat: Markdown and JSX-ish syntax now coexist, so the writer’s prior knowledge requirement goes up. It works as a design when the writers are editors only and operations are small — not so much if external writers are involved. MDX has the same trade-off.&lt;/p&gt;
&lt;h2 id=&quot;defining-custom-blocks-with-named-containers&quot;&gt;Defining custom blocks with named containers&lt;/h2&gt;
&lt;p&gt;Short answer: the &lt;code&gt;::: type title&lt;/code&gt; … &lt;code&gt;:::&lt;/code&gt; syntax lets you define blocks with custom styles.&lt;/p&gt;
&lt;p&gt;VuePress 1.x ships with &lt;code&gt;tip&lt;/code&gt; / &lt;code&gt;warning&lt;/code&gt; / &lt;code&gt;danger&lt;/code&gt; by default, and you can add more types via the &lt;code&gt;container&lt;/code&gt; plugin config in &lt;code&gt;index.js&lt;/code&gt;. The body inside is regular Markdown.&lt;/p&gt;
&lt;p&gt;The syntax looks like this.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;::: displayType titleName&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Markdown can be used inside.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;::: &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When written, it renders as a block with CSS tied to the type name. Example:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;titleName&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Markdown can be used inside.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The display type is defined in the plugin config in &lt;code&gt;index.js&lt;/code&gt;. &lt;code&gt;type&lt;/code&gt; is the display type name, &lt;code&gt;defaultTitle&lt;/code&gt; is the label used when no title is given, and the &lt;code&gt;&amp;#39;/&amp;#39;&lt;/code&gt; key is the prefix for switching per language (Japanese is the default for this site, so leaving it as &lt;code&gt;/&lt;/code&gt; is enough).&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;src   &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─ .vuepress&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   └─ theme&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      └─ index.js&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;module&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;exports&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;options&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;ctx&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    plugins: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;container&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        type: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;typeName&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        defaultTitle: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;          &amp;#39;/&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;defaultTitleName&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      }],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Style definitions lived on the &lt;code&gt;custom-blocks.styl&lt;/code&gt; side. Add a selector for the new type name next to &lt;code&gt;tip&lt;/code&gt; / &lt;code&gt;warning&lt;/code&gt; / &lt;code&gt;danger&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;src   &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─ .vuepress&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   └─ theme&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      └─ styles&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;         └─ custom-blocks.styl&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;css&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;.tip&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;.warning&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &amp;amp;&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;.danger&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A caveat: containers are a markdown-it-container plugin mechanism, so they’re a lightweight Markdown-side extension. If you want to call arbitrary components JSX-style, leaning toward embedded components or MDX is the better fit.&lt;/p&gt;
&lt;h2 id=&quot;frontmatter--article-metadata-at-the-top-of-markdown&quot;&gt;frontmatter — article metadata at the top of Markdown&lt;/h2&gt;
&lt;p&gt;Short answer: a YAML frontmatter defines the article’s title, publication date, category, tags, image, and so on.&lt;/p&gt;
&lt;p&gt;The VuePress template and plugin-blog’s &lt;code&gt;frontmatters&lt;/code&gt; config read those declared values and reflect the metadata into list pages and individual pages. The frontmatter I was using at the time looked like this.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;title: [How to] Build your own blog with VuePress/plugin-blog — Markdown edition&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;date: 2021-03-02&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;category:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  - skill&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tag: &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  - VuePress&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;image: {{Path}}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;location: japan &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;tag&lt;/code&gt; shows up in &lt;code&gt;$tag&lt;/code&gt; and &lt;code&gt;$currentTag&lt;/code&gt; and lands on the list pages when its name matches a registered entry in plugin-blog’s &lt;code&gt;frontmatters&lt;/code&gt;. &lt;code&gt;category&lt;/code&gt; works without registration, but I aligned it by hand for internal classification. &lt;code&gt;image&lt;/code&gt; is the OG image and thumbnail.&lt;/p&gt;
&lt;p&gt;A caveat: frontmatter key names differ across frameworks. VuePress 1.x used &lt;code&gt;date&lt;/code&gt; / &lt;code&gt;tag&lt;/code&gt; / &lt;code&gt;category&lt;/code&gt; (singular), while current Aulvem (Astro) uses &lt;code&gt;pubDate&lt;/code&gt; / &lt;code&gt;tags&lt;/code&gt; / &lt;code&gt;category&lt;/code&gt;, and migrations stumble here often.&lt;/p&gt;
&lt;h2 id=&quot;markdown-format-comparison-2026-view&quot;&gt;Markdown format comparison (2026 view)&lt;/h2&gt;









































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Lens&lt;/th&gt;&lt;th&gt;Plain Markdown&lt;/th&gt;&lt;th&gt;VuePress 1.x Markdown&lt;/th&gt;&lt;th&gt;MDX&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Base&lt;/td&gt;&lt;td&gt;CommonMark / GFM&lt;/td&gt;&lt;td&gt;markdown-it + extensions&lt;/td&gt;&lt;td&gt;Markdown + JSX&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Component embedding&lt;/td&gt;&lt;td&gt;not available&lt;/td&gt;&lt;td&gt;Vue component written inline&lt;/td&gt;&lt;td&gt;arbitrary JSX / components&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Custom blocks&lt;/td&gt;&lt;td&gt;blockquotes / lists, roughly&lt;/td&gt;&lt;td&gt;&lt;code&gt;::: type&lt;/code&gt; syntax (container)&lt;/td&gt;&lt;td&gt;replaced by JSX components&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;frontmatter&lt;/td&gt;&lt;td&gt;tool-dependent&lt;/td&gt;&lt;td&gt;yes (YAML)&lt;/td&gt;&lt;td&gt;yes (tool-dependent)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Main use in 2026&lt;/td&gt;&lt;td&gt;README / Issue&lt;/td&gt;&lt;td&gt;maintaining existing VuePress 1.x sites&lt;/td&gt;&lt;td&gt;static sites on Astro / Next.js and similar&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;VuePress 1.x containers and embedded components were an early take on “extending Markdown toward JSX”, and MDX now plays roughly the same role.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. How is VuePress Markdown different from plain Markdown?&lt;/strong&gt;
A. VuePress emits an extended flavor built on markdown-it, adding embedded Vue components, named containers (&lt;code&gt;::: tip&lt;/code&gt; and friends), frontmatter, and PrismJS-based syntax highlighting. It’s more expressive than plain Markdown, but the difference is that the build assumes a Vue runtime.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How are VuePress containers (::: tip etc.) different from MDX components?&lt;/strong&gt;
A. Containers are a syntax implemented via the markdown-it-container plugin — a lightweight extension that stays close to Markdown. MDX is a separate spec that lets you write JSX directly inside Markdown, so you can embed arbitrary React / Vue components as expressions. Containers are custom blocks, MDX is full JSX — the scope of responsibility is different.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Is it worth picking VuePress 1.x for a new project in 2026?&lt;/strong&gt;
A. Barely. VuePress 1.x is effectively unmaintained, and if you’re staying on Vue, VitePress has more material and more extension room; for a more general SSG, Astro or Next.js + MDX is the safer pick. Keeping VuePress 1.x around only for maintenance of an existing site is the realistic path.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Is breaks: true in extendMarkdown necessary?&lt;/strong&gt;
A. It depends on taste. The setting converts editor line breaks into &lt;code&gt;&amp;lt;br&amp;gt;&lt;/code&gt;, which is convenient for Japanese blog writing where each sentence ends on its own line. For English-style writing where paragraphs are treated as one block, it isn’t needed and tends to introduce unintended line breaks.&lt;/p&gt;
&lt;h2 id=&quot;if-i-were-doing-the-same-thing-today&quot;&gt;If I were doing the same thing today&lt;/h2&gt;
&lt;p&gt;Short answer: if you want to stay on Vue, VitePress is the closest fit; if you want something framework-agnostic, Astro + content collections + MDX gets you a similar experience.&lt;/p&gt;
&lt;p&gt;The reason is that VuePress 1.x maintenance has all but stopped, while VitePress is the successor the Vue team put together, and Astro was designed to handle Markdown / MDX natively. Aulvem itself ended up moving to Astro.&lt;/p&gt;
&lt;p&gt;A caveat: the exact state of each tool as of 2026 — latest version, maintenance posture, default features — is something to check against the official documentation. This post is, at heart, a note “someone who wrote on VuePress 1.x in 2021 went back and tidied up later” — not a reference for choosing a current tool.&lt;/p&gt;
&lt;h2 id=&quot;closing&quot;&gt;Closing&lt;/h2&gt;
&lt;p&gt;VuePress 1.x’s Markdown was an extension on top of plain Markdown — component embedding, named containers, and frontmatter on top — and at the time it had enough expressive power for small-to-medium documentation and blog use.&lt;/p&gt;
&lt;p&gt;As of 2026, that role has shifted to MDX + Astro / Next.js + content collections. The thinking behind the VuePress era (keep article metadata in frontmatter, write callout blocks with a syntax, componentize what gets reused) still translates straight across to the new stack, so this post is left up as a design record from that time.&lt;/p&gt;
</content:encoded><category>build</category><category>VuePress</category></item><item><title>Belis wireless numeric keypad review — a slim USB 2.4GHz keypad with a calculator key</title><link>https://aulvem.com/blog/2021-03-01-belis-numerickeypad/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-01-belis-numerickeypad/</guid><description>Hands-on with the Belis wireless numeric keypad. Strong on its USB 2.4GHz link and dedicated calculator key; weak on a red LED that keeps shouting at you while you type.</description><pubDate>Mon, 01 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: Ported from the old VuePress blog. Belis-branded numeric keypads vary by production run, so before buying, check the product page for the three things that matter: USB 2.4GHz, a dedicated calculator key, and scissor switches. The specs below are from the unit I bought at the time of writing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you do any kind of calculator-style number entry on a tenkeyless keyboard, the cost of stretching your fingers off home row adds up quietly. For work where you punch in numbers many times a day, a separate keypad on the side of the desk ends up faster.&lt;/p&gt;
&lt;p&gt;That is what I bought the Belis wireless numeric keypad for. It sits in the affordable bracket and ticks the three boxes I wanted: USB 2.4GHz, a calculator key, and a slim body. This is the write-up after about six months of use.&lt;/p&gt;
&lt;h2 id=&quot;the-verdict--worth-it-if-you-hit-the-calculator-key-every-day&quot;&gt;The verdict — worth it if you hit the calculator key every day&lt;/h2&gt;
&lt;p&gt;Short answer: a dedicated calculator key, a stable USB 2.4GHz receiver link, and a slim body that drops onto the edge of a desk without fuss. If you launch the calculator often for work, it earns its price.&lt;/p&gt;
&lt;p&gt;The reason is the workflow. Before this, I had the Windows application key mapped to “open Calculator” — now that lives on a single dedicated key. The action that fires a dozen-plus times a day shaves a second or two each time.&lt;/p&gt;
&lt;p&gt;A few cautions before buying:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;If a light in your field of view bothers you&lt;/strong&gt;: the red LED stays lit the whole time the power switch is on&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If you prefer a mechanical typing feel over a slim one&lt;/strong&gt;: the scissor switches will not feel like mechanical keys&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If you use a Mac&lt;/strong&gt;: whether the calculator key works on macOS depends on the unit and OS version&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-and-feel--semi-gloss-black-6-tilt-runs-on-aaa-batteries&quot;&gt;Build and feel — semi-gloss black, ~6° tilt, runs on AAA batteries&lt;/h2&gt;
&lt;p&gt;Short answer: a semi-gloss black, slim-bodied wireless keypad with a roughly 6° forward tilt and scissor switches.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Belis wireless numeric keypad, top view&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-01-belis-numerickeypad/2021-03-01-Belis-Numerickeypad-front.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The top is semi-gloss black. It does not read as cheap, and on the desk it stays visually quiet.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Belis wireless numeric keypad, side view — about 6° of tilt&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-01-belis-numerickeypad/2021-03-01-Belis-Numerickeypad-side.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;From the side, the near edge is thin and the body rises by roughly 6° toward the back (measured by eye). The angle keeps the wrist from bending too far back while typing.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Belis wireless numeric keypad, underside — power switch and battery cover&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-01-belis-numerickeypad/2021-03-01-Belis-Numerickeypad-back.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;The power switch sits in the top-left of the underside. Power comes from two AAA batteries, and the rubber feet do their job. Dry cells instead of a built-in battery means no charging cable to manage, at the cost of having to keep spare batteries in a drawer.&lt;/p&gt;
&lt;h2 id=&quot;what-worked--the-calculator-key-the-wireless-link-the-scissor-feel&quot;&gt;What worked — the calculator key, the wireless link, the scissor feel&lt;/h2&gt;
&lt;p&gt;Short answer: the calculator key lands the moment you want it, the USB 2.4GHz link is steadier than expected, and the scissor switches feel better than a typical pantograph.&lt;/p&gt;
&lt;h3 id=&quot;the-calculator-key-is-a-dedicated-key&quot;&gt;The calculator key is a dedicated key&lt;/h3&gt;
&lt;p&gt;This is the main reason I bought the keypad and the part I am happiest about after using it.&lt;/p&gt;
&lt;p&gt;Before this I had “open Calculator” mapped to the Windows application key, but a dedicated, labelled key is something you can hit without looking. &lt;strong&gt;You press it the moment you want it and the calculator pops up&lt;/strong&gt; — that flow is quietly satisfying.&lt;/p&gt;
&lt;p&gt;Expense reports, rough inventory counts, simple arithmetic — the moments where you think “I want the calculator right now” come up more often than you would guess in a day. The gap between a remapped key and a dedicated key is tiny per press, but the press count is high.&lt;/p&gt;
&lt;h3 id=&quot;usb-24ghz-with-no-perceptible-latency&quot;&gt;USB 2.4GHz with no perceptible latency&lt;/h3&gt;
&lt;p&gt;Wireless keypads come in Bluetooth and USB 2.4GHz flavours. I had been bitten before by a Bluetooth keyboard where keystrokes arrived on screen a few dozen milliseconds late, so this time I picked the USB-receiver type.&lt;/p&gt;
&lt;p&gt;Result: in six months of use, I have not once felt latency while entering numbers. Even right after the machine wakes from sleep, there is no warm-up wait. If you can spare one USB port for the receiver, stability is more honest than Bluetooth.&lt;/p&gt;
&lt;h3 id=&quot;scissor-switches-feel-better-than-i-expected&quot;&gt;Scissor switches feel better than I expected&lt;/h3&gt;
&lt;p&gt;Going in, I assumed the feel would be close to a laptop pantograph keyboard, but the real thing has a touch more click to it. This was my first time with scissor switches; the feel sits somewhere between a slim keyboard and a mechanical one, and fingertips do not tire as quickly over long sessions.&lt;/p&gt;
&lt;p&gt;For a number-entry-only role, it is plenty.&lt;/p&gt;
&lt;h2 id=&quot;what-didnt--the-led-shouts-while-you-type&quot;&gt;What didn’t — the LED shouts while you type&lt;/h2&gt;
&lt;p&gt;Short answer: when the power switch is on, the red LED on the body stays lit, and it catches the corner of your eye while you work.&lt;/p&gt;
&lt;img width=&quot;800&quot; alt=&quot;Belis wireless numeric keypad LED — red light on while powered&quot; src=&quot;https://pub-dfb37d47cd654d8aad6fc0ad2b6a6457.r2.dev/images/blog/2021-03-01-belis-numerickeypad/2021-03-01-Belis-Numerickeypad-light.webp&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;/&gt;
&lt;p&gt;It photographs more discreetly than it looks in person — with the unit in front of you, there is a small red dot glowing in your peripheral vision the whole time you are entering numbers. As a battery indicator it does its job, but as visual noise while typing it is, frankly, in the way.&lt;/p&gt;
&lt;p&gt;The workarounds are physical: shift the keypad a little away from the monitor, or place it so the LED is not in your line of sight. There is no way to switch the LED off on the unit (it may vary by production run).&lt;/p&gt;
&lt;p&gt;For long stretches in front of a monitor, plan the placement around the LED from the start.&lt;/p&gt;
&lt;h2 id=&quot;comparison-belis-wireless-keypad-vs-the-alternatives&quot;&gt;Comparison: Belis wireless keypad vs the alternatives&lt;/h2&gt;
&lt;p&gt;Here are the configurations that come up against this one when you filter for USB 2.4GHz, a calculator key, and a slim profile. Prices and specs are reference values from the time of writing and shift by production run and date.&lt;/p&gt;















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Angle&lt;/th&gt;&lt;th&gt;Belis wireless keypad&lt;/th&gt;&lt;th&gt;Elecom TK-TDM017 series (wired, calculator key)&lt;/th&gt;&lt;th&gt;Sanwa Supply Bluetooth keypad&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Connection&lt;/td&gt;&lt;td&gt;USB 2.4GHz&lt;/td&gt;&lt;td&gt;USB wired&lt;/td&gt;&lt;td&gt;Bluetooth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Calculator key&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Depends on model&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Switch type&lt;/td&gt;&lt;td&gt;Scissor&lt;/td&gt;&lt;td&gt;Mostly membrane&lt;/td&gt;&lt;td&gt;Pantograph / membrane&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Power&lt;/td&gt;&lt;td&gt;2x AAA&lt;/td&gt;&lt;td&gt;USB bus power&lt;/td&gt;&lt;td&gt;Built-in cell or dry cells&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Latency concern&lt;/td&gt;&lt;td&gt;Low&lt;/td&gt;&lt;td&gt;None (wired)&lt;/td&gt;&lt;td&gt;Slightly higher (environment-dependent)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Desk handling&lt;/td&gt;&lt;td&gt;Good (wireless, slim)&lt;/td&gt;&lt;td&gt;Cable to manage&lt;/td&gt;&lt;td&gt;Good&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The specs are a rough sketch from the unit I bought and the public info at the time; current production runs may differ.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;If Bluetooth latency does not bother you&lt;/strong&gt; → the Sanwa Supply type is fine, and it leaves your USB ports alone&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If you want zero latency, no compromises&lt;/strong&gt; → wired Elecom TK-TDM017 series, with plenty of calculator-key options&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If you can give up one USB port for wireless&lt;/strong&gt; → a USB 2.4GHz unit like the Belis, balancing stability and desk handling&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Does the calculator key work on a Mac?&lt;/strong&gt;
A. If macOS cannot bind a key to the Calculator app, the dedicated calculator key may either do nothing or register as a different key. Windows is confirmed working; on Mac, behaviour depends on the OS version and production run, so check the product page for explicit Mac support before buying.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How long do the batteries last?&lt;/strong&gt;
A. With two AAA cells and daily number-entry use, the batteries that came in the box lasted about two to three months (varies by unit). Switching off the power when you are done with the day stretches that further.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Can it sit next to a laptop keyboard?&lt;/strong&gt;
A. The slim body means the step between the laptop keyboard and the keypad is small, so the hand moves between them naturally. Next to a slim desktop keyboard the tilt angles roughly match, which keeps the feel consistent.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Is the layout the same as a full keyboard’s numeric pad?&lt;/strong&gt;
A. The number block matches the numeric pad on a full keyboard, and NumLock behaves normally. Function keys and some symbol keys are laid out unconventionally, so anyone who wants a perfect full-keyboard replica should check the layout in the product photos first.&lt;/p&gt;
&lt;h2 id=&quot;verdict--easy-pick-if-calculator-key-and-usb-wireless-both-land&quot;&gt;Verdict — easy pick if “calculator key” and “USB wireless” both land&lt;/h2&gt;
&lt;p&gt;This is not a mouse-of-the-year type product.&lt;/p&gt;
&lt;p&gt;If a dedicated calculator key, a USB 2.4GHz link that does not stutter, and a slim body that does not crowd the desk all matter to you, the price is well spent. It fits people who handle a lot of numbers in office work and people pairing it with a tenkeyless keyboard.&lt;/p&gt;
&lt;p&gt;If a glowing LED at the edge of your vision wears on you, if you prefer a heavy mechanical feel, or if your daily driver is a Mac, look at another option — fewer regrets that way.&lt;/p&gt;
</content:encoded><category>reviews</category><category>PCPeripherals</category><category>numeric-keypad</category><category>wireless</category></item><item><title>VuePress/blog directory structure — a 2021 build note (archived)</title><link>https://aulvem.com/blog/2021-03-01-vuepress-structure/</link><guid isPermaLink="true">https://aulvem.com/blog/2021-03-01-vuepress-structure/</guid><description>How I structured a blog with VuePress 1.x and @vuepress/plugin-blog 1.9 back in 2021 — directory layout and config.js settings, kept as an archive of how I made the call at the time.</description><pubDate>Mon, 01 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2026 update&lt;/strong&gt;: A post ported over from the old VuePress blog. VuePress 1.x is no longer a viable choice for new development, so the body here is kept as an archive of “how the build looked in 2021”. The idea of splitting directories by concern still applies to current SSGs like Astro, so read it as comparison material.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Back in 2021, the personal blog that became the precursor to Aulvem was built on VuePress 1.x with &lt;code&gt;@vuepress/plugin-blog&lt;/code&gt;. There wasn’t much information out there beyond the official docs, and I got stuck on directory layout and plugin configuration more than once — so once the site was actually running, I wrote this down as a working note.&lt;/p&gt;
&lt;p&gt;As of 2026 I’ve moved over to Astro 5, and VuePress 1.x is for all practical purposes unmaintained (confirm the official EOL announcement for the 1.x line). So read what follows as “a record of how the call was made at the time”.&lt;/p&gt;
&lt;h2 id=&quot;the-short-answer--vuepress-1x-splits-into-_posts-and-vuepress&quot;&gt;The short answer — VuePress 1.x splits into _posts and .vuepress&lt;/h2&gt;
&lt;p&gt;Short answer: put article Markdown under &lt;code&gt;_posts/&lt;/code&gt;, and configuration plus theme under &lt;code&gt;.vuepress/&lt;/code&gt;. That was the standard layout when using plugin-blog.&lt;/p&gt;
&lt;p&gt;The reason is separation of concerns. Content (written often) and framework configuration (written rarely) go in different directories, which keeps deploy logs and git diffs easier to read.&lt;/p&gt;
&lt;p&gt;Concretely, the layout looked like this.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;src&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├─ _posts                   Markdown for each article&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  └─ category&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│     └─ page.md&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─ .vuepress&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ├─ components            Article-side components (Vue)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  └─ Component.vue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ├─ public&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  └─ img.jpg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ├─ theme&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  ├─ components         Components (Vue)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  │  └─ Component.vue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  ├─ layouts            Page layouts (Vue)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  │  └─ Layout.vue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │  └─ styles&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   │     └─ style.styl&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ├─ config.js             VuePress config (JS)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   └─ enhanceApp.js         Vue plugin entry (JS)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;During the build phase the three things you touch are &lt;code&gt;config.js&lt;/code&gt;, &lt;code&gt;enhanceApp.js&lt;/code&gt;, and &lt;code&gt;theme/&lt;/code&gt;. During operations the files you touch are &lt;code&gt;_posts/&lt;/code&gt; and &lt;code&gt;public/&lt;/code&gt;. Because the roles are different, once the build is done, the set of files you actually edit shifts on its own.&lt;/p&gt;
&lt;p&gt;A caveat: this layout assumes VuePress 1.x + plugin-blog 1.9. VuePress 2.x changed both the config location and the theme model, so a 1.x configuration won’t run on 2.x as-is.&lt;/p&gt;
&lt;h2 id=&quot;glossary-static-site-generator-ssg&quot;&gt;Glossary: Static Site Generator (SSG)&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;SSG (Static Site Generator)&lt;/strong&gt;: A generic name for tools that convert sources like Markdown into static HTML at build time. Unlike a CMS like WordPress that runs on the server for every request, the resulting HTML can simply be served from a CDN. VuePress, Astro, Next.js (output:static), Hugo, and Jekyll all fall into this category.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;VuePress is one such SSG, built on Vue.js and optimized for “Markdown-centric documentation sites”. plugin-blog is the plugin that bolts on “blog-style routing (tags, categories, post lists)” on top — that mental model is enough.&lt;/p&gt;
&lt;h2 id=&quot;configjs--the-site-wide-configuration-file&quot;&gt;config.js — the site-wide configuration file&lt;/h2&gt;
&lt;p&gt;Short answer: &lt;code&gt;config.js&lt;/code&gt; is where both VuePress core and plugin-blog settings live together. The site’s language, title, and routing are decided here.&lt;/p&gt;
&lt;p&gt;The reason is consolidation. You can split plugins and locales into separate files, but keeping it all in one file means the file reads as “the site’s spec”.&lt;/p&gt;
&lt;p&gt;A concrete example:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;module&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;exports&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  locales: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &amp;#39;/&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: { lang: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;ja&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  title: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;Title(config.js)&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  plugins: [[&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &amp;#39;@vuepress/blog&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    {directories: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        id: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;home&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        dirname: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;home&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        path: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;/&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        id: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;tech&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        dirname: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;_posts/tech&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        path: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;/tech/&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        itemPermalink: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;#39;/tech/:slug&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    ],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    frontmatters: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        id: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;tag&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        keys: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;tag&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        path: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;/tag/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        layout: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;Tag&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        scopeLayout: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&amp;quot;Tag&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    ],},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ]]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;locales--the-default-language&quot;&gt;locales — the default language&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;locales&lt;/code&gt; sets the site’s default language. For a Japanese site, setting &lt;code&gt;/&lt;/code&gt; to &lt;code&gt;lang: &amp;#39;ja&amp;#39;&lt;/code&gt; is enough. For multilingual setups, you add another key like &lt;code&gt;/en/&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;title--the-site-title&quot;&gt;title — the site title&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;title&lt;/code&gt; is used as the site name. From Vue files you can reference it as &lt;code&gt;$siteTitle&lt;/code&gt;. It becomes the reference point for things like OG image generation and header-logo swaps, so not hard-coding the title elsewhere makes operations easier.&lt;/p&gt;
&lt;h3 id=&quot;plugins--registering-vuepress-plugins&quot;&gt;plugins — registering VuePress plugins&lt;/h3&gt;
&lt;p&gt;You add VuePress plugins to the &lt;code&gt;plugins&lt;/code&gt; array. For any plugin including &lt;code&gt;@vuepress/blog&lt;/code&gt;, if you want to pass options, the rule at the time was to use a &lt;code&gt;[name, options]&lt;/code&gt; tuple rather than just the string name.&lt;/p&gt;
&lt;p&gt;You’ll need to dig into each plugin’s docs for detailed options. Writing it all out in &lt;code&gt;config.js&lt;/code&gt; makes the file balloon, so back then I kept reference URLs in comments.&lt;/p&gt;
&lt;h3 id=&quot;pluginsdirectories--url-directory-structure&quot;&gt;plugins/directories — URL directory structure&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;directories&lt;/code&gt; decides “which Markdown folder maps to which URL”. For the proto-Aulvem blog I wanted the category structure to map straight to URLs, so I added one array entry per category.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  id: &amp;#39;tech&amp;#39;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  dirname: &amp;#39;_posts/tech&amp;#39;,       File path holding articles for this category&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  path: &amp;#39;/tech/&amp;#39;,               /tech/{{article path}}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  itemPermalink: &amp;#39;/tech/:slug&amp;#39;  Format for {{article path}}. :slug is the filename minus the date&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A caveat: &lt;code&gt;dirname: &amp;#39;_posts/tech&amp;#39;&lt;/code&gt; &lt;strong&gt;only reaches one level deep and does not pick up grandchildren&lt;/strong&gt; (this is plugin-blog 1.9 behavior). So in practice categories could only nest one level. Sub-categories meant adding more &lt;code&gt;directories&lt;/code&gt; entries.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;itemPermalink&lt;/code&gt; lets you toggle whether the date appears in the URL. I didn’t want dates in URLs, so I ran with just &lt;code&gt;:slug&lt;/code&gt;. That followed the conventional wisdom at the time that “dates in URLs make a page feel stale” (whether this actually affects rankings is case by case).&lt;/p&gt;
&lt;h3 id=&quot;pluginsfrontmatters--tag-feature&quot;&gt;plugins/frontmatters — tag feature&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;frontmatters&lt;/code&gt; generates tag pages. Writing &lt;code&gt;keys: [&amp;quot;tag&amp;quot;]&lt;/code&gt; makes the &lt;code&gt;tag&lt;/code&gt; field in a Markdown frontmatter become a tag page.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  id: &amp;quot;tag&amp;quot;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  keys: [&amp;quot;tag&amp;quot;],          Key set in the Markdown frontmatter&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  path: &amp;quot;/tag/&amp;quot;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  layout: &amp;quot;Tag&amp;quot;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  scopeLayout: &amp;quot;Tag&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once this is in place, two globals become available: &lt;code&gt;$tag&lt;/code&gt; and &lt;code&gt;$currentTag&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$tag&lt;/code&gt; is the list of all tags and the articles bound to each. Used when building a tag index page.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$currentTag&lt;/code&gt; is the “current tag” info when an individual tag page is open.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;$currentTag&lt;/code&gt; looked like this:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;inside the current page&amp;#39;s `$currentTag` object&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;key: &amp;quot;Vue&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;pageKeys: [&amp;quot;xxxxxx&amp;quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;pages: [{...}]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;path: &amp;quot;/tag/Vue/&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;scope: &amp;quot;tag&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A caveat: this style of “API that generates globals” plays badly with TypeScript — there’s no way to type it. Schema-enforced typing, like Astro’s content collections, feels more like the current mainstream approach.&lt;/p&gt;
&lt;h2 id=&quot;enhanceappjs--where-vue-plugins-plug-in&quot;&gt;enhanceApp.js — where Vue plugins plug in&lt;/h2&gt;
&lt;p&gt;Short answer: it’s the entry point for installing ordinary Vue plugins into VuePress. Think of it as “the place where you put Vue.use”.&lt;/p&gt;
&lt;p&gt;The reason is that VuePress creates the Vue instance for you behind the scenes, so you can’t call &lt;code&gt;Vue.use()&lt;/code&gt; from a regular &lt;code&gt;main.js&lt;/code&gt; like in an SPA. Instead, &lt;code&gt;enhanceApp.js&lt;/code&gt; hands you the &lt;code&gt;Vue&lt;/code&gt; instance via its arguments.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;js&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; VScrollLock &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &amp;#39;v-scroll-lock&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; ({&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Vue,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  options,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  router,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  siteData&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  Vue.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(VScrollLock)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A caveat: putting heavy work here slows the initialization of every page. Better to keep this file to &lt;code&gt;Vue.use&lt;/code&gt; only and push real logic down into components.&lt;/p&gt;
&lt;h2 id=&quot;theme--where-layouts-and-css-live&quot;&gt;theme — where layouts and CSS live&lt;/h2&gt;
&lt;p&gt;Short answer: &lt;code&gt;theme/&lt;/code&gt; is the directory for non-article Vue files and CSS. The workflow was to copy the default theme via &lt;code&gt;npm run eject&lt;/code&gt; and override on top of it.&lt;/p&gt;
&lt;p&gt;The reason is that VuePress’s default theme isn’t directly editable. Running &lt;code&gt;eject&lt;/code&gt; expands the default theme set under &lt;code&gt;.vuepress/theme/&lt;/code&gt;, where you can edit anything.&lt;/p&gt;
&lt;p&gt;Right after eject, the directory looked like this:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8;overflow-x:auto&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;theme&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── `global-components`&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│   └── xxx.vue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── `components`&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│   └── xxx.vue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── `layouts`&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│   ├── Layout.vue _(**Mandatory**)_&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│   └── 404.vue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── `styles`&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│   ├── index.styl&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│   └── palette.styl&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── `templates`&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│   ├── dev.html&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│   └── ssr.html&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── `index.js`&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── `enhanceApp.js`&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── package.json&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;UI parts get edited or added under &lt;code&gt;components/&lt;/code&gt;, and CSS lives either inside Vue files or under &lt;code&gt;styles/&lt;/code&gt;. &lt;code&gt;layouts/Layout.vue&lt;/code&gt; is required — delete it or rename it and the build dies immediately.&lt;/p&gt;
&lt;p&gt;A caveat: once you eject, you can’t auto-follow upstream theme updates anymore. I knew that going in at the time, but if I were doing this today I’d lean toward “minimal overrides only”, staying on the upstream theme — that’s the easier maintenance path (VuePress 2.x may have a different mechanism here).&lt;/p&gt;
&lt;h2 id=&quot;comparison-table--vuepress-1x-and-the-main-2026-ssgs&quot;&gt;Comparison table — VuePress 1.x and the main 2026 SSGs&lt;/h2&gt;
&lt;p&gt;Lining up VuePress at the time against the SSGs most often used for the same role in 2026:&lt;/p&gt;





























































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Lens&lt;/th&gt;&lt;th&gt;VuePress 1.x (2021)&lt;/th&gt;&lt;th&gt;Astro 5 (2026)&lt;/th&gt;&lt;th&gt;Next.js (App Router)&lt;/th&gt;&lt;th&gt;Hugo&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Primary language&lt;/td&gt;&lt;td&gt;Vue 2&lt;/td&gt;&lt;td&gt;framework-agnostic&lt;/td&gt;&lt;td&gt;React&lt;/td&gt;&lt;td&gt;Go templates&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Target&lt;/td&gt;&lt;td&gt;docs / small blogs&lt;/td&gt;&lt;td&gt;content sites broadly&lt;/td&gt;&lt;td&gt;apps and beyond&lt;/td&gt;&lt;td&gt;static sites with many pages&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Config file&lt;/td&gt;&lt;td&gt;&lt;code&gt;.vuepress/config.js&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;astro.config.mjs&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;next.config.js&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;config.toml&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Article location&lt;/td&gt;&lt;td&gt;&lt;code&gt;_posts/**&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;src/content/**&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;app/**&lt;/code&gt; or freeform MDX&lt;/td&gt;&lt;td&gt;&lt;code&gt;content/**&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Type safety&lt;/td&gt;&lt;td&gt;none (globals)&lt;/td&gt;&lt;td&gt;content collections with zod&lt;/td&gt;&lt;td&gt;TS and RSC&lt;/td&gt;&lt;td&gt;none&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Partial hydration&lt;/td&gt;&lt;td&gt;whole site is an SPA&lt;/td&gt;&lt;td&gt;islands (static by default)&lt;/td&gt;&lt;td&gt;RSC + Client Components&lt;/td&gt;&lt;td&gt;static only&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2026 maintenance&lt;/td&gt;&lt;td&gt;1.x effectively halted&lt;/td&gt;&lt;td&gt;active&lt;/td&gt;&lt;td&gt;active&lt;/td&gt;&lt;td&gt;active&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The point here isn’t superiority but a difference in how concerns get sliced. For the narrow use case of “output a Markdown-centric blog statically”, VuePress 1.x worked fine. Aulvem itself moved to Astro because the article count grew and I wanted type safety.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Q. Is VuePress 1.x still usable in 2026?&lt;/strong&gt;
A. You can still get it running. But maintenance — plugin-blog included — has all but stopped, and you can’t expect timely vulnerability patches in dependencies. Not the safe pick for new builds. For keeping an existing site alive, pinning Node versions and locking your &lt;code&gt;package-lock.json&lt;/code&gt; properly is the minimum bar (confirm whether an official EOL announcement exists).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. How is VuePress different from Astro / Next.js?&lt;/strong&gt;
A. VuePress is Vue 2-based, starting from “Markdown-centric documentation sites”. Astro is framework-agnostic and uses partial hydration (islands), which makes mixing Markdown and dynamic parts easier. Next.js is React-based and covers anything from static sites to dynamic apps. Same “static site” label, different scope and assumptions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. Why split _posts and .vuepress?&lt;/strong&gt;
A. Separation of concerns between “article content” and “framework configuration”. The idea of grouping things that change at different rates into different directories carries over to Astro’s &lt;code&gt;src/content/&lt;/code&gt; vs. &lt;code&gt;src/layouts/&lt;/code&gt; split. The opposite school exists too — Next.js App Router puts everything under &lt;code&gt;app/&lt;/code&gt; — so this is partly a matter of taste in design.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q. What would I pick today for a similar setup?&lt;/strong&gt;
A. For a Markdown-focused blog, Astro + content collections is the closest in feel. If staying on Vue is required, VitePress and Nuxt Content are the successor candidates, but they each cover slightly different ground — check the official docs to see if they fit your use case.&lt;/p&gt;
&lt;h2 id=&quot;closing&quot;&gt;Closing&lt;/h2&gt;
&lt;p&gt;VuePress 1.x’s layout rested on a simple separation: “write in &lt;code&gt;_posts&lt;/code&gt;, configure in &lt;code&gt;.vuepress&lt;/code&gt;”. At the time, that directness was what carried me through to getting the site running.&lt;/p&gt;
&lt;p&gt;As of 2026 Aulvem itself runs on Astro 5. The same idea of splitting concerns across directories survives in a different form — so I’d be glad if this post gets used as a past snapshot, useful for comparing against today’s SSGs.&lt;/p&gt;</content:encoded><category>build</category><category>VuePress</category></item></channel></rss>