<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="http://xahlee.info/js/">
<title>Xah JS Blog</title>
<subtitle>fuck JavaScript</subtitle>
<link rel="self" href="http://xahlee.info/js/blog.xml" />
<link rel="alternate" href="http://xahlee.info/js/blog.html" />
<updated>2026-08-10T22:18:43-07:00</updated>
<author>
<name>Xah Lee</name>
<uri>http://xahlee.info/</uri>
</author>
<id>http://xahlee.info/js/blog.html</id>
<icon>http://xahlee.info/favicon.svg</icon>
<rights>© 2026, Xah Lee</rights>

<entry>
<title>CSS: what is responsive design (2026)</title>
<id>urn:uuid:fb40554c-c030-4084-b7d9-58e5f1ab7d90</id>
<updated>2026-08-10T22:18:43-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-10</time></div>


<ul>
<li>🆕 <a href="http://xahlee.info/js/css_responsive_design.html">CSS: what is responsive design (2026)</a></li>
</ul>

<ul>

<li><a href="http://xahlee.info/js/css_min-width.html">CSS: min-width max-width, min-height max-height</a></li>
<li>🆕 <a href="http://xahlee.info/js/css_min-content.html">CSS: min-content, max-content</a></li>
<li><a href="http://xahlee.info/js/css_shrink_wrap.html">CSS: fit-content (shrink wrap)</a></li>
<li><a href="http://xahlee.info/js/css_clamp.html">CSS: clamp()</a></li>
<li>🆕 <a href="http://xahlee.info/js/css_min.html">CSS: min() max()</a></li>
<li><a href="http://xahlee.info/js/css_calc.html">CSS: calc()</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_center.html">CSS: Centering</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_layout.html">CSS: Layout. Index</a></li>
<li><a href="http://xahlee.info/js/css_misc_index.html">CSS: Misc. Index</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_case_sensitivity.html">CSS: Case Sensitivity</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: container query</title>
<id>urn:uuid:70a0897d-356e-4a85-b67a-e09d8c94ed74</id>
<updated>2026-08-10T10:16:57-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-09</time></div>


<ul>
<li><a href="http://xahlee.info/js/css_container_query.html">CSS: container query</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>Browser developer tools local mode (emulate http server)</title>
<id>urn:uuid:7dc6bf0f-8af7-4447-8c4d-38d6726429e4</id>
<updated>2026-08-09T16:33:30-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-09</time></div>


<ul>
<li><a href="http://xahlee.info/js/browser_dev_tools_local_mode.html">Browser developer tools local mode (emulate http server)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: min-width max-width, min-height max-height</title>
<id>urn:uuid:77488a17-0330-4a05-be65-cdff07be61d3</id>
<updated>2026-08-09T15:56:41-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-09</time></div>


<ul>
<li><a href="http://xahlee.info/js/css_min-width_max-width.html">CSS: min-width max-width, min-height max-height</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: clamp()</title>
<id>urn:uuid:bffb738b-248e-43ac-a6f3-dd080f5b5a06</id>
<updated>2026-08-09T12:43:02-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-09</time></div>


<ul>
<li><a href="http://xahlee.info/js/css_clamp.html">CSS: clamp()</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: @import</title>
<id>urn:uuid:8c037ba4-7b54-4073-bb1e-3d86c3033dd7</id>
<updated>2026-08-09T12:23:22-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-09</time></div>


<ul>
<li><a href="http://xahlee.info/js/css_import.html">CSS: @import</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: selector list (,)</title>
<id>urn:uuid:88331385-e2d0-41a5-bc13-e140bdd93be9</id>
<updated>2026-08-08T22:05:02-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-07</time></div>

<p>
updated
</p>

<ul>
<li><a href="http://xahlee.info/js/css_selector_list.html">CSS: selector list (,)</a></li>
<li><a href="http://xahlee.info/js/css_selector_is.html">CSS: :is selector (is any of)</a></li>
<li><a href="http://xahlee.info/js/css_selector_where.html">CSS: :where selector (is any of)</a></li>

</ul>

<ul>
<li><a href="http://xahlee.info/js/css_selector_has.html">CSS: :has descendant selector</a></li>
<li><a href="http://xahlee.info/js/css_selector_negation.html">CSS: negation selector (:not)</a></li>

</ul>

<ul>

<li><a href="http://xahlee.info/js/css_descendant_selector.html">CSS: descendant selector (space)</a></li>
<li><a href="http://xahlee.info/js/css_selector_parent.html">CSS: child selector (&gt;)</a></li>
<li><a href="http://xahlee.info/js/css_adjacent_sibling_selector.html">CSS: adjacent sibling selector (+)</a></li>
<li><a href="http://xahlee.info/js/css_subsequent_sibling_selector.html">CSS: subsequent sibling selector (~)</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_selector_attribute.html">CSS: attribute selector ([x])</a></li>

</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: initial value</title>
<id>urn:uuid:1c8416ba-cd2d-40a9-83ee-106a39676ac5</id>
<updated>2026-08-08T22:02:06-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-08</time></div>

<ul>
<li><a href="http://xahlee.info/js/css_initial_value.html">CSS: initial value</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS as formal language for pattern matching trees</title>
<id>urn:uuid:e4075086-d729-4bfa-b221-3a0491b4fff4</id>
<updated>2026-08-08T13:50:25-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-08</time></div>

<ul>
<li><a href="http://xahlee.info/js/css_as_formal_language.html">CSS as formal language for pattern matching trees</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: selector list (,)</title>
<id>urn:uuid:172d449c-47b4-45f6-b026-b7191e907ea2</id>
<updated>2026-08-07T19:54:10-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-07</time></div>

<p>
updated
</p>

<ul>
<li><a href="http://xahlee.info/js/css_selector_list.html">CSS: selector list (,)</a></li>

<li><a href="http://xahlee.info/js/css_descendant_selector.html">CSS: descendant selector (space)</a></li>
<li><a href="http://xahlee.info/js/css_selector_parent.html">CSS: child selector (&gt;)</a></li>
<li><a href="http://xahlee.info/js/css_adjacent_sibling_selector.html">CSS: adjacent sibling selector (+)</a></li>
<li><a href="http://xahlee.info/js/css_subsequent_sibling_selector.html">CSS: subsequent sibling selector (~)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: nth-child arg of selector</title>
<id>urn:uuid:3cdafe73-9a9a-4f61-a259-93b5fbab8018</id>
<updated>2026-08-07T18:15:46-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-06</time></div>

