June 4, 2021

Updated translations.
Hopefully unnecessary alignment properties.
Composited animation for data updates.
Unicode chars in #Properties triggered property update on load.
Label ads to comply with Acceptable Ads.
Check for missing articles in ZIM build workflow.

June 2, 2021

Build changelog from git on release.
Less line breaks in build. Colored headers check.
Dimmer colors. Resize SVG blocks to use rgba outline.

May 31, 2021

Missing underscore in writeup link from closeup.
Fix shine animation-duration specificity problem.
Remove anti-flicker fix for Blink-based Edge.
Force breaks on series key for Russian.
Avoid chromium bug 1111799 with min-width: 0.
Preload hydrogen into closeup figure.

May 30, 2021

Update node package-lock.
Wait for transition instead of setTimeout to focus search.

May 28, 2021

Use localStorage instead of cookie for Theme and Layout.

May 27, 2021

Ugly mod_rewrite so /anything?lang= gets 404'd.
Isotope load flashed inverted abbr color animation.
Going from tab to disabled isotope property didn't clear colors.
Bring subpage footers into sync with main site.

May 26, 2021

Localize more help text. Almost complete Chinese translation.
Separate ZIM for zh and zh-tw.
Use local name of writeup source in place of weight.
Stop responding to any URL with lang querystring.
Change ZIM output dir and warn about old archives.
Change writeup expiry, fix 404, wider margins.
Separate dev and prod manifests. Add screenshots.

May 24, 2021

Blank properties when fanned isotopes closed.
Blank properties when fanned isotopes closed.

May 23, 2021

Revert tab-active to LinkText until color-scheme widely supported.

May 22, 2021

Fix wrong Wikipedia names for group 15-17.
Dark mode for Wikipedia with proper frame border color.
Don't show ads to Microsoft Store purchasers.
Use color-scheme and style overrides to make Wikipedia dark.
Link states and make hoverable like series.
Await idle callback before stats.

May 21, 2021

Wait for idle before removing hidden tab stops.
Only draw arrows while Electrons is active tab.
Update sliders as fast as rAF permits.
Change wide animation to await rAF for each step.
Update closeup and aside as fast as rAF permits.
Drag isotope snake as fast as rAF allows.
Break up text resizing by awaiting rAF and rIC.

May 20, 2021

Generate sitemap file statically with Bash.
Use requestAnimationFrame for Chrome resize bug.
Upgrade node packages.
Only flash help text if it changed.
Stop orbital at a lower speed and only flick horizontally.

May 19, 2021

Disable writeup external links in fullscreen integration.
Flash weights on change.
Use optional chaining for properties.
Old: Suppress Analytics events.
Open all external iframe links in new tab.
Min-height for OL caused mobile CLS as it filled in.
Orbital simultaneous yaw/pitch and less momentum on release.

May 18, 2021

Report Web Vitals to Analytics.
Verify content-type and language headers after build.
Old: Send 404 for bad ?lang queries.
Use Apache vars to make moving DocRoot easier.

May 17, 2021

Collisions with /etc/mime.types caused .pt not sent as HTML.
Properly disable logarithmic selection for melt/boil.
Color Electrons/Configuration by electrons in highest energy orbital.
New orbitals with roll and axis labels.
Custom accept-language parser matches strict for zh only.

May 16, 2021

Map zh->zh-hans and zh-tw->zh-hant. Send 404 for bad ?lang queries.
Include bash header for shell scripts.
Cache SVG on install. No initial shine to lower FID.

May 15, 2021

Translate some property help text.
Color expanded electron config by Madelung exceptions.
Hope that overflow hidden wasn't doing anything important.
Use crossorigin so manifest on .dev doesn't need exception.
Update Patreon PHP library to 1.0.
AdSense supports 4 new languages.
Hide passwords. Move server to build. Robust cache purge.

May 14, 2021

Better footer containment when screen wider than topbar.
Support in Patreon auth flow.
Use CSS instead of JavaScript for fullscreen integration customization.
Add descriptions to images directory listing.

May 13, 2021

Smooth collapse of ad to adblock notice.
Switch to basic auth so lighthouse can visit .dev by URL.
Shrink parenthesis text in image. Move image PHP to dev.
Make Cloudflare workers a local node module.

May 10, 2021

Error e.key undefined after clicking order number field?
Search on mobile RTL langs expanded page.

May 9, 2021

Treeshaking removes code relying on transitionend.
Try Simple Analytics but load all stats after onload.
Make Bugsnag a local module. No separate d3 node build.

May 7, 2021

Donate cookie SameSite and compatibility with
Handle several errors with catch.

May 6, 2021

Upgrade npm packages including d3 to 2.0.
Rename "stage" directory to "dev".
Error if color picker left open during navigate back to Series.
Track null property_input error.

May 5, 2021

More obvious disabled isotope property click warning.
Replace gray notch with blue outline to indicate hover and focus.
Move expanding menu footer to bottom of new narrower header.
Table relied on names to expand it to width in sidebar. Obvious in zh.
Define JavaScript copyright banner inline.
Old: Don't index. Don't detect orientation. Use local Wikipedia.
Create sourcemaps and upload to Bugsnag.
Top/sidebar toggle rounded correctly on RTL languages.
Remove manual brotli and double extension MIME tricks.
Globe icon for language select.

May 1, 2021

Move AdSense from head deferred to after onload.

April 30, 2021

Undefined variable lang causes error on install.
Reserve 2/3 of table width for height on mobile to reduce CLS.

April 29, 2021

