Open
Conversation
cb0f876 to
c7af096
Compare
Add col-* and col-md-* classes for explicit column spans. Extends existing .grid with optional 12-column mode.
c7af096 to
9c35d54
Compare
The .grid:has(> [class*="col-"]) rule sets grid-template-columns unconditionally. The media query duplicating the same value was redundant.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds 12-column grid utility classes to the existing
.gridsystem. Maintains backward compatibility with auto-layout grids through explicit opt-in (column classes).Changes
.gridclass with 12-column mode (auto-activates whencol-*classes are present).col-1through.col-12and responsive.col-md-*variantsAPI
Rationale
Aligns with Pico's minimal philosophy: two clear modes rather than mixed behaviors. Auto-fit for simple equal layouts, explicit spans for precise control.
Edge Cases
Mixed children (with and without
col-*)When a grid has both explicit and implicit children:
Children without
col-*classes default togrid-column: auto, which behaves asspan 1(~8%) in a 12-column grid. Best practice: all children should have explicit spans in 12-column mode.Overflow
Column spans exceeding 12 will wrap to the next row (standard CSS Grid behavior).
Limitations
Single responsive breakpoint
This implementation provides
col-md-*classes for the medium (768px) breakpoint only. Pico CSS defines 5 breakpoints (sm/md/lg/xl/2xl) but additional responsive variants (col-sm-*,col-lg-*, etc.) are not included in this PR to keep the API minimal. These can be added in a follow-up if needed.Browser Support
Uses CSS
:has()selector to detect 12-column mode:Older browsers fall back to auto-fit behavior (Mode 1).
Testing
✅ All 8 visual tests passed using Playwright screenshots + Kimi k2.5 analysis:
Demo
Built and tested in pages branch (see demo).
Transparency Note: I used OpenCode and Kimi k2.5 for assistance with this PR, manually reviewing and testing everything proposed.