<?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-09-10T23:28:34-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>JS: Function (basics)</title>
<id>urn:uuid:614c6edd-2a0a-46a1-8f63-01a100649059</id>
<updated>2026-09-10T23:28:35-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>major rewrite.</p>

<ul>
<li>🆕 <a href="http://xahlee.info/js/js_function_basics.html">JS: Function (basics)</a></li>
<li><a href="http://xahlee.info/js/js_arrow_function.html">JS: Arrow Function</a></li>
<li><a href="http://xahlee.info/js/js_define_function.html">JS: function (keyword)</a></li>
<li><a href="http://xahlee.info/js/js_function_name_hoisting.html">JS: “function” (keyword) name hoisting</a></li>
<li><a href="http://xahlee.info/js/js_function_declaration_vs_expression.html">JS: “function” (keyword) declaration vs expression</a></li>
<li><a href="http://xahlee.info/js/js_function_arguments_object.html">JS: “arguments” object in function keyword</a></li>
<li><a href="http://xahlee.info/js/js_call_function_as_method.html">JS: “function” (keyword) call, apply, bind</a></li>
<li><a href="http://xahlee.info/js/js_function_arguments.html">JS: Function parameters</a></li>
<li><a href="http://xahlee.info/js/js_func_rest_param.html">JS: Function rest-parameters</a></li>
<li><a href="http://xahlee.info/js/js_func_arg_default_value.html">JS: Function parameters default values</a></li>
<li><a href="http://xahlee.info/js/js_func_arg_destructure.html">JS: Function parameters binding pattern</a></li>
<li><a href="http://xahlee.info/js/js_closure.html">JS: Closure</a></li>
<li><a href="http://xahlee.info/js/js_functional_programing.html">JS: Functional Programing</a></li>
<li><a href="http://xahlee.info/js/js_function_chaining.html">JS: Function Pipe 📜</a></li>
<li><a href="http://xahlee.info/js/js_function_object.html">JS: Function (class)</a></li>
<li><a href="http://xahlee.info/js/js_function_constructor.html">JS: Function Constructor</a></li>
<li><a href="http://xahlee.info/js/js_Function_prototype_properties.html">JS: Function.prototype</a></li>
</ul>

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

<entry>
<title>JS: Object Overview</title>
<id>urn:uuid:b0f310c4-5eea-4c2c-a5ce-f3e8aeef7b9d</id>
<updated>2026-09-10T18:51:22-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>misc updates</p>

<ul>
<li><a href="http://xahlee.info/js/js_JavaScript_object_tutorial.html">JS: Object Overview</a></li>

<li><a href="http://xahlee.info/js/js_whats_object.html">JS: Object Type</a></li>

</ul>

<ul>
<li><a href="http://xahlee.info/js/js_whats_property.html">JS: Property Overview</a></li>
<li><a href="http://xahlee.info/js/js_delete_operator.html">JS: delete (operator) 👎</a></li>

</ul>

<ul>
<li><a href="http://xahlee.info/js/js_array.html">JS: Array (overview)</a></li>
<li>🆕 <a href="http://xahlee.info/js/js_array_max_index.html">JS: Max number of elements</a></li>
<li><a href="http://xahlee.info/js/js_array-like_object.html">JS: Array-Like Object</a></li>
<li><a href="http://xahlee.info/js/js_array_vs_array_like.html">JS: Difference of Array vs Array-Like Object</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_destructuring_assignment.html">JS: Assignment pattern</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_object_property_order.html">JS: Order of Properties</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_prototype.html">JS: Add Method to Prototype</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_string_constructor.html">JS: String Constructor</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:eb12d2e3-a109-448c-9fe4-e4e8b9ea1697</id>
<updated>2026-09-10T12:23:45-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>now the W3C validator support nested CSS.</p>

<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>pattern matching coming to JavaScript</title>
<id>urn:uuid:f7efcc17-1df0-4e0d-8030-a5d13dc478fe</id>
<updated>2026-09-10T12:12:49-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>pattern matching coming to JavaScript</p>

<figure>
<img src="http://xahlee.info/js/i/js_pattern_matching_2026-09-10_16349_ll.webp" alt="js pattern matching 2026-09-10 16349 ll" width="912" height="851" />
<figcaption>
js pattern matching 2026-09-10 16349 ll
</figcaption>
</figure>

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

<entry>
<title>CSS: nesting syntax</title>
<id>urn:uuid:2409969b-1d89-491d-bd7f-1a6a2786c9e5</id>
<updated>2026-09-10T12:11:01-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>css nesting syntax is fantastic.
make things easier to read.</p>

<p>3 years ago, i was against. because non-linear linear syntax has advantages like in shell languages. nested syntax is complicated to edit.</p>