Preload extra JS module.
Email and all link colored icons are on-site links.
Race between AdSense JS and me to define window.adsbygoogle.
For production always run PHP from stage dir.
Import extra from required. Load 3D orbitals only after Electrons tab clicked.
Build to either staging or production.
Rollup banner plugin dependency update.
Separate log files for staging and production.
Phone home only 10% of the time. Ditch domain lock.
Shave blocking time by not triggering reflow after measuring scrollWidth.
Add share icon. Shrink closed ads notice.
Footer icons for Patreon, Etsy, ACS, questions, image.
Prepare passworded staging environment under

April 28, 2021

Send hovers to nearest LI if they land on A.
Inherit font size for order number form.
Don't force reload on new version available.
Ditch links without "https:" anti-pattern.
Different max height for mobile ads with shortened adblock text.
Load AdSense in head with defer. Load Analytics with defer.
Load extra JS directly instead of after onload.
No selecting on slider. Confine selection to individual elements.
Larger wide icon. Exact app fit for no ads or footer.

April 26, 2021

Fix Patreon integration errors. Hide ads from Coil payers.
Remove Plausible and try Cloudflare analytics.
Narrower vertical margin than horizontal on Ptable logo to shrink header.
Under Isotopes clarify count and write-up with "units."
Localize many hardcoded strings.
Remove styles from system forms UI since handled by color-scheme.
Use color-scheme with dark mode and pass it to writeup windows.
Replace --unimportant theme color with CSS named color GrayText.
Inject real anchors for "Wikipedia" in so links get default color.
Update package dependencies.

April 18, 2021

Smaller header height but larger header text.

April 16, 2021

Replace tab-active color with LinkText. Box outline for wiki, underline for page leave.
Subpage text cleanup.

April 5, 2021

Remove unnecessary align: ends and explain why others remain.
Precise footer SVG spacing.

January 29, 2021

Link in figure lit in dark mode before hover.
Use Yarn links for about easter eggs.

November 23, 2020

Convert units in Mathematica first.

November 20, 2020

Convert Mathematica values to unit before inserting into database.
Exact poster order match. SVG footer icons. Link outlines.

October 30, 2020

Hide ads button shows adblock message.

October 27, 2020

Bring back ads. Native sharing API.

September 15, 2020

Prevent tabbing to focusable arrow holders when not on Electrons tab.
Decompose capitalize and remove space function to apply to subset.
Add Plausible stats to see Analytics underreporting.

September 14, 2020

Prevent Firefox from navigating to http://0.0.0.atomic on drag out.
Put back .json on properties. Always include querystring in canonical.
Cloudflare worker reads accept-language on /, subrequests ?lang, adds vary accept-language.

September 8, 2020

Minify and phone home.

September 6, 2020

Add electron energy levels to SVG image.

September 4, 2020

Generate SVG images for every language and redirect old PNGs.

September 3, 2020

On other tabs, save last hovered orbital and activate it when switching.
If no min/max (Firefox < 75, Chrome < 79), table fits to width only.
Key region positioning in wide without min/max().

September 2, 2020

Organize orbital JS for collaboration.

August 31, 2020

Foreign translations for new layout's text.
If visiting lang=en, cache that instead of / and always start PWA at ?lang=.
Use SVG favicon anywhere possible. Add features to about.
Move textfit after paint saves a layout shift.
Defer Bugsnag. Should still load before module scripts in order.

August 30, 2020

Encode hash URLs or hash checker won't match them in other languages.
Make aside styles inline and Property default tab to minimize Google CLS.
Trigger Chrome writing-mode bug refresh on height changes too.
Some browsers support ES6 modules but not IntersectionObserver.
Firefox restore state sends input before checkbox checked?
Handle 404s from compound race searches. More error reporting.
Stop slider +/- repeat even if left the button boundary.
Padding on topbar ruined offset for writeup animation origin.
Use clicks/tab to change orbital instead of hover.
Link to redirect with new YouTube feature demo.
Google Images can't see height/width specified in SVG style.

August 29, 2020

Use JMol-variant CPK colors on Compounds tab.
Keep helium liquid at 0K with null melt. Remove unnecessary scinot.
ResizeObserver still stuck in loop. Try to catch import() error.

August 28, 2020

Unregister service worker on www domain. Properties URL didn't match cache.
Redirect www to non-www. Mitigate CORS problem.

August 27, 2020

Hold down +/- to repeat clicks to temp and year sliders.
Halt spin on new orbital since performance sluggish. Squashed on mobile.
Fix helium solid at 0K and sync min/max limits to State At input.
Add specific activity to isotopes database.
Broken compounds default view and 404 for old.
Attach ResizeObserver to window instead of series legend to avoid loop.
Disable Writing mode Chrome bug mitigation stuck in ResizeObserver loop.
Norsk has locale with first two letters different from ISO lang code.
Prevent dragging of isotopes if writeup is selected.
Slimmer search choice on sidebar and consistent font sizes in property key.
If search matches both atomic and property, don't show choice.
Orbital now slows to a stop.

August 26, 2020

Some module browsers don't support caches or serviceWorker.
Move subpages to /new since old links there. Replace PNG image with SVG.
Couldn't use Enter to add element to compound.
Style race could show decoy Compound tab for Isotope.
Move images from old to new.

August 25, 2020

Fix bad tab hash error. Point old to new subpages.
New size scaled orbital. Hide ads, noscript notice.
Search only presents atomic/property option if ambiguous results.
Force scientific notation on Safari. Cache heavy on standalone.

PtableĀ® is a registered trademark of Michael Dayah