@expressivecss/expressive 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/README.md +4 -9
  3. package/dist/css/expressive.css +3183 -2150
  4. package/dist/css/expressive.css.map +1 -1
  5. package/dist/css/expressive.min.css +1 -1
  6. package/dist/css/expressive.min.css.map +1 -1
  7. package/dist/js/expressive.cjs +1254 -1567
  8. package/dist/js/expressive.cjs.map +4 -4
  9. package/dist/js/expressive.js +1254 -1567
  10. package/dist/js/expressive.js.map +4 -4
  11. package/dist/js/expressive.min.js +12 -22
  12. package/dist/js/expressive.min.js.map +4 -4
  13. package/dist/js/expressive.mjs +1254 -1568
  14. package/dist/js/expressive.mjs.map +4 -4
  15. package/dist/types/behaviors/bottomSheets.d.ts +18 -0
  16. package/dist/types/behaviors/sideSheets.d.ts +18 -0
  17. package/dist/types/components/autocomplete.d.ts +13 -20
  18. package/dist/types/components/buttons.d.ts +2 -2
  19. package/dist/types/components/cards.d.ts +3 -6
  20. package/dist/types/components/carousel.d.ts +3 -3
  21. package/dist/types/components/characterCounter.d.ts +3 -5
  22. package/dist/types/components/chips.d.ts +2 -2
  23. package/dist/types/components/datepicker.d.ts +2 -8
  24. package/dist/types/components/index.d.ts +3 -6
  25. package/dist/types/components/lightbox.d.ts +2 -2
  26. package/dist/types/components/{dropdown.d.ts → menu.d.ts} +48 -38
  27. package/dist/types/components/navigationRail.d.ts +53 -0
  28. package/dist/types/components/parallax.d.ts +2 -8
  29. package/dist/types/components/range.d.ts +5 -2
  30. package/dist/types/components/registry.d.ts +7 -19
  31. package/dist/types/components/scrollspy.d.ts +26 -50
  32. package/dist/types/components/select.d.ts +28 -14
  33. package/dist/types/components/sidenav.d.ts +40 -55
  34. package/dist/types/components/slider.d.ts +2 -2
  35. package/dist/types/components/{toasts.d.ts → snackbar.d.ts} +28 -25
  36. package/dist/types/components/tabs.d.ts +2 -2
  37. package/dist/types/components/timepicker.d.ts +2 -4
  38. package/dist/types/components/tooltip.d.ts +2 -2
  39. package/dist/types/core/component.d.ts +4 -4
  40. package/dist/types/index.d.ts +3 -1
  41. package/package.json +4 -3
  42. package/src/sass/README.md +13 -15
  43. package/src/sass/abstracts/_breakpoints.scss +14 -19
  44. package/src/sass/abstracts/_mixins.scss +3 -3
  45. package/src/sass/abstracts/_variables.scss +27 -23
  46. package/src/sass/base/_global.scss +1 -1
  47. package/src/sass/base/_grid.scss +64 -133
  48. package/src/sass/base/_index.scss +1 -1
  49. package/src/sass/components/_badges.scss +76 -61
  50. package/src/sass/components/_bottom-sheet.scss +137 -0
  51. package/src/sass/components/_buttons.scss +22 -54
  52. package/src/sass/components/_cards.scss +54 -127
  53. package/src/sass/components/_carousel.scss +4 -6
  54. package/src/sass/components/_chips.scss +6 -5
  55. package/src/sass/components/_datepicker.scss +1 -15
  56. package/src/sass/components/_dialog.scss +268 -0
  57. package/src/sass/components/_index.scss +9 -7
  58. package/src/sass/components/_list.scss +253 -0
  59. package/src/sass/components/_menu.scss +341 -0
  60. package/src/sass/components/_navbar.scss +68 -117
  61. package/src/sass/components/_navigation-bar.scss +165 -0
  62. package/src/sass/components/_navigation-rail.scss +308 -0
  63. package/src/sass/components/_page-footer.scss +138 -15
  64. package/src/sass/components/_parallax.scss +7 -28
  65. package/src/sass/components/_preloader.scss +145 -300
  66. package/src/sass/components/_scrollspy.scss +18 -0
  67. package/src/sass/components/_side-sheet.scss +193 -0
  68. package/src/sass/components/_sidenav.scss +281 -146
  69. package/src/sass/components/{_toast.scss → _snackbar.scss} +43 -43
  70. package/src/sass/components/_table_of_contents.scss +30 -14
  71. package/src/sass/components/_tabs.scss +43 -50
  72. package/src/sass/components/_toolbar.scss +93 -27
  73. package/src/sass/components/_tooltip.scss +5 -10
  74. package/src/sass/components/_transitions.scss +0 -5
  75. package/src/sass/components/forms/_fieldset.scss +1 -1
  76. package/src/sass/components/forms/_index.scss +0 -5
  77. package/src/sass/components/forms/_input-fields.scss +52 -55
  78. package/src/sass/components/forms/_range.scss +423 -98
  79. package/src/sass/components/forms/_select.scss +177 -60
  80. package/src/sass/components/forms/_switches.scss +21 -8
  81. package/src/sass/tokens/_reference.scss +37 -13
  82. package/src/sass/tokens/_theme.scss +5 -13
  83. package/src/sass/utilities/_colors.scss +16 -74
  84. package/src/sass/utilities/_helpers.scss +1 -3
  85. package/src/sass/utilities/_typescale.scss +0 -5
  86. package/src/sass/utilities/_visibility.scss +10 -2
  87. package/dist/types/components/collapsible.d.ts +0 -96
  88. package/dist/types/components/modal.d.ts +0 -45
  89. package/dist/types/components/pushpin.d.ts +0 -51
  90. package/dist/types/components/tapTarget.d.ts +0 -57
  91. package/src/sass/components/_collapsible.scss +0 -181
  92. package/src/sass/components/_collection.scss +0 -198
  93. package/src/sass/components/_dropdown.scss +0 -129
  94. package/src/sass/components/_modal.scss +0 -208
  95. package/src/sass/components/_pushpin.scss +0 -11
  96. package/src/sass/components/_tapTarget.scss +0 -191
