{"id":51317001,"url":"https://github.com/tiennm99/xr2s25fe","last_synced_at":"2026-07-01T08:30:59.125Z","repository":{"id":358414676,"uuid":"1241294525","full_name":"tiennm99/xr2s25fe","owner":"tiennm99","description":"Personal device-upgrade datasheet — iPhone XR (2018) to Galaxy S25 FE (2025), rendered six ways: blueprint + five Apple-style formats.","archived":false,"fork":false,"pushed_at":"2026-05-17T09:21:28.000Z","size":194,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-17T10:38:16.864Z","etag":null,"topics":["apple-to-android","blueprint","data-visualization","device-comparison","html-css","iphone-xr","samsung-galaxy-s25-fe","static-site","svg"],"latest_commit_sha":null,"homepage":"https://tiennm99.github.io/xr2s25fe/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tiennm99.png","metadata":{"files":{"readme":"README.md","changelog":"newsroom.html","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-17T07:41:33.000Z","updated_at":"2026-05-17T09:21:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tiennm99/xr2s25fe","commit_stats":null,"previous_names":["tiennm99/xr2s25fe"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/tiennm99/xr2s25fe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiennm99%2Fxr2s25fe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiennm99%2Fxr2s25fe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiennm99%2Fxr2s25fe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiennm99%2Fxr2s25fe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tiennm99","download_url":"https://codeload.github.com/tiennm99/xr2s25fe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiennm99%2Fxr2s25fe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34999791,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple-to-android","blueprint","data-visualization","device-comparison","html-css","iphone-xr","samsung-galaxy-s25-fe","static-site","svg"],"created_at":"2026-07-01T08:30:56.073Z","updated_at":"2026-07-01T08:30:59.117Z","avatar_url":"https://github.com/tiennm99.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Device Evolution // iPhone XR → Galaxy S25 FE\n\nPersonal upgrade datasheet — seven-year device gap, Apple to Samsung, rendered as a technical blueprint.\n\n---\n\n## What\n\nA personal upgrade record documenting the hardware delta between an iPhone XR (Oct 2018) and a Samsung Galaxy S25 FE (2025). Not a review. Not a recommendation. A datasheet — the kind you'd produce if you were filing a component change order and needed to justify every dimension that changed.\n\nRendered **six different ways**. Same facts, same SVG geometry — six document traditions. `index.html` is a selector that opens any of the six. Each format is a self-contained static HTML file. No framework, no build pipeline, no server.\n\n---\n\n## Why\n\nSeven years on the same device generation is a long time in silicon. The XR shipped with a 7nm A12, a single 12MP camera, 3GB of RAM, and an LCD panel. The S25 FE ships with a 4nm Exynos 2400e, a 50MP triple-array, 8GB of RAM, and a 120Hz AMOLED panel. The ecosystem also flipped: Lightning → USB-C, iOS → Android, Apple custom cores → ARM Cortex reference cores.\n\nThe page exists to map those deltas precisely — not to editorialize about which is better.\n\n---\n\n## Stack\n\n| Layer | Choice |\n|-------|--------|\n| Markup | Semantic HTML5 |\n| Style | Vanilla CSS, inline `\u003cstyle\u003e` block |\n| Graphics | Inline SVG (no external image files) |\n| Fonts | Google Fonts — Inter + JetBrains Mono (loaded via `\u003clink\u003e`) |\n| JS | None |\n| Build | None |\n| Dependencies | None |\n\nEach format is one file. Total external requests per page: 1 (Google Fonts CDN) or 0 (the Apple-style formats lean on system SF Pro and ship without web fonts).\n\n---\n\n## Run Locally\n\n```bash\n# macOS\nopen index.html\n\n# Linux\nxdg-open index.html\n```\n\nOr, if your browser blocks `file://` for font loading:\n\n```bash\npython3 -m http.server 8080\n# then open http://localhost:8080\n```\n\n---\n\n## Formats\n\n| File | Format | Archetype |\n|------|--------|-----------|\n| `index.html` | Selector hub | — |\n| `blueprint.html` | Engineering datasheet | architectural elevation drawing (origin) |\n| `cupertino.html` | Cupertino Edition | apple developer-docs / HIG |\n| `newsroom.html` | Newsroom Long-Read | apple.com/newsroom editorial |\n| `keynote.html` | Keynote Spec Sheet | apple product page (full-bleed long-scroll) |\n| `compare.html` | Compare-Page Purist | apple.com/shop/buy-iphone/compare |\n| `diptych.html` | Two-Tone Diptych | vertical split, 2018-vs-2025 |\n\nEach format contains the same five logical sections — Elevations, Spec Matrix, Capability Deltas, Architecture, Timeline — restyled per its source tradition. The §00 plot-erase-replot animation is preserved in every format except `compare.html` (compare pages don't animate) and demoted in `newsroom.html` (single article-figure).\n\n---\n\n## Design Notes\n\nThe aesthetic is engineering blueprint, not consumer tech:\n\n- **Paper**: warm off-white `#FAFAF7` — the color of a printed datasheet left in a drawer\n- **Ink**: near-black `#1A1A1A` — not pure black, avoids harshness on warm paper\n- **Accent**: single steel-blue `#3D5A6C` — used for callout lines, dimension arrows, section headers\n- **Grid**: faint blueprint grid underlays the page at low opacity\n- **Type**: Inter for prose labels, JetBrains Mono for all spec values and callout text\n- **Dimension style**: numbers formatted as engineering callouts with leader lines, not tooltip popovers\n- No neon. No LED glow. No RGB gradients. No dark mode.\n\nThe constraint is intentional: one accent color forces visual hierarchy through weight and size, not hue.\n\n---\n\n## Spec Deltas at a Glance\n\n| Dimension | iPhone XR (2018) | Galaxy S25 FE (2025) |\n|-----------|-----------------|----------------------|\n| Display | 6.1\" LCD, 60Hz | 6.7\" AMOLED, 120Hz |\n| RAM | 3 GB | 8 GB |\n| Battery | 2942 mAh | 4900 mAh |\n| Charging | 18W Lightning | 45W USB-C |\n| Cameras | 1 (12MP wide) | 3 (50MP + 12MP + 8MP) |\n| Network | 4G LTE | 5G (sub-6) |\n\n---\n\n## License\n\nApache-2.0. See [LICENSE](LICENSE).\n\n---\n\n## Author\n\n[tiennm99](https://github.com/tiennm99)\n\n---\n\n*Built 2026-05-17.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiennm99%2Fxr2s25fe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiennm99%2Fxr2s25fe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiennm99%2Fxr2s25fe/lists"}