<p>
major rewrite.
</p>

<ul>
<li>🆕 <a href="http://xahlee.info/js/css_nth-child_arg_of_selector.html">CSS: nth-child arg of selector</a></li>

<li>🆕 <a href="http://xahlee.info/js/css_nth-of-type.html">CSS: nth-of-type selector</a></li>

<li><a href="http://xahlee.info/js/css_nth-child_selector.html">CSS: nth-child selector</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_cascade.html">CSS: cascade (rule priority, !important)</a></li>

<li><a href="http://xahlee.info/js/css_cascade_layers.html">CSS: cascade @layer</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_reset.html">CSS: all (reset, revert, default)</a></li>

<li><a href="http://xahlee.info/js/css_global_keywords.html">CSS: inherit, initial, reset, revert, revert-layer (global keywords for property value)</a></li>

<li><a href="http://xahlee.info/js/css_inheritance.html">CSS: Property inheritance</a></li>

</ul>

<ul>
<li><a href="http://xahlee.info/js/css_border.html">CSS: Border</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: counter (auto numbering)</title>
<id>urn:uuid:8cac3e8e-c470-4e39-88f3-e74e1e25b1ee</id>
<updated>2026-08-07T15:28:42-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-07</time></div>

<ul>
<li><a href="http://xahlee.info/js/css_counter.html">CSS: counter (auto numbering)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: line-height</title>
<id>urn:uuid:c6d5dd7a-3e8a-42c2-a1cc-ceba50a54f3b</id>
<updated>2026-08-06T22:01:46-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-05</time></div>

<ul>
<li>🆕 <a href="http://xahlee.info/js/css_line-height.html">CSS: line-height</a></li>
<li>🆕 <a href="http://xahlee.info/js/css_px_margin.html">CSS: Tip. Use px for margin and padding</a></li>
<li><a href="http://xahlee.info/js/css_percentage_value.html">CSS: Percentage value</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>css tip. use px for margin and padding</title>
<id>urn:uuid:630febc0-1d8b-4172-809e-05bf1577f067</id>
<updated>2026-08-05T10:29:08-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-05</time></div>

<h2>css tip. use px for margin and padding</h2>

<ul>

<li>for margin and padding, use px instead of font based unit em ex.</li>
<li>if u font based units, it increases whitespace when user has larger font. especially bad on phone.</li>
<li>now i change my site to use px for this.</li>
</ul>

<figure>
<img src="http://xahlee.info/js/i/css_px_rem_margin_diff_2026-08-05_19024_ll.webp" alt="css px rem margin diff 2026-08-05 19024 ll" width="1075" height="1106" />
<figcaption>
css px rem margin diff 2026-08-05 19024 ll
</figcaption>
</figure>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>now you can use greater than sign in media query</title>
<id>urn:uuid:be33232f-bdb0-4e78-9d96-f533be737a69</id>
<updated>2026-08-04T14:23:29-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-04</time></div>

<p>
omg CSS finally fixed a media query syntax problem.
now you can use greater than sign in media query, e.g.
</p>

<pre class="css"><x-syncolored></x-syncolored><span class="builtin">@media</span> (<span class="function-name">width</span> &gt; 600<span class="type">px</span>) {}</pre>

<p>
instead of the confusing
</p>

<pre class="css"><x-syncolored></x-syncolored><span class="builtin">@media</span> (<span class="function-name">min-width</span>: 600<span class="type">px</span>) {}</pre>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>HTML: Custom Element/Tag</title>
<id>urn:uuid:580f3c0f-3941-4d63-9823-be6e616dd501</id>
<updated>2026-08-04T12:15:06-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-04</time></div>

<p>
updates
</p>

<ul>
<li><a href="http://xahlee.info/js/html_custom_element.html">HTML: Custom Element/Tag</a></li>
<li><a href="http://xahlee.info/js/html5_custom_data_attribute.html">HTML: Custom Data Attribute</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_units.html">CSS: Length Units</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_media_query.html">CSS: @media query (responsive design)</a></li>

</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: @media query (responsive design)</title>
<id>urn:uuid:21ad19bf-25ae-426c-beb9-c4522ace874e</id>
<updated>2026-08-04T00:00:31-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-03</time></div>

<ul>
<li><a href="http://xahlee.info/js/css_media_query.html">CSS: @media query (responsive design)</a></li>

<li>🆕 <a href="http://xahlee.info/js/css_phone_screen_size.html">CSS: phone and tablet screen size (2026)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: variable (custom property)</title>
<id>urn:uuid:b77b0d60-4495-4440-b103-378a7b046806</id>
<updated>2026-08-03T13:38:39-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-08-02</time></div>

<ul>
<li><a href="http://xahlee.info/js/css_variable.html">CSS: variable (custom property)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>the History of JavaScript, by Brendan Eich. 2008</title>
<id>urn:uuid:1856ca3f-5e97-4d13-9fdf-98268634f98c</id>
<updated>2026-07-27T09:32:51-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-27</time></div>

<ul>
<li>much additions.</li>
<li><a href="http://xahlee.info/js/story_of_js.html">the History of JavaScript, by Brendan Eich. 2008</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>Microsoft removes its JavaScript doc, redirect to MDN. 2017</title>
<id>urn:uuid:7ece15a1-de1d-4377-b072-3ccadf113bf9</id>
<updated>2026-07-26T11:44:22-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-26</time></div>

<ul>
<li><a href="http://xahlee.info/comp/Microsoft_js_doc.html">Microsoft removes its JavaScript doc, redirect to MDN. 2017</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS DOM: Change Element Content</title>
<id>urn:uuid:06606d22-99ef-4781-aad1-b95a0570417f</id>
<updated>2026-07-26T11:24:06-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-26</time></div>

<p>
update and correction
</p>