<figure>
<img src="http://xahlee.info/js/i/css_nesting_syntax_2026-09-10_1d810_ll.webp" alt="css nesting syntax 2026-09-10 1d810 ll" width="1075" height="1063" />
<figcaption>
css nesting syntax 2026-09-10 1d810 ll
</figcaption>
</figure>

<ul>
<li><a href="http://xahlee.info/js/css_nesting_syntax.html">CSS: nesting syntax</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/comp/shell_linear_syntax.html">Shell Languages and the Linearization of Syntax</a></li>
</ul>

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

<entry>
<title>JavaScript. What is object object, ordinary object, exotic object.</title>
<id>urn:uuid:baa233ed-4ce2-4794-999e-1126d9f96a0f</id>
<updated>2026-09-08T12:20:32-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/js_data_object_exotic_object.html">JavaScript. What is object object, ordinary object, exotic object.</a></li>
</ul>

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

<entry>
<title>JS: String Index Code Unit</title>
<id>urn:uuid:090ac8ce-d36d-4510-81c3-a7d9c4621617</id>
<updated>2026-09-08T12:20:27-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>major rewrite:</p>

<ul>
<li><a href="http://xahlee.info/js/js_string_byte_sequence.html">JS: String Index Code Unit</a></li>
<li><a href="http://xahlee.info/js/js_array_equality_json.html">JS: Problems of testing array equality as json string</a></li>
<li><a href="http://xahlee.info/js/js_obj_json_equality.html">JS: Problems of testing object equality as json string</a></li>
</ul>

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

<entry>
<title>JS: Print</title>
<id>urn:uuid:d70a2006-cdc2-42eb-bc53-9be47fd8ea56</id>
<updated>2026-09-08T12:20:10-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>minor updates.
make the basics sections better.
</p>

<ul>
<li><a href="http://xahlee.info/js/js_print.html">JS: Print</a></li>
<li><a href="http://xahlee.info/js/js_filename_extension.html">JS: Filename Extension</a></li>
<li><a href="http://xahlee.info/js/js_how_to_run_js.html">How to Run JavaScript</a></li>
<li><a href="http://xahlee.info/js/js_assignment_ops.html">JS: Assignment Operators</a></li>
<li><a href="http://xahlee.info/js/js_primitive_value.html">JS: Primitive Value</a></li>
<li><a href="http://xahlee.info/js/js_boolean.html">JS: Boolean. true false</a></li>
<li><a href="http://xahlee.info/js/js_equality.html">JS: Test Equality</a></li>
<li><a href="http://xahlee.info/js/js_datatypes.html">JS: Value Types</a></li>
<li><a href="http://xahlee.info/js/js_branch_control.html">JS: Conditional. if then else</a></li>
<li><a href="http://xahlee.info/js/js_variable.html">JS: Variable</a></li>
<li><a href="http://xahlee.info/js/js_array_basics.html">JS: Array (basics)</a></li>
<li><a href="http://xahlee.info/js/js_for_of_loop.html">JS: for-of Loop</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_Array.prototype.at.html">JS: Array.prototype.at</a></li>
</ul>

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

<entry>
<title>remove of redundant === true in assertion.</title>
<id>urn:uuid:9d55e465-fd72-4e69-8e79-cd1347c04c78</id>
<updated>2026-09-08T10:51:11-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<h2>remove of redundant === true in assertion.</h2>

<p>remove all redundant === true in console.assert. was using them because i thought it provides clarity, symmetric with === false. but now i think shorter code is more clear.</p>

<ul>

