@jungherz-de/glasskit 1.3.5 → 1.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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,79 @@ GlassKit uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ---
9
9
 
10
+ ## [1.5.0] – 2026-04-12
11
+
12
+ ### Added
13
+
14
+ - **Six new List sub-classes** extending the `.glass-list` component for iOS 26 grouped-section patterns:
15
+ - **`.glass-list__section-header`** – uppercase section label placed above a `.glass-list`, matching iOS grouped-list section headers (e.g. "Recommendations", "Audiobooks")
16
+ - **`.glass-list__leading--lg`** – large 40×40 leading slot with rounded-square corners and `<img>` support for app icons
17
+ - **`.glass-list__subtitle--wrap`** – multi-line subtitle (up to 3 lines with `-webkit-line-clamp`)
18
+ - **`.glass-list__value`** – muted trailing text for values like file sizes alongside a chevron
19
+ - **`.glass-list__item--danger`** – red text for destructive actions (title + leading icon inherit color)
20
+ - **`.glass-list__item--accent`** – primary-colored text for accent actions like "View all"
21
+ - Auto-divider inset adjusts automatically for `--lg` leading via `:has()` selector
22
+
23
+ ### Fixed
24
+
25
+ - **Range Slider thumb off-center on Chrome / Safari** – added explicit `box-sizing: border-box` to `::-webkit-slider-thumb` (normalizes Chrome vs Safari UA defaults) and corrected `margin-top` to `-2px`. Firefox was never affected (`::-moz-range-thumb` auto-centers).
26
+
27
+ ### Changed
28
+
29
+ - SKILL.md iOS Settings Screen composition now uses `.glass-list__section-header` instead of manual utility-class labels
30
+ - Docs and showcase updated with live demos for all new list variants
31
+
32
+ ---
33
+
34
+ ## [1.4.0] – 2026-04-11
35
+
36
+ ### Added
37
+
38
+ - **Two new components – `List` and `Popover`** – inspired by iOS 26 settings screens
39
+ - **`.glass-list`** – grouped settings-style container, visually based on `.glass-status` (`--gl-surface-1`, `--gl-blur-light`, `--gl-radius-btn`, subtle shadow)
40
+ - **`.glass-list__item`** – flexible row layout that scales from a single centered text (with ellipsis truncation) to a full settings row with leading icon, title + subtitle, and trailing element
41
+ - **List sub-elements**: `__leading` (28×28 icon slot), `__content` (flexible middle), `__title`, `__subtitle`, `__trailing` (chevron / value / button / badge)
42
+ - **List modifiers**: `--flush` (edge-to-edge variant), `--bare` (strips own glass surface for embedding inside `glass-popover` / `glass-card`), `__item--interactive` (hover / focus / active states), `__item--center` (centered single-text fallback)
43
+ - **Auto-rendered dividers** between list items via `::after` &mdash; no extra HTML markup required, last item automatically has no divider, and items without a leading icon get a standard horizontal padding inset (handled via `:has(.glass-list__leading)`)
44
+ - **`.glass-popover`** – anchored dropdown / menu container with fade + scale animation on `.is-open`
45
+ - **`.glass-popover-anchor`** – positioning context that wraps trigger + popover
46
+ - **Popover placement modifiers**: `--top` (opens upward), `--start` (left-aligned), `--end` (right-aligned); default placement is centered below the trigger
47
+ - **Modal preview section** in `docs.html` and `de/docs.html` – previously the Modal section only had a class reference table; now it includes a live inline preview, full HTML code snippet with JS toggle functions, and an explicit note about putting `.is-active` on the overlay (not on `.glass-modal`)
48
+ - **SKILL.md (AI reference) extensions**:
49
+ - New section **3.24 List** with copy-paste examples for both settings-style and compact-menu variants, full sub-element table, and SVG icon convention notes
50
+ - New section **3.25 Popover** with HTML + toggle JS, placement modifier reference, and explicit warning about the native API name collision
51
+ - New composition pattern **"iOS-style Settings Screen (List + Popover)"** – full example reproducing iOS settings layout with two grouped lists and an inline action menu
52
+ - State Classes Overview extended (`.is-open` now also for `.glass-popover`)
53
+ - Common Mistakes table extended with 4 new entries (manual divider markup, missing `--bare`, `togglePopover` naming clash, `.is-open` on the wrong element)
54
+ - "Always follow" rules extended with list-divider and popover-naming guidance
55
+ - Quick Class Reference table extended with List and Popover rows
56
+ - **File size details** in `index.html` and `de/index.html` – the project file list now shows raw + gzipped sizes for `glasskit.css`, plus a dedicated row for `glasskit.min.css` (production build) with its own raw + gzipped sizes
57
+ - **README.md "Lightweight" bullet** – now reports precise sizes (49 KB raw / 37 KB minified / 6.2 KB gzipped) instead of an approximate single number
58
+
59
+ ### Changed
60
+
61
+ - **`bg-switcher` migration** in `showcase.html` and `de/showcase.html` – the ad-hoc popover originally embedded as inline CSS in the showcase has been removed and replaced with the new `.glass-popover` framework component, proving the new API works for the existing use case
62
+ - **Component count** updated from **22 → 24** across all user-facing files: `index.html`, `docs.html`, `de/index.html`, `de/docs.html`, `package.json`, `README.md`, `SKILL.md`, and the `glasskit.css` header
63
+ - **Sidebar navigation** in `docs.html` and `de/docs.html` extended with the new "List" link (under Content) and "Popover" link (under Actions)
64
+ - **CDN version pinning** in `README.md` and `SKILL.md` updated from `@1.3` to `@1.4` for jsDelivr (minified + unminified) and unpkg
65
+ - **English consistency in `glasskit.css`** – the remaining German comments in the source file have been translated to English (`Farben`, `Glas-Oberflächen`, `Icon-Farben`, `Hintergrund-Effekte`, `Toggle (inaktiv)`, `Größen`, `22 Komponenten`, plus the multi-line comments in the new List section)
66
+ - **Showcase title** in `showcase.html` and `de/showcase.html` bumped to `v1.4.0`
67
+ - **Version stamps** updated to `1.4.0` in `package.json`, README badges, `glasskit.css` header, sidebar versions, and hero badges (English + German)
68
+
69
+ ### Fixed
70
+
71
+ - **List divider inset for icon-less items** – when a `.glass-list__item` has no leading icon, the auto-divider now uses the standard horizontal padding (`var(--gl-space-lg)` left + right) instead of blindly inheriting the icon-aligned 60px inset. Detected via `:has(.glass-list__leading)`.
72
+ - **List divider right-edge alignment** – the divider used to extend all the way to the right edge of the item (`right: 0`), past where the trailing element ends. It now stops at `var(--gl-space-lg)` so it lines up flush with the trailing slot.
73
+ - **`togglePopover` naming clash** – discovered during showcase migration: a custom JS function named `togglePopover` collides with the native `HTMLElement.togglePopover()` method (HTML Popover API) and inline `onclick` handlers throw `NotSupportedError`. The showcase / docs JS toggles were renamed to `gkTogglePopover` / `docsTogglePopover`, and the gotcha is documented in `SKILL.md`, the docs Popover section, and this changelog.
74
+
75
+ ### Notes
76
+
77
+ - **No breaking changes.** All additions are additive; existing markup continues to work unchanged.
78
+ - **`glass-divider` is unchanged.** The new list dividers are scoped to `.glass-list__item::after` and do not affect or replace the global `.glass-divider` element (which keeps its gradient-fade visual style).
79
+ - **`:has()` selector requirement** – the icon-aware divider rule uses CSS `:has()`, which is supported in all modern evergreen browsers (Chrome 105+, Safari 15.4+, Firefox 121+, ~95% global as of 2026). Lists with mixed-icon items will fall back gracefully (icon-less items get the icon-aligned inset, which is visually fine, just slightly more right-shifted than ideal).
80
+
81
+ ---
82
+
10
83
  ## [1.3.5] – 2026-04-04
