@jungherz-de/glasskit 1.3.4 → 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,17 +7,80 @@ GlassKit uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ---
9
9
 
10
- ## [1.3.4] – 2026-03-29
10
+ ## [1.4.0] – 2026-04-11
11
11
 
12
12
  ### Added
13
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
+
59
+ ## [1.3.5] – 2026-04-04
60
+
61
+ ### Added
62
+
63
+ - **`SKILL.md` – AI-optimized component reference** – a structured, machine-readable reference document designed for LLMs, AI copilots, and code-generation tools
64
+ - Copy-paste-ready HTML for all 22 components with exact nesting and BEM hierarchy
65
+ - Complete design token tables (colors, surfaces, borders, blur, radii, spacing, shadows, typography)
66
+ - State class reference – clear mapping of `is-active`, `is-open`, `is-visible`, `:checked`, `:focus`, `:disabled` to their components
67
+ - 6 composition patterns – full page layouts: Login, Dashboard, Form, Modal confirmation, Settings, Progress + Toast
68
+ - Common mistakes & corrections table – prevents frequent AI-generated errors
69
+ - Quick reference table – all components with modifiers at a glance
70
+ - Utility class reference with exact gap/margin values
71
+ - Web Components / Shadow DOM usage guide
72
+ - Custom theming instructions
14
73
  - **Visual preview for Tab-Bar** in `docs.html` and `de/docs.html` – live rendered tab bar with 4 tabs (Home, Documents with badge, Upload, Settings)
15
74
  - **Visual preview for Toast** in `docs.html` and `de/docs.html` – static success toast rendered inline
16
75
  - **HTML code example for Status Notice** in `docs.html` and `de/docs.html` – was previously preview-only without code snippet
17
76
 
18
77
  ### Changed
19
78
 
20
- - Version references updated to 1.3.4 across all files
79
+ - **README.md** – new “AI / LLM Reference” section documenting `SKILL.md` purpose and usage, “AI-ready” added to “Why GlassKit?”
80
+ - **Project structure** in README updated to include `SKILL.md`
81
+ - **docs.html & de/docs.html** – new “AI Reference” / “KI-Referenz” section with sidebar link
82
+ - **index.html & de/index.html** – SKILL.md added to project file list
83
+ - Version references updated to 1.3.5 across all files
21
84
 
22
85
  ---
23
86
 
@@ -207,9 +270,11 @@ during development. Version 1.3 is the first public open-source release.
207
270
 
208
271
  ---
209
272
 
273
+ [1.4.0]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.4.0
274
+ [1.3.5]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.5
210
275
  [1.3.4]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.4
211
276
  [1.3.3]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.3
212
277
  [1.3.2]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.2
213
278
  [1.3.1]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.1
214
279
  [1.3.0]: https://github.com/JUNGHERZ/GlassKit/releases/tag/v1.3.0
215
- [Unreleased]: https://github.com/JUNGHERZ/GlassKit/compare/v1.3.4...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.4-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.4-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,8 +48,9 @@ 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
+ - 🤖 **AI-ready** – ships with [`SKILL.md`](SKILL.md), a structured reference for LLMs & AI copilots
53
54
 
54
55
  ---
55
56
 
@@ -63,16 +64,16 @@ No download, no build tool – just include and go:
63
64
 
64
65
  ```html
65
66
  <!-- jsDelivr – Minified -->
66
- <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">
67
68
 
68
69
  <!-- jsDelivr – Unminified (for reading/debugging) -->
69
- <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">
70
71
 
71
72
  <!-- unpkg – Alternative -->
72
- <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">
73
74
  ```
74
75
 
75
- > **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.
76
77
 
77
78
  ### npm / yarn / pnpm
78
79
 