<li><a href="http://xahlee.info/js/js_test_object_equality.html">JS: Test Equality of Array and Object by Content 📜</a></li>
<li><a href="http://xahlee.info/js/js_split_array.html">JS: Split Array 📜</a></li>
<li><a href="http://xahlee.info/js/js_object_prototype_property.html">JS: prototype (property)</a></li>
<li><a href="http://xahlee.info/js/js_number_comparison_operators.html">JS: Number Comparison Operators</a></li>
<li><a href="http://xahlee.info/js/js_boolean_constructor.html">JS: Boolean Constructor</a></li>
<li><a href="http://xahlee.info/js/js_Reflect.preventExtensions.html">JS: Reflect.preventExtensions</a></li>
<li><a href="http://xahlee.info/js/js_Reflect.getOwnPropertyDescriptor.html">JS: Reflect.getOwnPropertyDescriptor</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_Object.setPrototypeOf.html">JS: Object.setPrototypeOf 👎</a></li>
<li><a href="http://xahlee.info/js/js_RegExp.prototype.unicode.html">JS: RegExp.prototype.unicode (flag u)</a></li>
<li><a href="http://xahlee.info/js/js_instanceof.html">JS: instanceof (operator)</a></li>
<li><a href="http://xahlee.info/js/js_regex_flag.html">JS: Regular Expression Flags</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_Array.prototype.length.html">JS: Array.prototype.length</a></li>
<li><a href="http://xahlee.info/js/js_Number.isFinite.html">JS: Number.isFinite</a></li>
<li><a href="http://xahlee.info/js/js_Number.isSafeInteger.html">JS: Number.isSafeInteger</a></li>
<li><a href="http://xahlee.info/js/js_Reflect.has.html">JS: Reflect.has</a></li>
<li><a href="http://xahlee.info/js/js_delete_operator.html">JS: delete (operator) 👎</a></li>
<li><a href="http://xahlee.info/js/js_in_operator.html">JS: in (operator) 👎</a></li>
<li><a href="http://xahlee.info/js/js_isFinite.html">JS: isFinite 👎</a></li>
<li><a href="http://xahlee.info/js/js_object_literal_vs_Object.create.html">JS: Object Literal Expression vs Object.Create</a></li>
<li><a href="http://xahlee.info/js/js_sparse_array.html">JS: Sparse Array</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_Object.hasOwn.html">JS: Object.hasOwn</a></li>
<li><a href="http://xahlee.info/js/js_Object.isExtensible.html">JS: Object.isExtensible 👎</a></li>
<li><a href="http://xahlee.info/js/js_Object.isSealed.html">JS: Object.isSealed</a></li>
<li><a href="http://xahlee.info/js/js_Object.prototype.hasOwnProperty.html">JS: Object.prototype.hasOwnProperty 👎</a></li>
<li><a href="http://xahlee.info/js/js_Object.seal.html">JS: Object.seal</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_Reflect.defineProperty.html">JS: Reflect.defineProperty</a></li>
<li><a href="http://xahlee.info/js/js_Reflect.deleteProperty.html">JS: Reflect.deleteProperty</a></li>
<li><a href="http://xahlee.info/js/js_Reflect.isExtensible.html">JS: Reflect.isExtensible</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_Array.prototype.some.html">JS: Array.prototype.some</a></li>
<li><a href="http://xahlee.info/js/js_Boolean.prototype.html">JS: Boolean.prototype</a></li>
<li><a href="http://xahlee.info/js/js_Number.isNaN.html">JS: Number.isNaN</a></li>

<li><a href="http://xahlee.info/js/js_RegExp.prototype.test.html">JS: RegExp.prototype.test</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_Set.prototype.delete.html">JS: Set.prototype.delete</a></li>
<li><a href="http://xahlee.info/js/js_Set.prototype.has.html">JS: Set.prototype.has</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_String.prototype.includes.html">JS: String.prototype.includes</a></li>
<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>
<li><a href="http://xahlee.info/js/js_array_equality_json.html">JS: Problems of testing array equality as json string</a></li>
<li><a href="http://xahlee.info/js/js_array_methods.html">JS: Array.prototype</a></li>

<li><a href="http://xahlee.info/js/js_dot_notation_vs_bracket_notation.html">JS: Property Dot Notation vs Bracket Notation</a></li>

<li><a href="http://xahlee.info/js/js_is_object.html">JS: Test is Object Type 📜</a></li>
<li><a href="http://xahlee.info/js/js_map_equality.html">JS: Test Equality of Map Objects 📜</a></li>

<li><a href="http://xahlee.info/js/js_number_constructor.html">JS: Number Constructor</a></li>
<li><a href="http://xahlee.info/js/js_object_extensible.html">JS: Prevent Adding Property</a></li>
<li><a href="http://xahlee.info/js/js_stopwatch.html">JS DOM: Stopwatch</a></li>
<li><a href="http://xahlee.info/js/js_undefined.html">JS: undefined</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_name_hoisting_declaration_order.html">JS: name hoisting (var name order)</a></li>
<li><a href="http://xahlee.info/js/js_global_var.html">JS: Global Variable</a></li>
</ul>

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

<entry>
<title>JS: Object Overview</title>
<id>urn:uuid:3774d73b-9846-49ad-a4cd-a025c84df288</id>
<updated>2026-09-07T18:06:27-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>minor updates</p>

<ul>
<li><a href="http://xahlee.info/js/js_JavaScript_object_tutorial.html">JS: Object Overview</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_object_literal_expression.html">JS: Object Literal Expression</a></li>

<li><a href="http://xahlee.info/js/js_Object.create.html">JS: Object.create</a></li>

<li><a href="http://xahlee.info/js/js_browser_console_obj_syntax_error.html">JS: Object Literal Expression SyntaxError: Unexpected token colon</a></li>

<li><a href="http://xahlee.info/js/js_property_descriptor.html">JS: Property Descriptor</a></li>

<li><a href="http://xahlee.info/js/js_isFinite.html">JS: isFinite 👎</a></li>

