<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Mohammad Honarvar — Notes on type and the page</title><description>Notes on type, space, bilingual pages, and what a scene costs.</description><link>https://mh-honarvar.github.io/</link><language>en</language><item><title>The author is the about page</title><link>https://mh-honarvar.github.io/en/blog/author-and-trust/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/author-and-trust/</guid><description>The about page is the author: Mohammad Honarvar, the portrait at /portrait.jpg, and Telegram @MH759. The page does not invent a public biography.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>persian</category><category>typography</category></item><item><title>The link you send is one language</title><link>https://mh-honarvar.github.io/en/blog/sharing-in-two-languages/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/sharing-in-two-languages/</guid><description>Copy, Telegram, and X send only this page URL. og:locale is fa_IR or en_US, and hreflang for the other language is written only when that twin file exists.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>bilingual</category><category>persian</category></item><item><title>The HTML map is a page you can read</title><link>https://mh-honarvar.github.io/en/blog/the-html-map/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/the-html-map/</guid><description>The HTML map at /fa/map/ and /en/map/ groups pages, the topics, every note in that language, and two cases. A new post is on the map after the next build.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>static</category><category>bilingual</category></item><item><title>Up to three notes that share a tag</title><link>https://mh-honarvar.github.io/en/blog/the-next-article/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/the-next-article/</guid><description>Related notes are at most three same-language posts that share a tag, ranked by shared tags and then by date. The previous and next links are a separate list.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>reading</category><category>rtl</category></item><item><title>A topic page is not the blog index</title><link>https://mh-honarvar.github.io/en/blog/topic-hubs/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/topic-hubs/</guid><description>A topic page lists a few notes on purpose. /en/topics/rtl/, /type/, and /speed/ are not the blog, and the Persian hubs are separate addresses.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>bilingual</category><category>rtl</category></item><item><title>The words are in the document first</title><link>https://mh-honarvar.github.io/en/blog/visible-before-motion/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/visible-before-motion/</guid><description>The reveal class is visible by default. Only html.is-motion hides those lines, and that class is added when home or projects actually start animating.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>performance</category><category>reading</category></item><item><title>The heading does not wait</title><link>https://mh-honarvar.github.io/en/blog/first-screen/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/first-screen/</guid><description>The home heading is already in the HTML. The intro canvas keeps to the free space beside it, and skip works at once, before the font or the particles.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>performance</category><category>motion</category></item><item><title>Focus starts where the reading starts</title><link>https://mh-honarvar.github.io/en/blog/focus-and-rtl/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/focus-and-rtl/</guid><description>The skip link is first in Tab order and uses inset-inline-start, so on a Persian page it sits at the right. The focus ring does not invent a second edge.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>rtl</category><category>focus</category></item><item><title>The face swaps. The line stays.</title><link>https://mh-honarvar.github.io/en/blog/font-display-and-persian/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/font-display-and-persian/</guid><description>Persian pages set Vazirmatn first for fa-IR. Inter on this site is Latin and Latin-extended only, and both variable faces declare font-display: swap.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>typography</category><category>persian</category></item><item><title>Persian digits are not a font feature</title><link>https://mh-honarvar.github.io/en/blog/persian-numerals-and-fonts/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/persian-numerals-and-fonts/</guid><description>Persian digits here are fa-IR characters drawn by Vazirmatn. Inter omits that range, OpenType never swaps the figures, and GitHub stars stay Latin.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>numerals</category><category>rtl</category></item><item><title>The measure of a line</title><link>https://mh-honarvar.github.io/en/blog/reading-measure-and-rhythm/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/reading-measure-and-rhythm/</guid><description>How this site sets the reading line: a 70ch article column, line-height 2 for Persian prose, and a drop cap that only English essays may use.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>typography</category><category>reading</category></item><item><title>The translation is a second file</title><link>https://mh-honarvar.github.io/en/blog/separate-locale-routes/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/separate-locale-routes/</guid><description>An hreflang pair is the same filename in the other language folder. A tag archive is indexed only when that name is in tagPairs.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>persian</category><category>bilingual</category></item><item><title>The canonical address is the page itself</title><link>https://mh-honarvar.github.io/en/blog/two-language-urls/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/two-language-urls/</guid><description>Persian and English are two files. hreflang is emitted only when the twin exists, and each page’s canonical URL is its own address, not the other language.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>bilingual</category><category>persian</category></item><item><title>What a static page owes the reader</title><link>https://mh-honarvar.github.io/en/blog/what-a-static-page-owes-the-reader/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/what-a-static-page-owes-the-reader/</guid><description>A static Astro page owes the sentence first: HTML already built, fonts that swap in, and no Three.js, GSAP, or Lenis billed to the essay itself.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>static</category><category>performance</category></item><item><title>When the animation stays out</title><link>https://mh-honarvar.github.io/en/blog/when-to-skip-the-animation/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/when-to-skip-the-animation/</guid><description>GSAP and Lenis stay unloaded on articles and whenever reduced motion is set. The home intro can be skipped at once, before the particles finish.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>performance</category><category>motion</category></item><item><title>Direction does not finish the page</title><link>https://mh-honarvar.github.io/en/blog/why-css-direction-is-not-enough/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/why-css-direction-is-not-enough/</guid><description>dir on the html element sets the line’s start, not the font, the digits, or the canvas. Gradients, transform origins, and a few ltr islands stay manual.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>rtl</category><category>persian</category></item><item><title>Two routes, not a flipped page</title><link>https://mh-honarvar.github.io/en/blog/persian-rtl-interface/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/persian-rtl-interface/</guid><description>How this site keeps Persian and English apart — separate URLs, direction, Vazirmatn, and a solar calendar — without pretending a missing translation exists.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>rtl</category><category>typography</category></item><item><title>This site</title><link>https://mh-honarvar.github.io/en/blog/this-site/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/this-site/</guid><description>Mohammad Honarvar’s personal site, static in Astro, TypeScript, and Three.js. Persian and English are two addresses, and client work is not written up here.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>web</category></item><item><title>Type, space, and the motion of a page</title><link>https://mh-honarvar.github.io/en/blog/type-and-space/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/type-and-space/</guid><description>Font weight, Persian line height, and motion on this site — Vazirmatn, Inter, word-level splits, and when Lenis is allowed to load.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><category>typography</category></item><item><title>A static page, and when the scene earns its keep</title><link>https://mh-honarvar.github.io/en/blog/static-pages-and-webgl/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/static-pages-and-webgl/</guid><description>This site is a static Astro build. Three.js runs on the home hero and the projects city, not on essays — and the intro can be skipped at once.</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate><category>webgl</category></item><item><title>Put right-to-left in on day one</title><link>https://mh-honarvar.github.io/en/blog/rtl/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/rtl/</guid><description>Persian and English here are two pages from the start. Direction, Vazirmatn, and the private card arrive with that layout, not as a patch added at the end.</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate><category>rtl</category></item><item><title>Why I rebuilt this site</title><link>https://mh-honarvar.github.io/en/blog/hello-world/</link><guid isPermaLink="true">https://mh-honarvar.github.io/en/blog/hello-world/</guid><description>The first post on this blog: the site is static Astro and Three.js, and motion loads only when that page asks for it and reduced motion is off.</description><pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate><category>design</category><category>web</category></item></channel></rss>