<ul>
<li><a href="http://xahlee.info/js/content_change.html">JS DOM: Change Element Content</a></li>
<li><a href="http://xahlee.info/js/js_textContent_innerHTML_innerText_nodeValue.html">JS DOM: innerHTML, textContent, innerText, nodeValue</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: Tagged Template String</title>
<id>urn:uuid:04f41acc-8f62-473a-8532-c621d23386d8</id>
<updated>2026-07-25T22:14:32-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-24</time></div>

<figure>
<img src="http://xahlee.info/js/i/js_tagged_template_string_2026-07-20_T54R2_ll.webp" alt="js tagged template string 2026-07-20 T54R2 ll" width="1232" height="1206" />
<figcaption>
js tagged template string 2026-07-20 T54R2 ll
</figcaption>
</figure>

<ul>
<li><a href="http://xahlee.info/js/js_tagged_template_string.html">JS: Tagged Template String</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>js bundler builder</title>
<id>urn:uuid:a1203b8b-f242-43ce-81a9-f83c79d1038b</id>
<updated>2026-07-25T22:14:22-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-23</time></div>

<p>
js bundler builder
</p>

<figure>
<img src="http://xahlee.info/js/i/js_bundler_builder_2026-07-23_17270_ll.webp" alt="js bundler builder 2026-07-23 17270 ll" width="809" height="1055" />
<figcaption>
js bundler builder 2026-07-23 17270 ll
</figcaption>
</figure>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>ai cites xah lee info</title>
<id>urn:uuid:fb5cd3f1-842e-4a3b-962b-e086066a80dc</id>
<updated>2026-07-25T22:13:33-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-23</time></div>

<h2>ai cites xah lee info</h2>

<p>
now and then ai cites my work.
</p>

<figure>
<img src="http://xahlee.info/js/i/ai_cite_xah_lee_js_dollar_sign_2026-07-23_16270_ll.webp" alt="ai cite xah lee js dollar sign 2026-07-23 16270 ll" width="782" height="956" />
<figcaption>
ai cite xah lee js dollar sign 2026-07-23 16270 ll
</figcaption>
</figure>

<ul>
<li><a href="http://xahlee.info/js/js_dollar_sign_in_javascript.html">JS: Dollar Sign in JavaScript (jQuery)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>npm tutorial</title>
<id>urn:uuid:d1e315a2-d24a-43e3-b94f-9071c66c18ea</id>
<updated>2026-07-23T12:13:30-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-23</time></div>

<ul>
<li><a href="http://xahlee.info/webdev/npm_tutorial.html">npm tutorial</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: Number.MIN_SAFE_INTEGER, MAX_SAFE_INTEGER</title>
<id>urn:uuid:2f7a5386-ca7d-4258-9a7f-737ff18506b1</id>
<updated>2026-07-23T12:13:25-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-23</time></div>

<ul>
<li><a href="http://xahlee.info/js/js_Number.MAX_SAFE_INTEGER.html">JS: Number.MIN_SAFE_INTEGER, MAX_SAFE_INTEGER</a></li>

<li><a href="http://xahlee.info/js/js_Number.MAX_VALUE.html">JS: Number. EPSILON, MIN_VALUE, MAX_VALUE</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: Tagged Template String</title>
<id>urn:uuid:59b43cf9-89d3-4115-bb42-e336ae0be7b6</id>
<updated>2026-07-22T16:07:01-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-21</time></div>

<ul>
<li><a href="http://xahlee.info/js/js_tagged_template_string.html">JS: Tagged Template String</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JavaScript history, prototype.js (2005 to 2010)</title>
<id>urn:uuid:43d453a1-965d-47bd-9714-527a8d01905f</id>
<updated>2026-07-22T08:56:58-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-22</time></div>

<ul>
<li><a href="http://xahlee.info/js/js_history__prototype_js.html">JavaScript history, prototype.js (2005 to 2010)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: Exclamation sign before function. !function</title>
<id>urn:uuid:2905a4c2-25a4-456b-9ab3-fb9b08652f1d</id>
<updated>2026-07-22T08:45:52-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-22</time></div>

<ul>
<li><a href="http://xahlee.info/js/js_trick_exclamation_before_function.html">JS: Exclamation sign before function. !function</a></li>

<li><a href="http://xahlee.info/js/js_dollar_sign_in_javascript.html">JS: Dollar Sign in JavaScript (jQuery)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: eval</title>
<id>urn:uuid:35dc5eb3-7a3c-4dbf-8cb3-fb39dfd301da</id>
<updated>2026-07-21T12:24:12-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-21</time></div>

<ul>
<li>start to accept ai output, as is.</li>
<li><a href="http://xahlee.info/js/js_eval.html">JS: eval</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>functional programing</title>
<id>urn:uuid:a2236c5f-407c-47f5-a147-0a4611d53bac</id>
<updated>2026-07-21T12:24:05-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-21</time></div>

<pre class="js"><x-syncolored></x-syncolored><span class="comment">/*
2026-07-21 example of functional programing.
task. function to reconstruct template string
*/</span>

<span class="comment-delimiter">// </span><span class="comment">imperative style
</span><span class="keyword">function</span> <span class="function-name">ff</span>() {
 <span class="keyword">var</span> result = <span class="keyword">arguments</span>[0][0];
 <span class="keyword">for</span> (<span class="keyword">var</span> i = 1; i &lt; <span class="keyword">arguments</span>.<span class="keyword">length</span>; i++) {
  result += <span class="keyword">arguments</span>[i] + <span class="keyword">arguments</span>[0][i];
 }
 <span class="keyword">return</span> result;
}

<span class="comment-delimiter">// </span><span class="comment">functional programing style
</span><span class="keyword">const</span> <span class="function-name">fg</span> = (...args) =&gt; {
 <span class="keyword">const</span> <span class="variable-name">xb</span> = args.<span class="keyword">slice</span>(1).<span class="keyword">concat</span>(<span class="string">""</span>);
 <span class="keyword">return</span> args[0].<span class="keyword">flatMap</span>((<span class="variable-name">x</span>, i) =&gt; [<span class="variable-name">x</span>, <span class="variable-name">xb</span>[i]]).<span class="keyword">join</span>(<span class="string">""</span>);
};

