Site layout is made for desktop screens, 1080p or more!

Check back in fullscreen!

LiminalGFX.com

I've made this website in a few months using HTML, CSS and JS,
treating this tech stack as a rudimentary game engine -
I'd feed it assets and specify delivery and optimization.

Problem:

Social media sites are very restrictive in presentation features and have shady policies.
Website builders have lax policies but are either feature-bloated or feature-limited.

I needed autonomy. I needed control over layout, over expression, form and design.

I had 2 choices: shut my face and accept the status quo- or do something about it.

Idea

I've already dabbled in webdesign a few times, and have 10+ years of game UI experience.
I get a kick from learning new things, especially technical. Can't be harder than NGUI/ uGUI.

Impetus

Josh Kaufman's book, The First 20 Hours has a great chapter about him building his own website.
Derek Sivers had a refreshing take in a conversation with Tim Ferriss. Spoiler: it's not that hard.

Reasoning

Dealing with Unity for the past 15 years making games, understanding technical stuff,
trying out solutions and debugging is second nature. Graphics are graphics, code is code.

Solution:

Port my game UI knowledge to web design and create my own framework.
Incorporate libraries, systems and functions or build my own.

I like a good custom engine. I don't care as much if it's got the latest cutting edge tech, but I do care about how it feels and how it runs.
One small hiccup tho: I'm an artist, not a programmer. The most I've ever coded was a "hello world" and a PC Speaker sound sequence in Turbo Pascal 6 when I was 10.
Luckily a portfolio website is just a ton of design with a smidge of functionality and some optimization. All well within my capabilities. Let's put down some base notions:

LGFXTech 1.0:

HTML bones, CSS muscle, JS skin.
Few components, hard to break.

Fancybox5

Part of Fancyapps, hands-down the BEST-feeling lightbox library I could find.
Handles all the modals on this site and the photo and video galleries.


LGFX Grid

A fork of Roman Flössler's GridOverflow, a very robust CSS-only grid system.
Renamed some classes, removed effects and expanded aspect ratios and grid possibilities.


LGFX Comparison

An expansion of Fancybox's lightbox modal-
stacks 2 images and sweep between them with a slider.


LGFX Toolkit

A collection of Javascript functions and aides,
anything that couldn't be done with pure CSS.

⬢ SmoothScroll - mouse wheel acceleration, tries to emulate touch scrolling
⬢ Progress Bar - fixed progress bar at the bottom that also acts as a divider
⬢ Tooltip - a hover tooltip that can display text or images over the page
⬢ Section Highlighter - lights up buttons as you scroll between sections on the homepage
⬢ Overlay Icons - works in conjunction with LGFX Grid, allows you to place icons over grid items
⬢ Video Lazy Loading - sources video thumbnails where available, loads the full video on hover

HTML, CSS

Nothing too complex here, simple tags, a root.css file to keep the core classes together.
Kept components modular and used additive classes wherever possible. Kebab case.

Working in game development made me very sensitive to performance and optimization, I had to make sure this site feels snappy. Streamlined loading, good compression, LODs.

WYSIWYG

100% of the media is uploaded by me so I get full control over what is displayed and how.
I did extensive research to find the most optimal and current formats for each media type.

Batch processing

Before automation, I used ezgif.com for most image conversions as it's very intuitive.
I used Handbrake for video processing and converting all my GIFs to MP4s.

But now I had 13 years worth of media to cull, organize, rename and optimize.
I wasn't gonna drag-and-drop and edit each and every one of the suckers.
I needed something more powerful and scriptable, and good enough.

Enter Powershell7.

I already had it installed since I was dabbling with Hugo.
All I had to do is update ImageMagick and FFmpeg.

Using online documentation and Claude.ai, I cooked some scripts to run in Powershell7 to batch-process the media.
Here's a typical conversion process I used to crush the bulk of the non-hero images into decent fast-loading WebPs:

  • Use ImageMagick to convert and save all images in the folder to WebP, 88% quality:
  • magick mogrify -format webp -quality 88 *

  • Use ImageMagick to resize *.webp to 50% with Bilinear Filtering and 85% quality, and prefix the outputs with "th-":
  • Get-ChildItem -Filter "*.webp" | ForEach-Object { magick $_.FullName -resize 50% -filter Triangle -quality 85 "th-$($_.Name)" }
  • READ THE CODE FIRST. Run the commands on copies of files, in isolated folders.
    I'm not responsible or liable for whatever you do with these scripts.
    If you overwrite your precious masters it's your own fault.

    All fonts used on this website are under the SIL Open License.

    Hand-picked from hundreds, there are my definitive cream-of-the-crop.

    Inter

    by Rasmus Andersson. Variable, has a lab page.
    The best free font available now, not a single bad glyph.


    Figtree

    by Erik Kennedy. Also has a test lab.
    Beautiful, geometric, fun, and variable to boot.


    CalSans

    by Mark Davis.
    Bold, round and exquisitely kerned. Now has a full family.


    JetBrainsMono

    by P. Nurullin. My default VSCode and Notepad++ font.
    Easy on the eyes and so smooth to read.


    D-DIN Condensed

    by Datto, based on Charles Nix's design.
    Best condensed DIN alternative I could find.

    Deployed:

    This website lives on a local work hard drive, has a Subversion repository on a different HDD,
    and gets pushed to the server using Git. I am using Cloud86 for hosting, a super cool provider.

    Feature complete:

    I've managed to check all of the features I wanted.
    I know how each component works. To recap:

    ✔️ Grid-aligned photo and video galleries.

    ✔️ Implemented an intuitive, snappy lightbox.

    ✔️ Added versatile fonts and styles.

    ✔️ Animated thumbnails.

    ✔️ Text/image tooltips.

    ✔️ Breathing background, buttons and borders.

    ✔️ Image comparison slider

    ✔️ Smooth Scrolling, Progress Bar.

    ✔️ Sticky header, breadcrumbs.

    ✔️ Minesweeper homage.

    Known Issues:

    Not responsive, doesn't scale well. I chose fullscreen layout over mobile-friendliness.
    Might need to update Fancybox in the future.

    Bottom line:

    I'm quite happy with how everything looks and feels, and I can expand on this structure.
    I built a solid set of skills, and I'm not putting my livelihood on show with a $40 template.

    Who the hell has the patience and foresight to sink untold hours into making a custom portfolio site? Don't answer that.


    Software:

    Visual Studio Code Affinity Designer Affinity Photo DaVinci Resolve HandBrake FFmpeg Powershell7 Basecamp Subversion Git