11
84
 
12
85
  ### Added
@@ -221,10 +294,12 @@ during development. Version 1.3 is the first public open-source release.
221
294
 
222
295
  ---
223
296
 
297
+ [1.5.0]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.5.0
298
+ [1.4.0]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.4.0
224
299
  [1.3.5]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.5
225
300
  [1.3.4]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.4
226
301
  [1.3.3]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.3
227
302
  [1.3.2]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.2
228
303
  [1.3.1]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.1
229
304
  [1.3.0]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.0
230
- [Unreleased]: https://github.com/JUNGHERZ/GlassKit/compare/v1.3.5...HEAD
305
+ [Unreleased]: https://github.com/JUNGHERZ/GlassKit/compare/v1.5.0...HEAD
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  <p align="center">
2
- <img src="https://img.shields.io/badge/version-1.3.5-orange?style=flat-square" alt="Version">
2
+ <img src="https://img.shields.io/badge/version-1.5.0-orange?style=flat-square" alt="Version">
3
3
  <img src="https://img.shields.io/badge/CSS-only-blue?style=flat-square" alt="CSS only">
4
- <img src="https://img.shields.io/badge/components-22-green?style=flat-square" alt="Components">
4
+ <img src="https://img.shields.io/badge/components-24-green?style=flat-square" alt="Components">
5
5
  <img src="https://img.shields.io/badge/license-MIT-lightgrey?style=flat-square" alt="License">