<span class="comment-delimiter">// </span><span class="comment">test
</span><span class="function-name">console.assert</span>(<span class="function-name">ff</span>`a${1}b${2}` === <span class="string">"a1b2"</span>);
<span class="function-name">console.assert</span>(<span class="function-name">fg</span>`a${1}b${2}` === <span class="string">"a1b2"</span>);</pre>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: WeakMap</title>
<id>urn:uuid:8c57305f-ae92-4e82-a00f-263516b8ffa3</id>
<updated>2026-07-20T17:57:22-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-20</time></div>

<ul>
<li><a href="http://xahlee.info/js/js_WeakMap.html">JS: WeakMap</a></li>
<li><a href="http://xahlee.info/js/js_WeakSet.html">JS: WeakSet</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: Map.prototype.getOrInsert</title>
<id>urn:uuid:50fc0c1e-a45d-4ebb-a4a4-a3440a0b4c82</id>
<updated>2026-07-20T13:49:47-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-20</time></div>

<ul>

<li>🆕 <a href="http://xahlee.info/js/js_Map.prototype.getOrInsert.html">JS: Map.prototype.getOrInsert</a></li>
<li>🆕 <a href="http://xahlee.info/js/js_Map.prototype.getOrInsertComputed.html">JS: Map.prototype.getOrInsertComputed</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_map_prototype.html">JS: Map.prototype</a></li>
<li><a href="http://xahlee.info/js/js_Map.prototype.get.html">JS: Map.prototype.get</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_isNaN_vs_Number.isNaN.html">JS: Difference of isNaN vs Number.isNaN</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: WeakMap</title>
<id>urn:uuid:4cd2101a-cb5f-4dbb-a750-81839dc77a75</id>
<updated>2026-07-20T13:41:18-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-19</time></div>

<ul>
<li>JavaScript WeakMap.</li>
<li>this fucking thing, i never quite understood.</li>
<li>it has to do with bit-diddlers.</li>
<li>its is non-trivial, to document its behavior, sans handwaving of some 'garbage-collection' fuck.</li>
</ul>

<p>
a quick mathematical documentation of js weakmap is this:
like normal map, with 3 exceptions:
</p>

<ul>
<li>1. keys can only be object type.</li>
<li>2. if a object in the key is no longer used elsewehere in your program, that key entry auto get deleted.</li>
<li>3. weakmap cannot be iterated over.</li>
</ul>

<figure>
<img src="http://xahlee.info/js/i/js_weakmap_2026-07-19_27a25_ll.webp" alt="js weakmap 2026-07-19 27a25 ll" width="675" height="977" />
<figcaption>
js weakmap 2026-07-19 27a25 ll
<a href="https://x.com/xah_lee/status/2078976375822925875" data-accessed="2026-07-19" target="_blank" rel="noreferrer">https://x.com/xah_lee/status/2078976375822925875</a>
</figcaption>
</figure>

<ul>
<li><a href="http://xahlee.info/js/js_WeakMap.html">JS: WeakMap</a></li>

<li><a href="http://xahlee.info/js/js_WeakSet.html">JS: WeakSet</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: Array (basics)</title>
<id>urn:uuid:b1c56334-6ddd-447a-872a-960d0e299e9e</id>
<updated>2026-07-20T12:29:37-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-20</time></div>

<p>
updates.
</p>

<ul>
<li><a href="http://xahlee.info/js/js_array_basics.html">JS: Array (basics)</a></li>

<li><a href="http://xahlee.info/js/js_create_array.html">JS: Create Array</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_regex_tutorial.html">JS: Regular Expression Tutorial</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_regex_constructor.html">JS: RegExp Constructor</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_ECMAScript_2015.html">JS: ECMAScript 2015</a></li>
<li><a href="http://xahlee.info/js/js_ECMAScript_2016.html">JS: ECMAScript 2016</a></li>
<li><a href="http://xahlee.info/js/js_ECMAScript_2020.html">JS: ECMAScript 2020</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>The ugly web dev history, frontend. 2010 to 2026</title>
<id>urn:uuid:ccc3e536-dc1e-44cb-b61e-7a2e0857a5e2</id>
<updated>2026-07-19T23:06:30-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-19</time></div>

<ul>
<li><a href="http://xahlee.info/js/web_dev_history.html">The ugly web dev history, frontend. 2010 to 2026</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_runtime.html">JavaScript runtime platforms (2026)</a></li>
<li><a href="http://xahlee.info/js/js_package_manager.html">JavaScript package managers (2026)</a></li>
<li><a href="http://xahlee.info/js/js_bundler.html">JavaScript bundlers (2026)</a></li>
<li><a href="http://xahlee.info/js/js_task_runner.html">JavaScript task runners (2026)</a></li>
<li><a href="http://xahlee.info/js/js_ui_framework.html">JavaScript UI Frameworks (2026)</a></li>
<li><a href="http://xahlee.info/js/js_compiler.html">JavaScript compilers (2026)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: String.raw</title>
<id>urn:uuid:bf803ed0-76af-48e5-9036-ca97defc04d9</id>
<updated>2026-07-19T23:03:24-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-19</time></div>

<p>
after 10 years, finally wrote this tutorial String.raw.
</p>

<ul>
<li><a href="http://xahlee.info/js/js_string_raw.html">JS: String.raw</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>The Story of JavaScript, by Brendan Eich. 2008</title>
<id>urn:uuid:61a9da3f-c675-4661-bfa6-5cbe51af91c0</id>
<updated>2026-07-18T11:15:25-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-18</time></div>

<ul>
<li><a href="http://xahlee.info/js/story_of_js.html">The Story of JavaScript, by Brendan Eich. 2008</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: Number.prototype.toLocaleString</title>
<id>urn:uuid:7d616b16-92e8-4f4a-8601-eb30a86a0f6c</id>
<updated>2026-07-18T11:13:17-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-18</time></div>

<ul>
<li><a href="http://xahlee.info/js/js_Number.prototype.toLocaleString.html">JS: Number.prototype.toLocaleString</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>W3C HTML Validator Invalid (2011)</title>
<id>urn:uuid:afcfa2dd-83fd-44cf-8093-cd3337a04a57</id>
<updated>2026-07-17T19:39:50-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-17</time></div>

<p>
updated
</p>