</ul>

<ul>
<li><a href="http://xahlee.info/js/js_obj_ref_index.html">JS Object Reference</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_Reflect.setPrototypeOf.html">JS: Reflect.setPrototypeOf</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_math_methods.html">JS: Math (namespace)</a></li>
</ul>

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

<entry>
<title>The Problems with CSS (2010)</title>
<id>urn:uuid:7e3c842d-cc1e-48e5-a93a-12013b981758</id>
<updated>2026-09-06T11:21:17-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>old article. now they been fixed</p>

<ul>
<li><a href="http://xahlee.info/js/css_problems.html">The Problems with CSS (2010)</a></li>
</ul>

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

<entry>
<title>CSS: first child, last child, only child selectors</title>
<id>urn:uuid:39094b08-08e5-4417-877c-480e990b100b</id>
<updated>2026-09-06T11:21:12-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>more updates.</p>

<ul>
<li><a href="http://xahlee.info/js/css_selector_sibling.html">CSS: first child, last child, only child selectors</a></li>
<li><a href="http://xahlee.info/js/css_nth-child_selector.html">CSS: nth-child selector</a></li>
<li><a href="http://xahlee.info/js/css_nth-of-type.html">CSS: nth-of-type selector</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_selector_pseudo-class.html">CSS: pseudo-class selector (:)</a></li>
<li><a href="http://xahlee.info/js/pseudo-class_functions.html">CSS: pseudo-class selector functions</a></li>
</ul>

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

<entry>
<title>CSS: :where selector (is any of)</title>
<id>urn:uuid:a6508d60-b87f-4630-919f-3f13384e50fe</id>
<updated>2026-09-05T18:43:16-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

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

<li><a href="http://xahlee.info/js/pseudo-class_functions.html">CSS: pseudo-class selector functions</a></li>
</ul>

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

<entry>
<title>JS: class (keyword)</title>
<id>urn:uuid:279ae701-4166-403c-bcad-efa9420481ab</id>
<updated>2026-09-05T15:21:13-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>major rewrite on js class.</p>

<ul>
<li><a href="http://xahlee.info/js/js_class.html">JS: class (keyword)</a></li>

<li><a href="http://xahlee.info/js/js_class_extend.html">JS: extends (keyword)</a></li>
<li><a href="http://xahlee.info/js/js_class_super.html">JS: super (keyword)</a></li>

<li><a href="http://xahlee.info/js/js_without_class_keyword.html">JS: Define a Class Without class</a></li>

<li><a href="http://xahlee.info/js/js_class_static.html">JS: static (keyword)</a></li>
</ul>

<p>updates:</p>

<ul>
<li><a href="http://xahlee.info/js/js_property_attributes.html">JS: Property Attributes</a></li>
</ul>

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

<entry>
<title>CSS. Browser rendering of h1 in nested section becomes smaller (2016-11-16)</title>
<id>urn:uuid:9689483c-a360-4e90-8dc4-0795ac332bed</id>
<updated>2026-09-04T19:57:36-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>old blog article now on its own page.</p>

<ul>
<li><a href="http://xahlee.info/js/css_h1_in_nested_section.html">CSS. Browser rendering of h1 in nested section becomes smaller (2016-11-16)</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/blog_past_2016-11.html">Xah JS Blog. 2016-11 to 2016-12</a></li>
</ul>

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

<entry>
<title>HTML: Definition List: dl dt dd</title>
<id>urn:uuid:df5608b0-249a-4137-be81-ee70f7c37715</id>
<updated>2026-09-04T11:48:40-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>updates.</p>

<ul>
<li><a href="http://xahlee.info/js/html_dl_dt_dd.html">HTML: Definition List: dl dt dd</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/event_sample.html">JS DOM: Add / Remove Event Handler</a></li>
<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: Getter Setter Property (accessor)</title>
<id>urn:uuid:bc4b98bd-cf75-4f86-b95b-e41d87635ff7</id>
<updated>2026-09-03T13:11:07-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/js_getter_and_setter_properties.html">JS: Getter Setter Property (accessor)</a></li>

<li>🆕 <a href="http://xahlee.info/js/js_getter_setter_attributes.html">JS: Getter Setter Attributes</a></li>
</ul>

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

<entry>
<title>JS: Object.assign (merge objects)</title>
<id>urn:uuid:aa310e3f-8ad2-4948-88a7-cc233e77b423</id>
<updated>2026-09-02T11:14:07-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/js_Object.assign.html">JS: Object.assign (merge objects)</a></li>
</ul>