6
- <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/changelog-v1.3.5-f5a623?style=flat-square" alt="Changelog"></a>
6
+ <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/changelog-v1.5.0-f5a623?style=flat-square" alt="Changelog"></a>
7
7
  <a href="https://www.npmjs.com/package/@jungherz-de/glasskit"><img src="https://img.shields.io/npm/v/@jungherz-de/glasskit?style=flat-square&color=cb3837&label=npm" alt="npm"></a>
8
8
  <a href="https://cdn.jsdelivr.net/npm/@jungherz-de/glasskit/"><img src="https://img.shields.io/badge/CDN-jsDelivr-blue?style=flat-square" alt="jsDelivr"></a>
9
9
  </p>
@@ -16,7 +16,7 @@
16
16
 
17
17
  <p align="center">
18
18
  <strong>A modern glassmorphism CSS component library.</strong><br>
19
- 22 Components · Dark & Light Mode · No Dependencies · Design Tokens
19
+ 24 Components · Dark & Light Mode · No Dependencies · Design Tokens
20
20
  </p>
21
21
 
22
22
  <p align="center">
@@ -48,7 +48,7 @@ GlassKit is a complete **CSS component library** with glassmorphism aesthetics
48
48
  - 📱 **Mobile-first** – optimized for touch devices and `safe-area-inset`
49
49
  - 🔌 **Framework-agnostic** – works with React, Vue, Svelte, plain HTML, or any other stack
50
50
  - 🧩 **Shadow DOM ready** – Constructable Stylesheet for Web Components included
51
- - 🪶 **Lightweight** – ~45 KB (uncompressed), no external dependencies
51
+ - 🪶 **Lightweight** – 51 KB raw / 39 KB minified / 6.5 KB gzipped, no external dependencies
52
52
  - 🎯 **BEM-like naming convention** – `glass-*` prefix, no conflicts with existing CSS
53
53
  - 🤖 **AI-ready** – ships with [`SKILL.md`](SKILL.md), a structured reference for LLMs & AI copilots
54
54
 
@@ -64,16 +64,16 @@ No download, no build tool – just include and go:
64
64
 