@@ -176,6 +177,7 @@ Download the files directly from the [GitHub Release](https://github.com/JUNGHER
176
177
  | **Badge** | `.glass-badge` | Tags & labels |
177
178
  | **Avatar** | `.glass-avatar` | Glass circle (sm/md/lg) |
178
179
  | **Status** | `.glass-status` | Notice card with icon |
180
+ | **List** | `.glass-list` | iOS-style grouped settings list with auto dividers |
179
181
 
180
182
  ### Actions & Feedback
181
183
 
@@ -186,6 +188,7 @@ Download the files directly from the [GitHub Release](https://github.com/JUNGHER
186
188
  | **Button (Tertiary)** | `.glass-btn--tertiary` | Subtle glass – tertiary action |
187
189
  | **Modal** | `.glass-modal` | Centered dialog with blur overlay |
188
190
  | **Toast** | `.glass-toast` | Temporary notification |
191
+ | **Popover** | `.glass-popover` | Anchored dropdown / menu with fade & scale animation |
189
192
 
190
193
  ### Form Elements
191
194
 
@@ -428,6 +431,7 @@ glasskit/
428
431
  ├── showcase.html # Interactive showcase of all components
429
432
  ├── docs.html # Full documentation
430
433
  ├── de/ # German translations (index, docs, showcase)
434
+ ├── SKILL.md # AI-optimized component reference (for LLMs & copilots)
431
435
  ├── LICENSE # MIT License
432
436
  └── README.md # This file
433
437
  ```
@@ -438,7 +442,7 @@ glasskit/
438
442
 
439
443
  The full documentation with **live previews**, **copy-paste code blocks**, and **class reference tables** is available in `docs.html`:
440
444
 
441
- - Sidebar navigation to all 22 components
445
+ - Sidebar navigation to all 24 components
442
446
  - Live previews on a real glassmorphism background
443
447
  - Design token reference
444
448
  - Theming guide
@@ -462,6 +466,27 @@ Useful links:
462
466
 
463
467
  ---
464
468
 
469
+ ## 🤖 AI / LLM Reference (`SKILL.md`)
470
+
471
+ GlassKit ships with an **AI-optimized component reference** in [`SKILL.md`](SKILL.md). This file is designed for LLMs, AI copilots, and code-generation tools to produce correct GlassKit markup without parsing `docs.html`.
472
+
473
+ ### What it provides
474
+
475
+ - **Copy-paste-ready HTML** for all 24 components with exact nesting rules
476
+ - **Complete design token tables** (colors, surfaces, blur, radii, spacing, shadows, typography)
477
+ - **State class reference** – which class goes where (`is-active`, `is-open`, `is-visible`, `:checked`)
478
+ - **6 composition patterns** – full page layouts (Login, Dashboard, Form, Modal, Settings, Progress)
479
+ - **Common mistakes & corrections** – prevents the most frequent AI-generated errors
480
+ - **Quick reference table** – all components with their modifiers at a glance
481
+
482
+ ### Usage with AI assistants
483
+
484
+ Attach or reference `SKILL.md` when asking an AI to generate GlassKit HTML. It provides the structured context needed for production-ready output – correct BEM hierarchy, proper modifier usage, and idiomatic component composition.
485
+
486
+ > **Tip:** While `docs.html` is built for humans browsing with live previews, `SKILL.md` is built for machines generating code. Both are kept in sync.
487
+
488
+ ---
489
+
465
490
  ## 🌐 Browser Compatibility
466
491
 
467
492
  GlassKit uses `backdrop-filter` for glass effects. Support:
@@ -482,7 +507,7 @@ GlassKit uses `backdrop-filter` for glass effects. Support:
482
507
  ```
483
508
  Interactive States:
484
509
  .is-active → Tab Bar item, Modal Overlay
485
- .is-open → Accordion item
510
+ .is-open → Accordion item, Popover
486
511
  .is-visible → Toast
487
512
  :checked → Toggle, Checkbox, Radio
488
513
  :focus → Input, Textarea, Select, Range
@@ -511,6 +536,13 @@ Toast Modifiers:
511
536
  Modal Action Modifiers:
512
537
  .glass-modal__action--primary / --danger
513
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
+
514
546
  Background Modifiers:
515
547
  .glass-bg--has-tab-bar
516
548
  ```