v6-dev
Yes, it's happening! Here's what's happened so far:
High level
- [x] Dropped extraneous grid, reboot, and utilities bundles for now (potentially will bring them back)
- [x] Browser support has been significantly updated, moving to floating targets (e.g.,
last 1 versionsandnot dead) - [x] Moved from Hugo to Astro for the docs
- [x] Fixes #29919: Added Markdownlint via npm script (
npm run lint-mdx) - [ ] Monorepo structure?
Sass & CSS
- [x] Fix #29853: Migrated to Sass modules across the board
- [x] All Dart Sass, no Node Sass
- [x] New
_colors.scssstylesheet - [x] New
_config.scssstylesheet - [x] Fix #28553: Rearranged Sass files (e.g.,
_forms.scssis nowforms/index.scssand uses@forward) - [x] Implement CSS layers
- [ ] Fix #40412: Drop custom
add()andsubtract()functions for nativecalc(); also replace customdivide()function with Sassmath.div(). - [x] Drop
!importantfrom utilities - [ ] Native CSS nesting in output?
- [ ] Replace RFS with something simpler, maybe using
clamp()? - [ ] Fix #33263: Localize variables, mixins, and some functions within each stylesheet that needs them (except truly shared or global ones)
- [x] Fix #41046: Range CSS media queries (e.g.
@media (width < 768px)
Colors, Customizing, Themes, etc
- [x] Fix #39587: Add all color tints and shades as CSS variables
- [ ] Migrate components to use these CSS variables
- [ ] Simplify theme support down to light/dark mode, media queries only instead of
data-bs-theme? - [ ] Use more
light-dark()function? - [ ] Ensure
color-schemevalues are being set - [ ] If using
data-bs-themestill, look into how we could set color/bg automatically? - [ ] Move to oklch over mix of hex/rgb?
- [ ] Use native color-mix() as needed
- [ ] Fix #38569: Normalize gray color keys in
$graysmap 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
- [x] Dropped OG flexbox grid and replaced with CSS Grid layout (includes dropping most mixins I think?)
- [x] Renamed
$grid-breakpointsto$breakpoints - [x] Renamed
-xxlbreakpoint to-2xl, as well as all component size variants - [ ] 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
- [ ] Fix #40582: Colorize
codeelements for light/dark mode
Content
- [x] Fix #30177: Add new
.proseclass for long form content
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/invalidvs:valid/invalid - [ ]
field-sizing: contentfor textareas?
Utilities & Helpers
- [x] Fix #36129: Moved ratio helper to become
.ratioutility - Sidebar: You can now modify the utilities map to make these responsive. Original request at #39449.
- [x] Fix #38641: Drop clearfix helper for new
display: flow-rootutility,.d-flow-root - [ ] Explore
@propertyin CSS for disabling inheritance? (see appendix) - [ ] Smooth out API?
- [ ] Fix #40674: Rename
max-widthandmax-heightutilities for clarity - [ ] Fix #41330: Add new
min-content,max-content, andfix-contentvalues for width and height utilities
JavaScript
- [x] Drop all things jQuery from our plugins
- [ ] Modernize modal plugin to become a new Dialog plugin, built on the native dialog component
- [ ] Revisit #40787: add CSS variables for modal widths across breakpoints
- [ ] 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?
- [ ] Add support to dropdowns for context menu
- [ ] New plugin ideas
- [ ] PIN/2FA input
- [ ] Toggle attribute
- [ ] Date picker
- [ ] Password strength
- [ ] Fixes #29378: Automatically make tooltips and popovers work, remove performance mention from docs
Docs
- [x] Fix #39041: Add previous/next links at bottom of docs pages
- [ ] Add keyboard section to JS components to list supported keyboard interactions
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?
More button variants, all generated from a larger map?
CSS grid in action
Wow, what a nice move 🚀
Any way to share ideas for v6? Or should we try some PR to your branch?
Adding this link as a reference for reusing other elements in case we run into any issues: https://github.com/twbs/bootstrap/pull/38319
@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.
💜
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>, maybepopoverand 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.