65
65
  ```html
66
66
  <!-- jsDelivr – Minified -->
67
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@jungherz-de/glasskit@1.3/glasskit.min.css">
67
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@jungherz-de/glasskit@1.5/glasskit.min.css">
68
68
 
69
69
  <!-- jsDelivr – Unminified (for reading/debugging) -->
70
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@jungherz-de/glasskit@1.3/glasskit.css">
70
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@jungherz-de/glasskit@1.5/glasskit.css">
71
71
 
72
72
  <!-- unpkg – Alternative -->
73
- <link rel="stylesheet" href="https://unpkg.com/@jungherz-de/glasskit@1.3/glasskit.min.css">
73
+ <link rel="stylesheet" href="https://unpkg.com/@jungherz-de/glasskit@1.5/glasskit.min.css">
74
74
  ```
75
75
 
76
- > **Tip:** Replace `@1.3` with `@latest` for the newest version – or pin to a specific version for maximum stability.
76
+ > **Tip:** Replace `@1.5` with `@latest` for the newest version – or pin to a specific version for maximum stability.
77
77
 
78
78
  ### npm / yarn / pnpm
79
79
 
@@ -177,6 +177,7 @@ Download the files directly from the [GitHub Release](https://github.com/JUNGHER
177
177
  | **Badge** | `.glass-badge` | Tags & labels |
178
178
  | **Avatar** | `.glass-avatar` | Glass circle (sm/md/lg) |
179
179
  | **Status** | `.glass-status` | Notice card with icon |
180
+ | **List** | `.glass-list` | iOS-style grouped settings list with auto dividers |
180
181
 
181
182
  ### Actions & Feedback
182
183
 
@@ -187,6 +188,7 @@ Download the files directly from the [GitHub Release](https://github.com/JUNGHER
187
188
  | **Button (Tertiary)** | `.glass-btn--tertiary` | Subtle glass – tertiary action |
188
189
  | **Modal** | `.glass-modal` | Centered dialog with blur overlay |
189
190
  | **Toast** | `.glass-toast` | Temporary notification |
191
+ | **Popover** | `.glass-popover` | Anchored dropdown / menu with fade & scale animation |
190
192
 
191
193
  ### Form Elements
192
194
 
@@ -440,7 +442,7 @@ glasskit/
440
442
 
441
443
  The full documentation with **live previews**, **copy-paste code blocks**, and **class reference tables** is available in `docs.html`:
442
444
 
443
- - Sidebar navigation to all 22 components
445
+ - Sidebar navigation to all 24 components
444
446
  - Live previews on a real glassmorphism background
445
447
  - Design token reference
446
448
  - Theming guide
@@ -470,7 +472,7 @@ GlassKit ships with an **AI-optimized component reference** in [`SKILL.md`](SKIL
470
472
 
471
473
  ### What it provides
472
474
 
473
- - **Copy-paste-ready HTML** for all 22 components with exact nesting rules
475
+ - **Copy-paste-ready HTML** for all 24 components with exact nesting rules
474
476
  - **Complete design token tables** (colors, surfaces, blur, radii, spacing, shadows, typography)
475
477
  - **State class reference** – which class goes where (`is-active`, `is-open`, `is-visible`, `:checked`)
476
478
  - **6 composition patterns** – full page layouts (Login, Dashboard, Form, Modal, Settings, Progress)
@@ -505,7 +507,7 @@ GlassKit uses `backdrop-filter` for glass effects. Support:
505
507
  ```
506
508
  Interactive States:
507
509
  .is-active → Tab Bar item, Modal Overlay
508
- .is-open → Accordion item
510
+ .is-open → Accordion item, Popover
509
511
  .is-visible → Toast
510
512
  :checked → Toggle, Checkbox, Radio
511
513
  :focus → Input, Textarea, Select, Range
@@ -534,6 +536,13 @@ Toast Modifiers:
534
536
  Modal Action Modifiers:
535
537
  .glass-modal__action--primary / --danger
536
538
 
539
+ List Modifiers:
540
+ .glass-list--flush / --bare
541
+ .glass-list__item--interactive / --center
542
+
543
+ Popover Modifiers:
544
+ .glass-popover--top / --start / --end
545
+
537
546
  Background Modifiers:
538
547
  .glass-bg--has-tab-bar
539
548
  ```