Development, design & everyday life
Blog
16 articles
More apps. Who connects the work?
Each tool can do its own job while people still move information, reconcile dates, and chase progress between them. A new interface earns its place by taking on that coordination.
6 min read
Native CSS @function: calculate a value, then examine its failure modes
A spacing function explains arguments, call-site evaluation, and result. It also shows why a bad argument may not fall back to the previous CSS declaration—and when adoption is worth it.
6 min read
What is this utility still doing for you?
Native APIs can replace some package uses without preserving every behavior. A null value, Node's built-in capabilities, and npm downloads help distinguish removable dependencies from useful ones.
6 min read
AI can build it. Why would anyone switch?
A booking page is ready, but rescheduling still means updating three separate records. That is where I would start deciding what the product needs—and which AI feature can wait.
5 min read
After AI writes the CSS, a framework still has to survive the next change
The first product card is easy to demonstrate. A new brand, a sidebar placement, and intact sold-out and focus states reveal more about a tool's value. CSS history helps explain why.
5 min read
The native CSS @mixin draft: passing a block of styles to its callers
A mixin reuses declarations and nested rules. A card and a notice show what @apply, parameters, and @contents contribute—and what a shared class can already do today.
5 min read
The craft of interface design · Part 5
Information grouping and layout rhythm
Use shared origins, grouping, nearby explanations and progressive disclosure while managing mixed-content row heights.
7 min read
The craft of interface design · Part 6
States and motion feedback
Distinguish selection, press and focus, then connect actions with consistent state cues and interruptible transitions.
5 min read
The craft of interface design · Part 2
The geometry of containers and inserts
Connect narrow gaps, content space, nested corners, shared seams and progress tracks into coherent geometry.
5 min read
The craft of interface design · Part 3
Image edges and avatar groups
Separate image outlines from avatar rings while preserving recognition, overflow handling and usable entry points.
5 min read
The craft of interface design · Part 1
Interface boundaries, surfaces and materials
Separate contours, shadows and surface lightness to understand the work of fine edges, gradients and glass.
7 min read
The craft of interface design · Part 4
Text, numbers and optical alignment
Keep text stable through wrapping, changing numbers, CJK typography and optical adjustments to icons.
7 min read
Series overview
Beyond the AI Look: The Details of Interface Craft
Explore interface craft through six articles on surfaces, geometry, images, typography, composition and feedback, with original studies and working examples.
3 min read
One blog, from Next.js to SvelteKit to Astro
Two migrations kept aron.tw's appearance and features while cutting external search-page JavaScript by about 90%. Here is what became simpler, what still needed code, and what the navigation measurements actually show.
8 min read
Spring Breeze Shokudo: run a restaurant, get to know a street
An introduction to the pixel-art management game I developed, where shopping, menus, weather, staff, and regulars shape the day's business—and closing time leaves room to talk.
6 min read
When AI takes on the work, what should SaaS charge for?
Klarna's costs, Fin's billing definitions, and Pilot's human review reveal how software firms choose a deliverable—and why a customer's savings do not automatically become a supplier's profit.
6 min read
More apps. Who connects the work?
Each tool can do its own job while people still move information, reconcile dates, and chase progress between them. A new interface earns its place by taking on that coordination.
6 min read
Native CSS @function: calculate a value, then examine its failure modes
A spacing function explains arguments, call-site evaluation, and result. It also shows why a bad argument may not fall back to the previous CSS declaration—and when adoption is worth it.
6 min read
What is this utility still doing for you?
Native APIs can replace some package uses without preserving every behavior. A null value, Node's built-in capabilities, and npm downloads help distinguish removable dependencies from useful ones.
6 min read
AI can build it. Why would anyone switch?
A booking page is ready, but rescheduling still means updating three separate records. That is where I would start deciding what the product needs—and which AI feature can wait.
5 min read
After AI writes the CSS, a framework still has to survive the next change
The first product card is easy to demonstrate. A new brand, a sidebar placement, and intact sold-out and focus states reveal more about a tool's value. CSS history helps explain why.
5 min read
The native CSS @mixin draft: passing a block of styles to its callers
A mixin reuses declarations and nested rules. A card and a notice show what @apply, parameters, and @contents contribute—and what a shared class can already do today.
5 min read