<ul>
<li><a href="http://xahlee.info/js/w3c_html_validator_problem.html">W3C HTML Validator Invalid (2011)</a></li>
<li><a href="http://xahlee.info/w/death_of_html_frameset.html">Death of HTML Frameset 2021</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: white-space Line Break</title>
<id>urn:uuid:5585c92e-944c-4575-a391-4f35cd05012c</id>
<updated>2026-07-17T19:36:36-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-17</time></div>

<p>
major update.
</p>

<ul>
<li><a href="http://xahlee.info/js/css_text-wrap.html">CSS: white-space Line Break</a></li>
<li><a href="http://xahlee.info/js/css_overflow_wrap.html">CSS: overflow-wrap</a></li>
<li>🆕 <a href="http://xahlee.info/js/css_word-break.html">CSS: word-break</a></li>
<li><a href="http://xahlee.info/js/css_overflow_scrollbox.html">CSS: overflow (scrollbar)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: Convert Color Names to RGB, and to HSL</title>
<id>urn:uuid:1c96d85d-e32c-4418-87e9-ae4c06d51715</id>
<updated>2026-07-16T18:17:13-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-16</time></div>

<ul>
<li><a href="http://xahlee.info/js/js_convert_color_to_hsl.html">JS: Convert Color Names to RGB, and to HSL</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JavaScript, what happens if you write all if-statement as if-expression (2015)</title>
<id>urn:uuid:df3dedf9-6eb8-4e6d-a4f2-125252cd22b0</id>
<updated>2026-07-16T12:38:36-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-16</time></div>

<ul>
<li><a href="http://xahlee.info/comp/if_then_else_ternary_expression.html">JavaScript, what happens if you write all if-statement as if-expression (2015)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>Xah Talk Show 2026-07-15 Ep805. Internet Halt Theory, History of JavaScript</title>
<id>urn:uuid:36999090-eef9-4e4a-a390-9097e4f31b4b</id>
<updated>2026-07-16T12:05:53-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-16</time></div>

<ul>
<li><a href="http://xahlee.info/talk_show/xah_talk_show_ep805.html">Xah Talk Show 2026-07-15 Ep805. Internet Halt Theory, History of JavaScript</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: CommonJS Module System</title>
<id>urn:uuid:fc930da7-96ff-4969-843c-c39180a74fa6</id>
<updated>2026-07-16T11:59:54-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-16</time></div>

<p>
minor edit
</p>

<ul>
<li><a href="http://xahlee.info/js/js_CommonJS.html">JS: CommonJS Module System</a></li>
<li><a href="http://xahlee.info/js/js_AMD_modules.html">JS: AMD Module System (history)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>HTML 5, Why Add Thousands of Named Character References</title>
<id>urn:uuid:93d701d8-3e27-4694-bcf1-540527607f90</id>
<updated>2026-07-16T10:42:02-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-16</time></div>

<ul>
<li><a href="http://xahlee.info/js/html_5_named_char_ref.html">HTML 5, Why Add Thousands of Named Character References</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>Modern JavaScript Bloat (2026)</title>
<id>urn:uuid:1b404cc9-fb30-46aa-8856-004ba63e93e4</id>
<updated>2026-07-16T10:36:13-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-16</time></div>

<ul>
<li><a href="http://xahlee.info/js/modern_JavaScript_bloat.html">Modern JavaScript Bloat (2026)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: Module</title>
<id>urn:uuid:81cc687a-410b-4235-9f65-2fdc96db551a</id>
<updated>2026-07-16T09:31:17-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-14</time></div>

<p>
minor updates
</p>

<ul>
<li><a href="http://xahlee.info/js/js_module.html">JS: Module</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_variable.html">JS: Variable</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_strict_mode.html">JS: Strict Mode</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>Why is Electron Created (JavaScript framework)</title>
<id>urn:uuid:93b82cfd-8264-4c29-81f4-edf6840b48da</id>
<updated>2026-07-15T16:03:27-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-15</time></div>

<ul>
<li><a href="http://xahlee.info/js/why_is_electron_created.html">Why is Electron Created (JavaScript framework)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>History of JavaScript</title>
<id>urn:uuid:f0c442c8-f11b-4553-b635-2fc7d7d38a29</id>
<updated>2026-07-15T09:57:35-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-15</time></div>

<ul>
<li>🆕 <a href="http://xahlee.info/js/history_of_JavaScript.html">History of JavaScript</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/web_html_validation_index.html">History of Web Tech. Index.</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: grid-template-areas</title>
<id>urn:uuid:7624058b-d702-402c-9a27-87008e85108a</id>
<updated>2026-07-13T16:36:21-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-13</time></div>

<ul>
<li>🆕 <a href="http://xahlee.info/js/css_grid_template_areas.html">CSS: grid-template-areas</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: Reset, Revert, Default Values</title>
<id>urn:uuid:b24414d4-19da-4ffa-83dc-8e8ad3d2ba71</id>
<updated>2026-07-13T10:51:48-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-13</time></div>

<p>
repost
</p>

<ul>
<li><a href="http://xahlee.info/js/css_reset.html">CSS: Reset, Revert, Default Values</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: Grid layout</title>
<id>urn:uuid:2c69875b-87d5-46f8-9bf4-c290fdfa928d</id>
<updated>2026-07-11T22:22:36-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-11</time></div>

<p>
first version done. super simple.
</p>

<ul>
<li><a href="http://xahlee.info/js/css_grid_layout.html">CSS: Grid layout</a></li>
<li><a href="http://xahlee.info/js/css_grid_template_columns.html">CSS: grid-template-columns</a></li>
<li><a href="http://xahlee.info/js/css_grid_template_rows.html">CSS: grid-template-rows</a></li>
<li><a href="http://xahlee.info/js/css_repeat.html">CSS: grid repeat</a></li>
<li><a href="http://xahlee.info/js/css_grid_row.html">CSS: grid-row, grid-column (position in grid)</a></li>
<li><a href="http://xahlee.info/js/css_grid_area.html">CSS: grid-area</a></li>
<li><a href="http://xahlee.info/js/css_grid_template_areas.html">CSS: grid-template-areas</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>W3C validator does not support nested CSS (2026-07)</title>
<id>urn:uuid:bf50a62d-248a-4998-bb7e-92836191c093</id>
<updated>2026-07-11T09:05:23-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-11</time></div>