package/CHANGELOG.md ADDED
@@ -0,0 +1,96 @@
1
+ # Changelog
2
+
3
+ Notable changes to ExpressiveCSS. Versions follow [semver](https://semver.org/);
4
+ the format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
+
6
+ ## [Unreleased]
7
+
8
+ ## [0.5.0] - 2026-08-19
9
+
10
+ The release that finishes moving the vendored Materialize surface onto Material
11
+ Design 3 Expressive. Components with no M3 counterpart are gone, several were
12
+ renamed to their M3 names, and the color layer now carries the full role set.
13
+ Pre-1.0, so the breaking changes below are not gated behind a deprecation cycle
14
+ — but every retired docs URL still 301s to its replacement.
15
+
16
+ ### Added
17
+
18
+ - **Menu** (`Menu`, `.menu-trigger` + `<menu>`) — M3 vertical menus, replacing
19
+ `Dropdown`. Nested flyout submenus, a selected-item state, a vibrant color
20
+ mode, and per-menu sizing.
21
+ - **Navigation bar** (`.navigation-bar`, CSS only) and **navigation rail**
22
+ (`NavigationRail`, `.navigation-rail`, auto-inits) — compact and medium/large
23
+ navigation, with stacked, horizontal, collapsed, expanded, and modal layouts.
24
+ - **Bottom sheets** (`.bottom-sheet`, started by `BottomSheets.Init()`) — modal
25
+ and standard variants with drag-to-dismiss; 28dp top corners, 640dp max width.
26
+ - **Side sheets** (`.side-sheet`, started by `SideSheets.Init()`) — modal and
27
+ standard variants, 400px wide, drag-to-dismiss from the header or the inner
28
+ 24dp edge.
29
+ - **Lists** (`.list`) — standard and segmented variants, replacing `.collection`.
30
+ - **Dialogs** — basic and full-screen variants on native `<dialog>`, on M3 tokens
31
+ (`surface-container-high`, `on-surface-variant`).
32
+ - **Snackbar** (`Snackbar`) — `Toast` under its M3 name, with a reworked options
33
+ object: `snackbarId` replaces `toastId`, `displayLength` accepts `Infinity` to
34
+ stay until the user acts, and defaults to 10000 when an `action` is set.
35
+ - **Widescreen layout** — an `xxlarge` breakpoint at 1601px, the `.xxl` grid
36
+ prefix, wider container caps (1920px at `xxlarge`, `.container.wide` 2400px,
37
+ `.container.max` uncapped), and `.hide-on-xxl-only` / `.show-on-xxl`.
38
+ - **Slider variants** — `.centered` (active track grows from the midpoint),
39
+ dual-handle ranges in one host, sizes `.s` / `.m` / `.l` / `.xl`, `.stops`
40
+ discrete ticks, and an optional inset leading icon.
41
+ - **M3 Expressive color roles** — the surface containers
42
+ (`surface-container-lowest` … `surface-container-highest`), `surface-dim`,
43
+ `surface-bright`, the fixed roles, and `outline-variant`. Utility classes are
44
+ generated from the role list, so every role has both `.role` (fill) and
45
+ `.role-text` (foreground).
46
+ - **Badges** — M3 anatomy: a 6dp dot and a 16dp stadium with a label, positioned
47
+ against navigation, list, and sidenav icons.
48
+
49
+ ### Changed
50
+
51
+ - **Breaking:** `Autocomplete`'s `menuOptions.onItemClick` now receives the clicked
52
+ `li` and is called on the `Menu` instance, matching the documented `MenuOptions`
53
+ contract. It previously received the autocomplete's `<input>` element, so a
54
+ handler written against the documented signature got the wrong node. Handlers
55
+ that used the argument need updating; handlers that ignored it are unaffected.
56
+ - App bars separate from the body on scroll with a `surface-container` fill
57
+ instead of elevation, interpolated through the new
58
+ `--md-comp-top-app-bar-scrolled-container-color`.
59
+ - The sidenav trigger stays visible at every breakpoint; it used to be hidden at
60
+ `large`, which left an M3 app bar with no leading navigation control.
61
+ - Collapsible sections inside the sidenav are now `<details>` / `<summary>`.
62
+ - Components were repointed at accurate M3 container roles rather than
63
+ `surface-variant` aliases, which is what fixes their dark-mode contrast.
64
+ - **Breaking for direct Sass importers:** component partials were renamed to
65
+ match the components they now hold — `components/_modal.scss` →
66
+ `_dialog.scss`, `_dropdown.scss` → `_menu.scss`, `_collection.scss` →
67
+ `_list.scss`, `_toast.scss` → `_snackbar.scss`. `_collapsible.scss`,
68
+ `_pushpin.scss`, and `_tapTarget.scss` are gone. Only code that `@use`s a
69
+ partial by path is affected — the renames themselves change nothing about the
70
+ compiled CSS, and importing `expressive.scss` still pulls in everything.
71
+ - Retired docs routes 301 to their replacements: `/dropdown` → `/menu`,
72
+ `/collections` → `/lists`, `/modals` → `/dialogs`, `/toasts` → `/snackbar`,
73
+ `/range` → `/sliders`, `/collapsible` → `/sidenav`,
74
+ `/feature-discovery` is gone.
75
+
76
+ ### Removed
77
+
78
+ Every entry here is breaking. The replacement is named where there is one; there
79
+ are no compatibility aliases.
80
+
81
+ - `Dropdown` and `.dropdown-trigger` / `.dropdown-content` — use `Menu` and
82
+ `.menu-trigger`.
83
+ - `Toast` — use `Snackbar`.
84
+ - `.collection` and its modifiers — use `.list`.
85
+ - `Collapsible` and `.collapsible` — use native `<details>` / `<summary>`.
86
+ - `Pushpin` and `.pushpin` / `.pin-*` — use `position: sticky`.
87
+ - Feature Discovery (`TapTarget`, `.tap-target`). It is not an M3 component.
88
+ - `.modal` and its modifiers — dialogs are native `<dialog>` elements.
89
+ - `dialog.top` / `dialog.top-sheet`. M3 has no top sheet; use a side sheet or a
90
+ bottom sheet. The unused `--md-comp-basic-dialog-sheet-width` token is gone
91
+ with them.
92
+ - `.tabs` nested in a header or app bar as a secondary row. `.tabs` is a
93
+ standalone component; the `.tabs.transparent` app bar variant is gone with it.
94
+
95
+ [Unreleased]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.5.0...HEAD
96
+ [0.5.0]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.4.0...v0.5.0
package/README.md CHANGED
@@ -4,7 +4,7 @@ ExpressiveCSS is a Material Design 3 front-end framework built with Sass and
4
4
  TypeScript. It provides theme tokens, layout and utility classes, styled form
5
5
  controls, and JavaScript components in browser, ES module, and CommonJS builds.
6
6
 
7
- > ExpressiveCSS is currently at version `0.3.0` and under active development.
7
+ > ExpressiveCSS is currently at version `0.5.0` and under active development.
8
8
 
9
9
  ## Features
10
10
 
@@ -12,8 +12,8 @@ controls, and JavaScript components in browser, ES module, and CommonJS builds.
12
12
  - Light and dark themes using CSS custom properties
13
13
  - Responsive grid and utility classes
14
14
  - Buttons, cards, forms, navigation, and other styled components
15
- - Interactive components including carousels, collapsibles, date pickers,
16
- dropdowns, side navigation, tabs, tooltips, and more
15
+ - Interactive components including carousels, date pickers, menus,
16
+ side navigation, tabs, tooltips, and more
17
17
  - ES module, CommonJS, browser IIFE, CSS, and TypeScript declaration outputs
18
18
  - Automatic component initialization with an opt-out mechanism
19
19
 
@@ -62,12 +62,7 @@ after the page has loaded:
62
62
  ```html
63
63
  <link rel="stylesheet" href="dist/css/expressive.min.css">
64
64
 
65
- <div class="collapsible">
66
- <details name="intro">
67
- <summary>Details</summary>
68
- <p>ExpressiveCSS is ready.</p>
69
- </details>
70
- </div>
65
+ <a class="button tooltipped" data-tooltip="ExpressiveCSS is ready.">Hover</a>
71
66
 
72
67
  <script src="dist/js/expressive.min.js"></script>
73
68
  <script>