J—P

Currently accepting new projects and available for hire.

Responsive Auto-Fill Grid with Tailwind Utility

This custom Tailwind utility creates a responsive grid that automatically fills the available space with as many columns as possible. The minimum column width is controlled by the number you pass after grid-cols-fill-. Perfect for card layouts, galleries, or product grids without hardcoding breakpoints.

@utility grid-cols-fill-* {
  grid-template-columns: repeat(
    auto-fill,
    minmax(min(calc(var(--spacing) * --value(integer)), 100%), 1fr)
  );
}

Usage Example

<div class="grid grid-cols-fill-48 gap-4">
  <div class="bg-gray-200 p-4">Item 1</div>
  <div class="bg-gray-200 p-4">Item 2</div>
  <div class="bg-gray-200 p-4">Item 3</div>
  <div class="bg-gray-200 p-4">Item 4</div>
</div>

This will create as many columns as fit in the container, each at least calc(var(--spacing) * 48) wide, expanding to fill remaining space.

Convert Image to WebP

Quickly convert a PNG image to the modern WebP format using the cwebp CLI tool. This command sets the output quality to 80%, striking a good balance between file size and visual clarity…

Find Dirty Git Repositories

A tiny shell script that recursively scans a directory for Git repositories with uncommitted changes, nicknamed dirgit—a play on words combining "directory", "dirty", and "git".

How to Reset a Single File in Git

If you've made changes to a file and want to discard them, you can use git checkout to restore it to the version from the last commit. This is useful when you want to undo changes that haven't…

Adjust Color Opacity

Easily create a semi-transparent version of any color using color-mix(). This CSS function blends two colors in a specified ratio. In this example, currentColor is mixed with transparent at 50…