<ul>
<li><a href="http://xahlee.info/w/w3c_validator_nested_css.html">W3C validator does not support nested CSS (2026-07)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>Xah Talk Show 2026-07-03 Ep802. Write JavaScript app to convert letters to Unicode Circled Letters Ⓐ Ⓑ Ⓒ</title>
<id>urn:uuid:98b46b80-e7c2-4d2c-af08-bf7293f89e73</id>
<updated>2026-07-03T20:47:50-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-07-03</time></div>

<ul>
<li><a href="http://xahlee.info/talk_show/xah_talk_show_ep802.html">Xah Talk Show 2026-07-03 Ep802. Write JavaScript app to convert letters to Unicode Circled Letters Ⓐ Ⓑ Ⓒ</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JavaScript number problem, no true integer</title>
<id>urn:uuid:16c51310-a81e-4117-a4e9-9185cfa1079d</id>
<updated>2026-06-30T23:00:25-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-30</time></div>

<ul>
<li><a href="http://xahlee.info/js/js_number_problem.html">JavaScript number problem, no true integer</a></li>

<li><a href="http://xahlee.info/js/why_signed_0.html">in JavaScript, why we have signed 0 (2026)</a></li>

<li><a href="http://xahlee.info/js/js_why_typeof_null_object.html">In JavaScript, why typeof null return object?</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>2ality is offline due to ai</title>
<id>urn:uuid:aa8fca1d-cfbc-4f2d-8912-00663cb50b62</id>
<updated>2026-06-30T22:58:58-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-30</time></div>

<h2>2ality is offline due to ai</h2>

<p>
Axel Rauschmayer (aka 2ality) is a top JavaScript master.
</p>

<p>
he took his website offline. reason given is the massive ai stealing his work, and no traffic.
</p>

<figure>
<img src="http://xahlee.info/js/i/2ality_offline_due_to_ai_2026-06-30_2d2d6_ll.webp" alt="2ality offline due to ai 2026-06-30 2d2d6 ll" width="840" height="576" />
<figcaption>
2ality offline due to ai 2026-06-30 2d2d6 ll
</figcaption>
</figure>

<ul>
<li><a href="https://2ality.com/" data-accessed="2026-06-30" target="_blank" rel="noreferrer">https://2ality.com/</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS: Math (namespace)</title>
<id>urn:uuid:d3df5716-88a3-4ad0-9c96-c1b0eb049d75</id>
<updated>2026-06-29T18:00:08-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-29</time></div>

<ul>
<li><a href="http://xahlee.info/js/js_math_methods.html">JS: Math (namespace)</a></li>
<li>🆕 <a href="http://xahlee.info/js/js_Math.max.html">JS: Math. max, min</a></li>
<li>🆕 <a href="http://xahlee.info/js/js_Math.abs.html">JS: Math. sign, abs</a></li>
<li>🆕 <a href="http://xahlee.info/js/js_Math.ceiling.html">JS: Math ceiling, floor, round, truncate</a></li>
<li>🆕 <a href="http://xahlee.info/js/js_Math.random.html">JS: Math. random</a></li>
<li>🆕 <a href="http://xahlee.info/js/js_Math.sqrt.html">JS: Power and Roots</a></li>
<li>🆕 <a href="http://xahlee.info/js/js_Math.exp.html">JS: Math exponential and logarithm</a></li>
<li>🆕 <a href="http://xahlee.info/js/js_math_constants.html">JS: Math constants</a></li>
<li>🆕 <a href="http://xahlee.info/js/js_Math.sin.html">JS: Math trig functions. sin, cos, tan, asin, acos, atan</a></li>
<li>🆕 <a href="http://xahlee.info/js/js_Math.sinh.html">JS: Math hyperbolic functions. sinh, cosh, tanh, etc.</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>HTML: XML Entities (Special Characters)</title>
<id>urn:uuid:51c2cdd5-29d1-46c9-89c7-e0797a0160ce</id>
<updated>2026-06-29T11:09:51-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-29</time></div>

<p class="xbubble">
why do the html team add thousands of named html entities to html 5
</p>

<figure>
<img src="http://xahlee.info/js/i/ai_html_5_entities_2026-06-29_1b019_ll.webp" alt="ai html 5 entities 2026-06-29 1b019 ll" width="720" height="978" />
<figcaption>
ai html 5 entities 2026-06-29 1b019 ll
</figcaption>
</figure>

<ul>
<li><a href="http://xahlee.info/js/html_xml_entities.html">HTML: XML Entities (Special Characters)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>Modern JavaScript Explained For Dinosaurs. by Peter Jang. 2017</title>
<id>urn:uuid:61d1ee80-de33-47af-bc02-8d4d9e75d03a</id>
<updated>2026-06-26T10:46:46-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-26</time></div>

<ul>
<li><a href="http://xahlee.info/js/modern_js_explained_for_dino.html">Modern JavaScript Explained For Dinosaurs. by Peter Jang. 2017</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: insert a line break</title>
<id>urn:uuid:340ed54f-4efa-4d6e-ac26-3527ca9cd439</id>
<updated>2026-06-19T12:39:30-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-19</time></div>

<ul>
<li><a href="http://xahlee.info/js/css_insert_a_line_break.html">CSS: insert a line break</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: font-size</title>
<id>urn:uuid:a59a6388-b837-43ac-ab03-272113b28c79</id>
<updated>2026-06-19T12:16:10-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-19</time></div>

<ul>
<li>added xxx-large</li>
<li><a href="http://xahlee.info/js/css_font-size.html">CSS: font-size</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: Box Model. Index.</title>
<id>urn:uuid:d2894eaf-acfb-4604-9344-f2e5634d12f6</id>
<updated>2026-06-18T20:24:28-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-17</time></div>

<p>
misc minor updates
</p>

<ul>
<li><a href="http://xahlee.info/js/css_box_model.html">CSS: Box Model. Index.</a></li>
<li><a href="http://xahlee.info/js/css_margin_vs_padding.html">CSS: Margin vs Padding</a></li>
<li><a href="http://xahlee.info/js/css_border.html">CSS: Border</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_font-family.html">CSS: font-family</a></li>
</ul>