<ul>
<li>added Key without value shorthand. somehow i missed knowing this feature in ECMAScript 2015.</li>
<li><a href="http://xahlee.info/js/js_object_literal_expression.html">JS: Object Literal Expression</a></li>
<li><a href="http://xahlee.info/js/js_ECMAScript_2015.html">JS: ECMAScript 2015</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:2631274e-fbdb-40ed-b1f5-d3950b3883de</id>
<updated>2026-09-02T11:13:17-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>updates</p>

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

<ul>
<li><a href="http://xahlee.info/js/js_CommonJS.html">JS: CommonJS (tutorial)</a></li>
<li><a href="http://xahlee.info/js/js_CommonJS_history.html">JS: History of CommonJS. 2009 to 2026</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_AMD_modules.html">JS: AMD Module System tutorial</a></li>
<li><a href="http://xahlee.info/js/js_AMD_modules_history.html">JS: History of AMD Module System (2009 to 2016)</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_try_catch_throw_finally.html">JS: Throw Try Catch Finally</a></li>
</ul>

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

<entry>
<title>JS DOM: Execution order of JavaScript in HTML (defer, async, module)</title>
<id>urn:uuid:e257877e-be9c-4c3e-a19a-e698e806ed35</id>
<updated>2026-08-30T20:10:15-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/js_executing_order.html">JS DOM: Execution order of JavaScript in HTML (defer, async, module)</a></li>
</ul>

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

<entry>
<title>JavaScript DOM remove node method design, why involve parent node? (2026)</title>
<id>urn:uuid:989e1c20-41a6-418d-ae34-22f27dd165b5</id>
<updated>2026-08-30T20:05:39-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/dom_remove_node_design.html">JavaScript DOM remove node method design, why involve parent node? (2026)</a></li>
</ul>

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

<entry>
<title>JS DOM: Insert Element</title>
<id>urn:uuid:7584d7e7-d398-423e-87d5-e7a42fed3ebf</id>
<updated>2026-08-29T22:43:01-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/dom_insert_node.html">JS DOM: Insert Element</a></li>

<li><a href="http://xahlee.info/js/dom_remove_node.html">JS DOM: Remove an Element or Childen</a></li>

<li><a href="http://xahlee.info/js/dom_insertAdjacentElement.html">JS DOM: Insert adjacent element</a></li>

<li><a href="http://xahlee.info/js/dom_appendChild.html">JS DOM: appendChild</a></li>
</ul>

<ul>
<li>🆕 <a href="http://xahlee.info/js/js_html_style_attribute.html">JS DOM: Change HTML style attribute (for CSS)</a></li>
</ul>

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

<entry>
<title>JS DOM: List of events</title>
<id>urn:uuid:1a375ee4-4729-4b7f-a8bf-40f8b5a1a289</id>
<updated>2026-08-28T15:42:41-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li>🆕 <a href="http://xahlee.info/js/js_dom_events.html">JS DOM: List of events</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/dom_common_dom_methods.html">JS: DOM Methods</a></li>
<li><a href="http://xahlee.info/js/dom_create_node.html">JS DOM: Create Element, Clone</a></li>
<li><a href="http://xahlee.info/js/js_get_elements.html">JS DOM: Get Element by ID, Name, Class etc</a></li>
<li><a href="http://xahlee.info/js/js_navigate_nodes.html">JS DOM: Get Parent, Child, Sibling</a></li>
<li><a href="http://xahlee.info/js/event_sample.html">JS DOM: Add / Remove Event Handler</a></li>
<li><a href="http://xahlee.info/js/ins_content.html">JS DOM: Create / Insert HTML Element</a></li>

</ul>

<ul>
<li><a href="http://xahlee.info/js/css_2d_transform.html">CSS: Transform (translate scale rotate skew)</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_viewport_dimension.html">JS DOM: Get window/viewport width height</a></li>
<li><a href="http://xahlee.info/js/js_element_size.html">JS DOM: Find Element Width</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_globalThis.html">JS: globalThis</a></li>
<li><a href="http://xahlee.info/js/js_window_object.html">JS DOM: Browser Window Object</a></li>
<li><a href="http://xahlee.info/js/html_embed_js.html">HTML: Embed JavaScript by script tag</a></li>
<li><a href="http://xahlee.info/js/events.html">JS DOM: Intro to Event-Based Programing</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js_whats_this_in_a_event_handler.html">JS: this (binding) in event handler</a></li>
</ul>

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

<entry>
<title>TypeScript: DOM Object types</title>
<id>urn:uuid:b2e3e975-3d1e-4d42-85f3-330bc74accf5</id>
<updated>2026-08-27T20:40:03-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/typescript/ts_dom_object_types.html">TypeScript: DOM Object types</a></li>
</ul>

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

