Hey!

I am Finley. James Finley, specifically— though the specificity of that is low too as “James” is the most common name amongst Finleys.James Finley, specifically. I am a Christian, a father of three, a software engineer, an amateur instrument builder and woodworker, and a bard.

Featured Articles

Subgrid Changes Everything

For the frontenders out there, you’ve likely seen the news. Subgrid has shipped. It came to Firefox back in 2019, to Safari last year, and now Chrome has shipped it. If you haven’t been following, let me catch you up.

Tables

I got my starts in web development back around the turn of the century. Which was not that long ago. Promise. In those *barf* 20+ years, I have seen every major shift in how we lay out websites. When I started, we used tables still. It was gross, but we had no choice.

See the Pen Table Layout by James Finley (@thefinley) on CodePen.

For a table-based layout, you would start with a table to lay out your columns and rows and then nest child tables until you died in a nest of unmanagable code so you could get close to a complex layout. Luckily we never even considered people being on small screens back then.

Floats

At the end of the 1900’s— I just made a lot of people hate me— we got CSS and were told that it was for styling and format, while HTML was for semantics— describing the text and content of our page. Fair, but it had no true layout system. The closest it had was floats, which were really meant to allow you to have text wrap around an image. But we wanted a 6 column layout. So grid systems like 960.gs and Bootstrap were born to allow us to use utility classes to layout pages. Along with that, we entered an era where vertical was problematic— having all your columns match height in a row required very gross tricks. Oh, and clearfixes. Look it up if you need a refresher.

But, our HTML became a lot cleaner as we got to write less code and allow CSS to do it’s thing.

See the Pen Float Layout by James Finley (@thefinley) on CodePen.

Flexbox

For most of the 2000’s we got used to laying out pages using grid systems built on floats. At the end of the 2000’s, we got our next big shift: flex box. And right in time for the Responsive Web movement. Chrome rolled out support in 2010, Safari in 2008, Firefox in 2006. IE got it with version 10 in 2012, which truly opened us up to use it.

See the Pen Flexbox Layout by James Finley (@thefinley) on CodePen.

Flexbox getting solid support and version usage by 2013-2015 meant we could finally easily center things vertically and horizontally for the first time since tables. Over a decade of CSS and no real layout system, no we had one, but we also had grid right on the horizon.

Grid

IE was first to implement Grid in 2015 to the surprise of everyone. This was when Microsoft really started to show signs of caring for web developers and supporting standards with Edge 12. Where flexbox worked well for layout elements out in one dimension— either column or row— grid was a real, true two-dimensional grid system built right into CSS. March 2017 grid shipped in Chrome, Firefox, and Safari. All at once within weeks of each other.

See the Pen Grid Layout by James Finley (@thefinley) on CodePen.

Instead of needing complex utility functions that did math, we now could tell a cell in a grid to start at column 1 and span 3 columns. And this has been are last 6 years of web development. I’ve been in this game for 20 years. Grid is a beautiful thing.

But.

Subgrid

The original spec, from my understanding, included something called subgrid and it was dropped from the original release. You see in the demo above of grid, the grid can only be used by direct children of the element with display: grid. For grandchildren, they are out of luck. Remember us nesting tables back in the 1900’s? Yeah, we had to go back to that. You have a six-column layout with a cell taking up four columns of that. You want to have four items inside that each take up one column? Yeah, those items don’t know about the grid, so you have to establish a four-column grid on their parent and use the calc function to mastery to get your gaps to align. Subgrid was supposed to allow you to pass the grid onto the children of a grid cell.

And now we are caught up to the present. Subgrid has shipped. Browser usage stats are going up. The demo below will work in anything after Chrome 117, Safari 16, and Firefox 17. Edge will get it soon, from my understanding.

See the Pen Subgrid Layout by James Finley (@thefinley) on CodePen.

Now we can truly lay out pages where everything sits in one grid. Blocks on the page can be logically and semantically separated while not making layout complicated and can still internally rely on one grid.

See the Pen Complex Subgrid Layout by James Finley (@thefinley) on CodePen.

Each of these major eras of web layout have changed the way we think, the amount of code we write, and what designers are able to design. During the float era having three equal height columns was a PITA. Vertically centering something was too. Grid allows some truly complicated layouts that we are still not scratching the surface on, but in many ways it was hampered by the lack of subgrid support for the last six years. Subgrid changes everything once again and I am more than excited for this new era in web layout design.