<ul>
<li>added negative letter spacing</li>
<li><a href="http://xahlee.info/js/css_letter_spacing.html">CSS: letter spacing</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_justify.html">CSS: Text Alignment, Justification</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_table.html">CSS: display table style</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_media_query.html">CSS: @media query (responsive design)</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/gettime.html">JS DOM: Digital Clock</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: background (shorthand)</title>
<id>urn:uuid:28f582ae-ad5b-4f3f-840a-ebb5aada52c5</id>
<updated>2026-06-16T10:46:07-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-15</time></div>

<ul>
<li><a href="http://xahlee.info/js/css_background.html">CSS: background (shorthand)</a></li>
<li><a href="http://xahlee.info/js/css_background_color.html">CSS: background color</a></li>
<li><a href="http://xahlee.info/js/css_background_image.html">CSS: background image</a></li>
<li><a href="http://xahlee.info/js/css_background_position.html">CSS: background position</a></li>
<li><a href="http://xahlee.info/js/css_background_size.html">CSS: background size</a></li>
<li><a href="http://xahlee.info/js/css_background_repeat.html">CSS: background repeat</a></li>
<li><a href="http://xahlee.info/js/css_background_origin.html">CSS: background origin</a></li>
<li><a href="http://xahlee.info/js/css_background_clip.html">CSS: background clip</a></li>
<li><a href="http://xahlee.info/js/css_background_attachment.html">CSS: background attachment</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_margin_vs_padding.html">CSS: Margin vs Padding</a></li>
<li><a href="http://xahlee.info/js/css_padding.html">CSS: padding</a></li>
<li><a href="http://xahlee.info/js/css_margin.html">CSS: margin</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_center.html">CSS: Centering</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: nesting syntax</title>
<id>urn:uuid:b5e1dbfa-75b7-4de8-a634-7eda1db9a74b</id>
<updated>2026-06-15T08:58:04-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-15</time></div>

<p>
update
</p>

<ul>
<li><a href="http://xahlee.info/js/css_nesting_syntax.html">CSS: nesting syntax</a></li>
<li>🆕 <a href="http://xahlee.info/js/css_nesting_selector.html">CSS: nesting selector (ampersand &amp;)</a></li>
<li>🆕 <a href="http://xahlee.info/js/css_nested_media_query.html">CSS: nested media query</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: what is Wide Color Gamut, Display P3, sRGB.</title>
<id>urn:uuid:56b27818-83a0-4727-ad58-82e06184a8fa</id>
<updated>2026-06-14T21:01:39-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-13</time></div>

<p>
preliminary version
</p>

<ul>
<li><a href="http://xahlee.info/js/css_display_p3_srgb.html">CSS: what is Wide Color Gamut, Display P3, sRGB.</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_color_function.html">CSS: color() function</a></li>
<li><a href="http://xahlee.info/js/css_color-mix.html">CSS: color-mix() function</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_hwb_color.html">CSS: HWB color (hue whiteness blackness)</a></li>

<li><a href="http://xahlee.info/js/css_lab_color.html">CSS: LAB, LCH color</a></li>

<li><a href="http://xahlee.info/js/css_oklch_color.html">CSS: OKLCH color</a></li>
</ul>

<ul>
<li>added a oklch example</li>
<li><a href="http://xahlee.info/js/css_gradient.html">CSS: Linear Gradient</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: HWB color (hue whiteness blackness)</title>
<id>urn:uuid:945dc476-f264-4933-adbe-3d96e814ba27</id>
<updated>2026-06-12T22:39:57-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-12</time></div>

<p>
preliminary version
</p>

<ul>
<li><a href="http://xahlee.info/js/css_hwb_color.html">CSS: HWB color (hue whiteness blackness)</a></li>
<li><a href="http://xahlee.info/js/css_oklch_color.html">CSS: oklch color</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>popular css website css tricks got a css problem (2026-06-04)</title>
<id>urn:uuid:4ad10e5f-cae9-4ade-90d4-c54d78c24c48</id>
<updated>2026-06-10T11:14:10-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-10</time></div>

<ul>
<li><a href="http://xahlee.info/js/css_tricks_problem.html">popular css website css tricks got a css problem (2026-06-04)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>Xah Talk Show 2026-05-23 Ep785. you need a phd for CSS selectors</title>
<id>urn:uuid:22ae3746-23dc-4c9c-a0da-c9b6e35db47e</id>
<updated>2026-06-10T09:05:26-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-10</time></div>

<p>
recent Xah Talk Show on css.
</p>

<ul>
<li><a href="http://xahlee.info/talk_show/xah_talk_show_ep785.html">Xah Talk Show 2026-05-23 Ep785. you need a phd for CSS selectors</a></li>
<li><a href="http://xahlee.info/talk_show/xah_talk_show_ep789.html">Xah Talk Show 2026-06-03 Ep789. CSS cascade, specificity</a></li>
<li><a href="http://xahlee.info/talk_show/xah_talk_show_ep790.html">Xah Talk Show 2026-06-08 Ep790. CSS pie chart, attr function</a></li>
<li><a href="http://xahlee.info/talk_show/xah_talk_show_ep791.html">Xah Talk Show 2026-06-09 Ep791. CSS, make parallel lines, diamond grid, polar grid</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: draw a polar grid</title>
<id>urn:uuid:f2bd48eb-b7a3-4816-9117-4c25bae7e583</id>
<updated>2026-06-10T08:38:43-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-10</time></div>

<ul>
<li>🆕 <a href="http://xahlee.info/js/css_polar_grid.html">CSS: draw a polar grid</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: Gradient. Index</title>
<id>urn:uuid:120d13f3-25bb-4008-a5b7-397864840d45</id>
<updated>2026-06-09T19:50:09-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-09</time></div>

<ul>
<li>🆕 <a href="http://xahlee.info/js/css_gradient_index.html">CSS: Gradient. Index</a></li>
<li>🆕 <a href="http://xahlee.info/js/css_repeating_radial_gradient.html">CSS: Repeating Radial Gradient</a></li>
<li>🆕 <a href="http://xahlee.info/js/css_parallel_lines.html">CSS: parallel lines, diamond grid, polar grid</a></li>
</ul>