<entry>
<title>JS: Dot Notation Associativity, Right or Left</title>
<id>urn:uuid:d4477ba2-1354-435c-b21a-4ec427595361</id>
<updated>2026-08-27T20:39:27-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/js_x.y.z_associativity_right_or_left.html">JS: Dot Notation Associativity, Right or Left</a></li>
</ul>

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

<entry>
<title>JavaScript in Depth</title>
<id>urn:uuid:abac717b-20b1-4bcf-b921-1ba2c55c34ed</id>
<updated>2026-08-23T17:00:54-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>re-org js in depth. removed table of contents in home pages. they are confusing.
now just rely on the left nav panel for short topic entry.</p>

<p>also cleaned the left panel.
remove js object reference and svg in the panel.
and put misc less important items into a new misc index page.
</p>

<ul>
<li><a href="http://xahlee.info/js/js.html">JavaScript in Depth</a></li>
<li>🆕 <a href="http://xahlee.info/js/js_misc_index.html">JavaScript Misc. Index</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/scripting_web_index.html">JS: DOM Scripting Tutorial</a></li>
<li>🆕 <a href="http://xahlee.info/js/js_dom_misc_index.html">JS DOM: Misc. Index</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/html_index.html">HTML Tutorial</a></li>
<li>🆕 <a href="http://xahlee.info/js/html_misc_index.html">HTML: Misc. Index</a></li>
</ul>

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

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

<entry>
<title>HTML: Case Sensitivity</title>
<id>urn:uuid:2a48d71c-f068-4ba3-adb4-6ecd6b38ad4f</id>
<updated>2026-08-22T20:33:24-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>misc updates.</p>

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

<ul>
<li><a href="http://xahlee.info/js/browser_plays_midi_file.html">Browser support for music MIDI file (2013)</a></li>
</ul>

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

<li><a href="http://xahlee.info/js/js_number.html">JS: Number</a></li>

<li><a href="http://xahlee.info/js/js_math_operators.html">JS: Arithmetic Operators</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/html_submit_button.html">HTML: Submit button, reset button</a></li>

<li><a href="http://xahlee.info/js/html_select_tag.html">JS DOM: Selection, Popup Menu ▤</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/dom_window_popup.html">JS DOM: Pop-up New Window</a></li>

<li><a href="http://xahlee.info/js/js_stopwatch.html">JS DOM: Stopwatch</a></li>

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

<ul>
<li><a href="http://xahlee.info/js/svg_clock.html">JS: SVG Clock</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/js.html">JavaScript in Depth</a></li>
</ul>

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

<entry>
<title>CSS: Case Sensitivity</title>
<id>urn:uuid:eca1534e-bcff-4f7b-a1f1-29c804220d15</id>
<updated>2026-08-22T14:53:54-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>updates.</p>

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

<ul>
<li><a href="http://xahlee.info/js/iframe_strict.html">Using object tag for iframe in HTML 4.01 strict (2009)</a></li>

<li><a href="http://xahlee.info/js/html_object_tag.html">HTML: Object Tag</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/iframe_sample.html">HTML: iframe</a></li>
</ul>

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

<entry>
<title>HTML: Form and input related tags</title>
<id>urn:uuid:58f59e7a-5629-4427-a433-c699d9e1d3a3</id>
<updated>2026-08-21T20:07:07-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>updates and new. some ai generated, for now.</p>

<ul>
<li>🆕 <a href="http://xahlee.info/js/html_form_tags.html">HTML: Form and input related tags</a></li>
<li>🆕 <a href="http://xahlee.info/js/html_form.html">HTML: Form Tag</a></li>
<li><a href="http://xahlee.info/js/html_input_tag.html">HTML: Input Tag</a></li>
<li><a href="http://xahlee.info/js/html_form_sample.html">HTML Form Example (2005)</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/html_select_tag.html">JS DOM: Selection, Popup Menu ▤</a></li>
</ul>

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

<entry>
<title>HTML: details, summary (collapsible box)</title>
<id>urn:uuid:4f4ba9d5-69bd-4e03-8aea-14081ceb07ce</id>
<updated>2026-08-21T17:44:49-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li>🆕 <a href="http://xahlee.info/js/html_details_tag.html">HTML: details, summary (collapsible box)</a></li>
</ul>

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

<entry>
<title>HTML: Embed JavaScript</title>
<id>urn:uuid:44f0fb8e-d3ef-4aaa-92a8-0310d05a0ea2</id>
<updated>2026-08-21T16:33:17-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li>🆕 <a href="http://xahlee.info/js/html_embed_js.html">HTML: Embed JavaScript</a></li>
<li><a href="http://xahlee.info/js/js_how_to_run_js.html">How to Run JavaScript</a></li>

<li><a href="http://xahlee.info/js/html_basics.html">HTML: Syntax Basics</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_add.html">CSS: Add Style to HTML</a></li>
</ul>