When the enemy says I’m done, I’ll lift my praises
When my world come crashing down, I’ll lift my praises high
‘Til the darkness turns to dawn, I’ll lift my praises
I choose to worship, I choose You now

Sometimes the dark is darker than dark. But as Psalm 139 reminds us, “even the darkness is not dark to you; the night is bright as the day, for darkness is as light with you.” The darkness cannot steal my song. Nothing can. Storms, floods, armies, and persecution can try but none of it can take my song. Why? Because it comes from the Lord. The Lord that is over all. So, as Chris Llewellyn beautifully writes, “I build my alter right here and now. In the midst of the darkest night it won’t burn out.”

The phrase means different things to different people. By and large, it has been the way of the West of centuries. Put a different way, most areas of disagreement do not constitute separation.

We deal with this in the church all the time, where Albert Mohler divides theological arguments into three tiers. First tier issues being orthodoxy and worth saying “you are not a Christian” over. These are matters of heresy. Second tier issues are matters that divide denominations, such as paedobaptism. We agree that we are both Christians, but we might not be able to go to the same church together. Third tier are the, what I call, long-beard issues. These are topics that are fun to discuss and debate, but have no affect on our salvation.

I say this to say that we need to think about what hills are worth dying on and realize that the majority of hills are not worth such acts.

This leads us back to the phrase: agree to disagree. When we agree to disagree on a specific topic, sometimes that looks like leaving the topic lay, knowing there is disagreement and being okay with it. There are other topics to discuss, after all. Other times we respectfully continue conversation around the topic because of a mutual desire to understand people we disagree with.

But the truth of the matter is that the existence of agreeing to disagree means that there are topics we cannot agree to disagree on. See first tier topics. For a Christian, this doesn’t mean that you hate— or show any less love for— the person you disagree with, it just means the disagreement is on a topic important enough to cut certain ties— in the context of these disagreements, the tie is the church, this individual is not allowed to lead or participate in certain ways in one’s church and could see church discipline, for instance. For instance, sometimes a disagreement can be on a topic important enough to prevent an individual from being around your children.

These are healthy things to do, but one has to weigh the importance of topics. As a Christian, we have to weigh these things against the Bible and our duties therein.

As a Christian, we are to go and spread the Gospel. To do that, you will be encountering people that disagree with you on the topics that are of most importance to you as a Christian every single day. If I cut ties with everyone that believed that children with Down Syndrome should be rooted out in the womb and murdered, I would be cutting ties with a lot of people that need Jesus. This ends in me being Amish, sequestered to a hundred acres in Arkansas with no Internet, no phone, and no contact with the outside world. Just me, my woodshop, and lots of laughing kids. Actually, that sounds great. But my Lord commands that I engage with the world.

But that is the Christian worldview. Lovingly living alongside men and women that disagree with us is part of the plan. It’s how we spread the Gospel. The worldview that is spreading through the West like wildfire is almost Darwinian: destroy those that you disagree with. Why would you continue to love someone that disagrees with you? You don’t need that kind of negativity in your life. And the result is that the bar for what is worth destroying a relationship, or possible relationship, is much lower for many. What used to clearly fall into “you are Jewish and I am Christian, but we can still be friends,” now lands in “you are Christian and I am trans, so we cannot be friends and I’ll call your manager on Monday to demand that they fire you.”

This is a worldview difference that is stark as we enter into an era of post-Christian society. Where a couple decades ago the atheists followed Christian principles, the new atheists most certainly do not. For many of them, not only are they not okay with agreeing to disagree on their topics, they will chase you down and harass you until you agree. That will come in the way of threats of violence against you, threats against your job, threats to destroy your reputation, threats to go after your children, and worse.

Some of those reading this have seen this form of disagreement either personally or close friends. Others think I am being sensational and hyperbolic. I assure you I am not. All those types of threats I mentioned in the last paragraph I have experienced personally in the last year.

Please Christian, be aware that persecution is coming in the States. If your job hasn’t been threatened yet, it will be sooner or later. You will get a call from HR and be told to defend yourself against baseless claims. If your children haven’t been used as collateral to get your obedience yet, they will be sooner or later. Hold to your faith and show grace in these situations. Look to the martyrs of old. Don’t waiver in your faith or your testimony.

Understand, Christian, that we are dealing with worldview differences so often now that it is becoming normal. Try to be peaceable in all things and know that many in our modern world have no intent on doing anything of the such. You are now the counterculture.

Ramblin’