- CSS
- Responsive Design
- Component Design
Build Component-Responsive Layouts with CSS Container Queries
Use CSS container queries to switch a component based on its own available width, making reusable cards more responsive than viewport-only rules.
Articles
Practical notes that explain implementation steps, the reasons behind each choice, and the boundaries most likely to cause problems.
Use CSS container queries to switch a component based on its own available width, making reusable cards more responsive than viewport-only rules.
Use CSS clamp() to define minimum, fluid, and maximum type sizes without multiplying media queries, while keeping text readable.
Learn how to manage colors, spacing, and typography with CSS custom properties so component values stay consistent.
Design a CSS gradient generator with linear and radial gradients, color stops, CSS output, and copy handling.
Use file reading, Canvas conversion, quality control, transparency, and Blob downloads to make a browser-only WebP converter.
Use the color contrast checker implementation to understand relative luminance, WCAG thresholds, and boundary cases.
Validate JSON, lengths, Origin, request size, and error responses at a Cloudflare Pages Functions contact endpoint.
Generate BlogPosting and BreadcrumbList JSON-LD in a shared Astro head component and verify the built HTML.
Use draft and pubDate validation to keep unpublished Astro posts out of lists, static routes, and sitemaps.
Detect browser language, offer a non-modal language notice, and respect a visitor choice with localStorage.
Set self-referencing canonicals, language URLs, and x-default consistently to prevent multilingual URL and reference mistakes.
Use Astro i18n with Japanese as the default URL structure and English under /en/ without changing existing Japanese URLs.
Stage only selected files and inspect the staged diff to prevent unrelated changes from entering a Git commit.
A record of comparing the repository-managed robots.txt with the public response and confirming Cloudflare-managed content.
A practical way to decide which contact-form settings can reach the browser and which must remain as secrets.
An implementation record of initializing GA4 once in a shared head component while keeping non-production hosts out of measurement.
An implementation record of explicitly rendering Turnstile and confirming its token with Siteverify in a Pages Function.
An implementation record that separates contact-form validation, Turnstile verification, and Email Service REST API calls.
A record of setting up inbound email forwarding for a custom domain, while keeping it separate from the contact form's sending path.
A record of checking the registrar, Cloudflare DNS, Cloudflare Pages, and Astro's canonical URL setting separately.
A record of adding an Astro 404 page and verifying both the visible error screen and the HTTP status in production.
Verify static generation, output HTML, internal links, metadata, and structured data before publishing an Astro blog, separating recorded results from general checks.
Use Conventional Commits prefixes, reviewable change boundaries, and short-lived branches to keep a solo project's history understandable and reversible.
Manage formats, dimensions, and responsive image sizes with astro:assets, prevent image-related CLS, and verify WebP output in generated HTML.
Classify network failures, HTTP errors, and invalid responses, then separate finite retry policy from actionable UI notifications.
Use Flexbox for one-dimensional headers and CSS Grid for two-dimensional card lists, with Tailwind examples and mobile-safe layout constraints.
Use Web Storage safely in SSR projects, validate parsed JSON, and distinguish unavailable storage, quota failures, and serialization errors in TypeScript.
Manage canonical URLs, meta descriptions, Open Graph data, and Twitter cards safely in one Astro component for both static and article pages.
Design a TypeScript fetch wrapper that distinguishes HTTP errors, invalid JSON, and response-shape mismatches while performing runtime validation.
Deploy Astro static output through Cloudflare Pages Git integration, configure a custom domain, and verify build output, canonical URLs, and production settings separately.
Use Tailwind CSS 4 and the Typography plugin to make headings, code, links, and long-form Markdown content readable in an Astro site.
Learn how to validate Markdown frontmatter with Astro 7 Content Collections, keep dates and tags consistent, and retrieve article lists with reliable inferred types.