<ul>
<li>🆕 <a href="http://xahlee.info/js/html_bdi.html">HTML: bdo, bdi (bidirectional text)</a></li>
</ul>

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

<entry>
<title>HTML: Ruby Tag (Annotation)</title>
<id>urn:uuid:d02bdb83-f6b8-49a9-bead-f408fa2c705e</id>
<updated>2026-08-20T18:52:18-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>minor misc updates</p>

<ul>
<li><a href="http://xahlee.info/js/html5_ruby_tag.html">HTML: Ruby Tag (Chinese Character Annotation)</a></li>
<li><a href="http://xahlee.info/js/html_list.html">HTML: List (ul ol li)</a></li>
<li><a href="http://xahlee.info/js/html_table.html">HTML: Table</a></li>
<li><a href="http://xahlee.info/js/html_table_thead_tbody_tfoot.html">HTML: Table, caption, thead, tbody, tfoot</a></li>
<li><a href="http://xahlee.info/js/html_table_colgroup.html">HTML: Table, colgroup, col</a></li>
</ul>

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

<entry>
<title>HTML: List of HTML Tags</title>
<id>urn:uuid:069c2d54-a15f-4f4e-8db2-209ec2f299dd</id>
<updated>2026-08-20T13:27:04-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>updated. cleaning up, re-org, my html tutorial.</p>

<ul>
<li><a href="http://xahlee.info/js/html5_tags.html">HTML: List of HTML Tags</a></li>
<li><a href="http://xahlee.info/js/html_basics.html">HTML: Syntax Basics</a></li>
<li><a href="http://xahlee.info/js/html_q_tag.html">HTML: q tag</a></li>
<li><a href="http://xahlee.info/js/html_img.html">HTML: Image Tag</a></li>
<li><a href="http://xahlee.info/js/css_add.html">CSS: Add CSS to HTML</a></li>
<li><a href="http://xahlee.info/js/html_dl_dt_dd.html">HTML: Definition List: dl dt dd</a></li>
<li><a href="http://xahlee.info/js/css_marker.html">CSS: ::marker (for list item)</a></li>
<li><a href="http://xahlee.info/js/html_misc_index.html">HTML: Misc. Index</a></li>
</ul>

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

<entry>
<title>CSS: Anchor Positioning</title>
<id>urn:uuid:d0d8224f-fd82-4760-9595-3ba7c1be2c42</id>
<updated>2026-08-19T14:27:01-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/css_anchor_positioning.html">CSS: Anchor Positioning</a></li>
<li><a href="http://xahlee.info/js/css_position_index.html">CSS: Position. Index</a></li>
</ul>

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

<entry>
<title>CSS: Display Property</title>
<id>urn:uuid:9b6c2065-bb5b-4979-8aff-49f36914f498</id>
<updated>2026-08-19T13:09:23-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/css_display_property.html">CSS: Display Property</a></li>
</ul>

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

<entry>
<title>JavaScript new.target syntax soup</title>
<id>urn:uuid:a2d26e53-cae5-47fd-b9c3-296a50c1178c</id>
<updated>2026-08-17T13:15:04-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<h2>JavaScript new.target syntax soup</h2>

<p>JavaScript new .target also violates a programing language design principle.</p>

<p>it inherited syntax soup from the c cpp dolts.</p>

<p>normally, dot means object.propertyKey. but in new .target, new is not a object. it's ad hoc syntax soup, like in js import export modules. </p>

<ul>
<li><a href="http://xahlee.info/js/js_new.target.html">JS: new.target</a></li>
</ul>

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

<entry>
<title>JS: new.target</title>
<id>urn:uuid:05886b87-402a-4182-987a-722bfbf24b90</id>
<updated>2026-08-17T13:15:00-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/js_new.target.html">JS: new.target</a></li>
</ul>

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

<entry>
<title>Tech writing comparison, normal style vs logician</title>
<id>urn:uuid:48da540d-45d7-451a-94ec-c6ca58d9b28c</id>
<updated>2026-08-17T12:29:52-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<h2>Tech writing comparison, normal style vs logician</h2>

<p>common style, but ambiguous:</p>

<dl>

<dt><code><var>tag</var>:nth-child(<var>n</var>)</code></dt>
<dd>

<p>Match <var>tag</var> if it is nth child element.</p>

</dd>

</dl>

<p>logician style:</p>

<dl>

<dt><code><var>tag</var>:nth-child(<var>n</var>)</code></dt>
<dd>

<p>match element x if:</p>

<ul>
<li><var>tag</var> matches x.</li>
<li>x is nth child.</li>
</ul>

</dd>

</dl>

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

