@jungherz-de/glasskit 1.3.5 → 1.4.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,55 @@ GlassKit uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ---
9
9
 
10
+ ## [1.4.0] – 2026-04-11
11
+
12
+ ### Added
13
+
14
+ - **Two new components – `List` and `Popover`** – inspired by iOS 26 settings screens
15
+ - **`.glass-list`** – grouped settings-style container, visually based on `.glass-status` (`--gl-surface-1`, `--gl-blur-light`, `--gl-radius-btn`, subtle shadow)
16
+ - **`.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
17
+ - **List sub-elements**: `__leading` (28×28 icon slot), `__content` (flexible middle), `__title`, `__subtitle`, `__trailing` (chevron / value / button / badge)
18
+ - **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)
19
+ - **Auto-rendered dividers** between list items via `::after` — 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)`)
20
+ - **`.glass-popover`** – anchored dropdown / menu container with fade + scale animation on `.is-open`
21
+ - **`.glass-popover-anchor`** – positioning context that wraps trigger + popover
22
+ - **Popover placement modifiers**: `--top` (opens upward), `--start` (left-aligned), `--end` (right-aligned); default placement is centered below the trigger
23
+ - **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`)
24
+ - **SKILL.md (AI reference) extensions**:
25
+ - 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
26
+ - New section **3.25 Popover** with HTML + toggle JS, placement modifier reference, and explicit warning about the native API name collision
27
+ - New composition pattern **"iOS-style Settings Screen (List + Popover)"** – full example reproducing iOS settings layout with two grouped lists and an inline action menu
28
+ - State Classes Overview extended (`.is-open` now also for `.glass-popover`)
29
+ - Common Mistakes table extended with 4 new entries (manual divider markup, missing `--bare`, `togglePopover` naming clash, `.is-open` on the wrong element)
30
+ - "Always follow" rules extended with list-divider and popover-naming guidance
31
+ - Quick Class Reference table extended with List and Popover rows
32
+ - **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
33
+ - **README.md "Lightweight" bullet** – now reports precise sizes (49 KB raw / 37 KB minified / 6.2 KB gzipped) instead of an approximate single number
34
+
35
+ ### Changed
36
+
37
+ - **`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
38
+ - **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
39
+ - **Sidebar navigation** in `docs.html` and `de/docs.html` extended with the new "List" link (under Content) and "Popover" link (under Actions)
40
+ - **CDN version pinning** in `README.md` and `SKILL.md` updated from `@1.3` to `@1.4` for jsDelivr (minified + unminified) and unpkg
41
+ - **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)
42
+ - **Showcase title** in `showcase.html` and `de/showcase.html` bumped to `v1.4.0`
43
+ - **Version stamps** updated to `1.4.0` in `package.json`, README badges, `glasskit.css` header, sidebar versions, and hero badges (English + German)
44
+
45
+ ### Fixed
46
+
47
+ - **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)`.
48
+ - **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.
49
+ - **`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.
50
+
51
+ ### Notes
52
+
53
+ - **No breaking changes.** All additions are additive; existing markup continues to work unchanged.
54
+ - **`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).
55
+ - **`: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).
56
+
57
+ ---
58
+
10
59
  ## [1.3.5] – 2026-04-04
11
60
 
12
61
  ### Added
@@ -221,10 +270,11 @@ during development. Version 1.3 is the first public open-source release.
221
270
 
222
271
  ---
223
272
 
273
+ [1.4.0]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.4.0
224
274
  [1.3.5]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.5
225
275
  [1.3.4]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.4
226
276
  [1.3.3]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.3
227
277
  [1.3.2]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.2
228
278
  [1.3.1]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.1
229
279
  [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
280
+ [Unreleased]: https://github.com/JUNGHERZ/GlassKit/compare/v1.4.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.4.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.4.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** – 49 KB raw / 37 KB minified / 6.2 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.4/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.4/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.4/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.4` 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
  ```