Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v6-dev #41236

Open
wants to merge 31 commits into
base: main
Choose a base branch
from
Open

v6-dev #41236

wants to merge 31 commits into from

Conversation

mdo
Copy link
Member

@mdo mdo commented Feb 20, 2025

Yes, it's happening! Here's what's happened so far:

  • High level:
    • Dropped extraneous grid, reboot, and utilities bundles for now (potentially will bring them back)
    • Browser support has been significantly updated, moving to floating targets (e.g., last 1 versions and not dead)
    • Moved from Hugo to Astro for the docs
    • Monorepo structure?
  • Sass & CSS:
  • Colors, Customizing, Themes, etc
    • Simplify theme support down to light/dark mode, media queries only instead of data-bs-theme?
    • Use more light-dark() function?
    • Ensure color-scheme values are being set
    • If using data-bs-theme still, look into how we could set color/bg automatically?
    • Move to oklch over mix of hex/rgb?
    • Use native color-mix() as needed
    • Fix Gray color utilities do not follow text-{color}-{level} convention #38569: Normalize gray color keys in $grays map to the other colors
    • Use relative colors as needed (component variants and states?)
    • P3 colors? Mixin to convert them? Plugin to do so after the fact?
    • Expand the color palette more if we can? Move from semantic colors to full palette for component variants?
  • Layout
    • Dropped OG flexbox grid and replaced with CSS Grid layout (includes dropping most mixins I think?)
    • Sub grid modifier to inherit parent grid cols
    • Add autofill grid option plus 12-col system
    • Explore additional flex utilities to support the move
    • Expand width utilities perhaps? Since grid layout uses grid-specific properties
  • Reboot
    • Ditch legend and fieldset changes, add a fieldset reset perhaps
  • Buttons
    • Move to inline-flex
    • Simplify btn-check code? Restyle checkboxes as button?
  • Forms
    • Replace custom radio SVG with background/border combo
    • Improve input groups, especially with validation
    • :user-valid/invalid vs :valid/invalid
    • field-sizing: content for textareas?
  • Utilities & Helpers
  • JavaScript
    • Drop all things jQuery from our plugins
    • Modernize modal plugin to become a new Dialog plugin, built on the native dialog component
    • Popover native plugin? Dialog for popover to natively disable scroll? Anchor positioning (not yet in FF or Safari)
    • @starting-style for animations?
    • Native drop down menu?

Appendix

Custom properties to disable inheritance in some utility classes?

@property --bs-bg-alpha {
  syntax: "<number>";
  inherits: false;
  initial-value: 1;
}
@property --bs-text-alpha {
  syntax: "<number>";
  inherits: false;
  initial-value: 1;
}

Screenshots

Expansive color palette?

CleanShot 2025-01-15 at 21 25 02@2x

More button variants, all generated from a larger map?

CleanShot 2025-01-15 at 21 25 10@2x

CSS grid in action

CleanShot 2025-01-15 at 21 29 21@2x

@mdo mdo requested review from a team as code owners February 20, 2025 17:09
@mdo mdo added the v6 label Feb 20, 2025
@twbs twbs locked and limited conversation to collaborators Feb 20, 2025
@ffoodd
Copy link
Member

ffoodd commented Feb 20, 2025

Wow, what a nice move 🚀

Any way to share ideas for v6? Or should we try some PR to your branch?

@julien-deramond
Copy link
Member

Adding this link as a reference for reusing other elements in case we run into any issues: #38319

@mdo
Copy link
Member Author

mdo commented Feb 20, 2025

@ffoodd Ayyy good to see you! Issues here or jump into our team Slack :). I'll update the original comment with more of what I'm thinking shortly.

@ffoodd
Copy link
Member

ffoodd commented Feb 22, 2025

💜

I only have a few things that comes to my mind :

  • switch to logical properties, to drop RTLCSS and RTL build ;
  • try to rely on modern HTML for components : <dialog>, <details> and <summary>, maybe popover and its API ?
  • use container queries for responsive ?

Probably for v7 but the anchor
positioning API could replace Popper / Floating UI, but we may try as a progressive enhancement.

There could be more, but those are already quite big.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.