<entry>
<title>CSS: Inline @scope in HTML style tag</title>
<id>urn:uuid:5f8614c7-06e9-4887-b34e-6578d70d2181</id>
<updated>2026-08-17T12:26:48-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/css_inline_scope_in_html.html">CSS: Inline @scope in HTML style tag</a></li>
</ul>

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

<entry>
<title>CSS: color-scheme</title>
<id>urn:uuid:204d976c-262c-48ca-83b0-195e125ef786</id>
<updated>2026-08-17T11:05:40-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/css_color_scheme.html">CSS: color-scheme</a></li>
</ul>

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

<entry>
<title>CSS: draw parallel lines, grid, diamond grid</title>
<id>urn:uuid:778fa169-3671-4f3b-8a38-4ac1b9fd9efa</id>
<updated>2026-08-17T10:08:34-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>updates.</p>

<ul>
<li><a href="http://xahlee.info/js/css_parallel_lines.html">CSS: draw parallel lines, grid, diamond grid</a></li>
</ul>

<ul>
<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: Media query hover</title>
<id>urn:uuid:dd714bf2-775d-4d48-8970-7d112fac62cc</id>
<updated>2026-08-15T22:17:45-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/css_media_query_hover.html">CSS: Media query hover</a></li>
</ul>

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

<entry>
<title>CSS: Repeating Linear Gradient</title>
<id>urn:uuid:c67de617-966b-430e-a7fc-a70f27092303</id>
<updated>2026-08-15T21:52:39-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>added rainbow strip.</p>

<ul>
<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: 3-Column Layout via margin (2007)</title>
<id>urn:uuid:5a5da17c-91cb-46b1-b031-4195784e9990</id>
<updated>2026-08-15T19:23:13-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/css_layout_tableless.html">CSS: 3-Column Layout via margin (2007)</a></li>
</ul>

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

<entry>
<title>Visual CSS</title>
<id>urn:uuid:9d0f12ae-57bf-4b90-9f15-3280e367b221</id>
<updated>2026-08-15T14:36:54-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<p>massive redesign.
lots new index pages.
now the nav panel is clean and logical.
</p>

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

<ul>

<li><a href="http://xahlee.info/js/css_width_index.html">CSS: Width. Index</a></li>

<li><a href="http://xahlee.info/js/css_animation_index.html">CSS: Animation, Transform. Index</a></li>

<li><a href="http://xahlee.info/js/css_cascade_index.html">CSS: Cascade. Index</a></li>

<li><a href="http://xahlee.info/js/css_media_index.html">CSS: Media Query. Index</a></li>
<li><a href="http://xahlee.info/js/css_special_values_index.html">CSS: Special Values. Index</a></li>
</ul>

<ul>
<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_translate.html">CSS: translate()</a></li>
</ul>

<ul>
<li><a href="http://xahlee.info/js/css_nesting_selector.html">CSS: nesting selector (ampersand &amp;)</a></li>
</ul>

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

<entry>
<title>JS: BigInt tutorial</title>
<id>urn:uuid:8e68928d-998d-4e87-8f86-1ec2c68a47f4</id>
<updated>2026-08-14T20:12:27-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/js_bigint_tutorial.html">JS: BigInt tutorial</a></li>
<li><a href="http://xahlee.info/js/js_BigInt.html">JS: BigInt (class)</a></li>
</ul>

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

<entry>
<title>CSS: Text content. Index</title>
<id>urn:uuid:1550103f-4481-4e0a-8e53-2cc456be2b73</id>
<updated>2026-08-14T17:54:18-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/css_text_index.html">CSS: Text content. Index</a></li>
<li><a href="http://xahlee.info/js/css_user-select.html">CSS: user-select</a></li>
</ul>

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

<entry>
<title>CSS: !important</title>
<id>urn:uuid:98694bf7-0a63-4947-8b34-20e3a54a5852</id>
<updated>2026-08-13T23:31:54-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/css_important.html">CSS: !important</a></li>
<li><a href="http://xahlee.info/js/css_scope_proximity.html">CSS: Scope proximity in cascade</a></li>
</ul>

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

<entry>
<title>CSS: @scope at-rule</title>
<id>urn:uuid:f17d78ff-d9b6-4149-9d78-500b37535746</id>
<updated>2026-08-13T18:53:12-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/css_at_scope.html">CSS: @scope at-rule</a></li>
</ul>

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

<entry>
<title>CSS Complexity PhD. (2026)</title>
<id>urn:uuid:4b37986e-ecc8-43b3-aa8d-8141ed3b3942</id>
<updated>2026-08-11T23:43:15-07:00</updated>
 <content type="xhtml">
 <div xmlns="http://www.w3.org/1999/xhtml"><section>

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

<ul>
<li><a href="http://xahlee.info/js/css_complexity_phd.html">CSS Complexity PhD. (2026)</a></li>
</ul>

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

<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: 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>