<ul>
<li>now random on load</li>
<li><a href="http://xahlee.info/js/css_gradient_radial.html">CSS: Radial Gradient</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: letter spacing</title>
<id>urn:uuid:1fc609d1-0711-4256-aa8c-507cc46eff01</id>
<updated>2026-06-09T08:40:22-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-09</time></div>

<p>
updates.
</p>

<ul>
<li><a href="http://xahlee.info/js/css_before_after.html">CSS: insert content ::before ::after element</a></li>
<li><a href="http://xahlee.info/js/css_letter_spacing.html">CSS: letter spacing</a></li>
<li><a href="http://xahlee.info/js/css_word_spacing.html">CSS: word spacing</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: pie chart</title>
<id>urn:uuid:eeacc386-f38c-4833-91df-f7549b4af3f9</id>
<updated>2026-06-08T22:40:03-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-08</time></div>

<ul>
<li>🆕 <a href="http://xahlee.info/js/css_pie_chart.html">CSS: pie chart</a></li>
</ul>

<p>
updates
</p>

<ul>
<li>🆕 <a href="http://xahlee.info/js/css_rgb_color_function.html">CSS: RGB color function</a></li>
<li><a href="http://xahlee.info/js/css_hsl_color.html">CSS: HSL Color</a></li>
<li><a href="http://xahlee.info/js/css_color_opacity.html">CSS: Opacity (Transparency)</a></li>
</ul>

<ul>
<li>added multiple gradients effect</li>
<li><a href="http://xahlee.info/js/css_repeating_linear_gradient.html">CSS: Repeating Linear Gradient</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: attr() attribute text</title>
<id>urn:uuid:669c08a7-c18c-4f20-9d58-3f43e71c3f41</id>
<updated>2026-06-07T11:10:41-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-07</time></div>

<ul>
<li>🆕 <a href="http://xahlee.info/js/css_attr.html">CSS: attr() attribute text</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: color wheel spinner animation</title>
<id>urn:uuid:8ac88e2f-2ed3-4ecc-af1d-5a251aa14aa1</id>
<updated>2026-06-07T11:10:07-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-07</time></div>

<ul>
<li>🆕 <a href="http://xahlee.info/js/css_spinner.html">CSS: color wheel spinner animation</a></li>
<li>🆕 <a href="http://xahlee.info/js/css_angle_units.html">CSS: Angle Units</a></li>
<li>🆕 <a href="http://xahlee.info/js/css_repeating_linear_gradient.html">CSS: Repeating Linear Gradient</a></li>
<li>🆕 <a href="http://xahlee.info/js/css_conic_gradient.html">CSS: Conic Gradient</a></li>
<li>🆕 <a href="http://xahlee.info/js/css_repeating-conic-gradient.html">CSS: Repeating Conic Gradient</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: calc</title>
<id>urn:uuid:6de0e19d-a541-44db-bdc9-1cb66a49c6b6</id>
<updated>2026-06-07T11:09:20-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-06</time></div>

<ul>
<li>added pi and other math constants</li>
<li><a href="http://xahlee.info/js/css_calc.html">CSS: calc</a></li>
</ul>

<ul>
<li>added name <code>transparent</code></li>
<li><a href="http://xahlee.info/js/css_color_names.html">CSS: Color Names</a></li>
</ul>

<ul>
<li>explained about flex, anonymous item</li>
<li><a href="http://xahlee.info/js/css_center.html">CSS: Centering</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_readable_text_shadow.html">CSS: readable text shadow for changing background color</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: Outline Text</title>
<id>urn:uuid:5bf40b7f-88fe-4cb8-9e19-94d2c21a9f4a</id>
<updated>2026-06-05T14:47:49-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-05</time></div>

<ul>
<li>🆕 <a href="http://xahlee.info/js/css_outline_text.html">CSS: Outline Text</a></li>
<li><a href="http://xahlee.info/js/css_text_shadow.html">CSS: Text Shadow</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: Box Sizing</title>
<id>urn:uuid:78d7c19e-ee7e-46cc-8827-3cccf5b09aa8</id>
<updated>2026-06-05T14:47:15-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-05</time></div>

<p>
updated
</p>

<ul>
<li><a href="http://xahlee.info/js/css_box_sizing.html">CSS: Box Sizing</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>CSS: inline-block not aligned, need vertical-align: top</title>
<id>urn:uuid:fa0f133b-ded5-4d72-abd6-b66769af4f5d</id>
<updated>2026-06-05T14:05:44-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-05</time></div>

<ul>
<li><a href="http://xahlee.info/js/css_inline-block_alignment.html">CSS: inline-block not aligned, need vertical-align: top</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>Wide Gamut Colors</title>
<id>urn:uuid:d47112fe-3399-44eb-9570-c82bc5b95153</id>
<updated>2026-06-04T18:42:56-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-04</time></div>

<ul>
<li><a href="http://xahlee.info/js/wide_gamut_colors.html">Wide Gamut Colors</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>JS coding style example. codepoint to utf16 encoding (2026)</title>
<id>urn:uuid:6765d82f-585c-4b14-b802-5384ad3cb82f</id>
<updated>2026-06-04T09:53:20-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-04</time></div>

<ul>
<li><a href="http://xahlee.info/js/js_code_example_2026.html">JS coding style example. codepoint to utf16 encoding (2026)</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

<entry>
<title>Serif vs Sans Serif Font (2026)</title>
<id>urn:uuid:68deb49a-8342-4430-b894-ff598cb70eb1</id>
<updated>2026-06-02T12:20:40-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

<div class="date_xl"><time>2026-06-02</time></div>

<ul>
<li>🆕 <a href="http://xahlee.info/js/serif_vs_sans_serif_font.html">Serif vs Sans Serif Font (2026)</a></li>
</ul>

<ul>
<li>🆕 <a href="http://xahlee.info/js/core_web_fonts.html">CSS: Core Web Fonts</a></li>
<li><a href="http://xahlee.info/js/fonts.html">CSS: common web fonts</a></li>
</ul>

</section></div>
 </content>
<link rel="alternate" href="http://xahlee.info/js/blog.html"/>
</entry>

</feed>
