@jungherz-de/glasskit 1.36.0 → 1.37.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/glasskit.css CHANGED
@@ -1,6 +1,6 @@
1
1
  /* ============================================================
2
2
  GLASSKIT COMPONENT LIBRARY
3
- Jungherz GmbH – v1.36.0
3
+ Jungherz GmbH – v1.37.0
4
4
 
5
5
  Features:
6
6
  - Scoped Reset (box-sizing fix)
@@ -971,6 +971,17 @@ a.glass-btn { display: inline-flex; text-decoration: none; }
971
971
  .glass-input-group--label-end > .glass-input-group__label-end { grid-column: 2; grid-row: 1; justify-self: end; }
972
972
  .glass-input-group__label-end { font-size: var(--gl-font-size-sm); }
973
973
  .glass-input-group__label-end[hidden] { display: none; }
974
+ /* A character counter at the end of the label row (since 1.37.0): "12/145"
975
+ for a field with a maximum length, in the error colour past it — a value
976
+ set by script may be longer, the limit only stops typing. In
977
+ __label-end, after a link that stands there. */
978
+ .glass-input-group__counter {
979
+ margin-inline-start: var(--gl-space-sm);
980
+ color: var(--gl-color-text-muted);
981
+ font-variant-numeric: tabular-nums;
982
+ }
983
+ .glass-input-group__counter.is-over { color: var(--gl-color-error); }
984
+ .glass-input-group__counter[hidden] { display: none; }
974
985
 
975
986
  .glass-input {
976
987
  width: 100%; height: var(--gl-control-height, 52px);
@@ -1157,6 +1168,11 @@ a.glass-btn { display: inline-flex; text-decoration: none; }
1157
1168
  box-shadow: var(--gl-shadow-focus), var(--gl-inset-medium);
1158
1169
  }
1159
1170
  .glass-select option { background: var(--gl-color-bg-mid); color: var(--gl-color-text); }
1171
+ /* A placeholder (since 1.37.0): a first option with an empty value,
1172
+ disabled and hidden — the native pattern — is chosen while nothing is,
1173
+ and the field says it in the placeholder colour, as an input does. A
1174
+ value that matched no option showed the first real one as chosen. */
1175
+ .glass-select:has(> option:first-child[value=""][disabled]:checked) { color: var(--gl-placeholder); }
1160
1176
  /* Disabled like .glass-input. */
1161
1177
  .glass-select:disabled,
1162
1178
  .glass-textarea:disabled { opacity: 0.4; cursor: not-allowed; }
@@ -2721,7 +2737,7 @@ a.glass-tab-bar__item { text-decoration: none; color: inherit; }
2721
2737
  22. AVATAR
2722
2738
  ============================================================ */
2723
2739
  .glass-avatar {
2724
- width: 44px; height: 44px;
2740
+ width: var(--gl-avatar-size, 44px); height: var(--gl-avatar-size, 44px);
2725
2741
  border-radius: var(--gl-radius-pill);
2726
2742
  background: var(--gl-surface-3);
2727
2743
  backdrop-filter: blur(var(--gl-blur-soft));
@@ -2731,14 +2747,18 @@ a.glass-tab-bar__item { text-decoration: none; color: inherit; }
2731
2747
  overflow: hidden;
2732
2748
  box-shadow: var(--gl-shadow-glow), var(--gl-inset-medium);
2733
2749
  flex-shrink: 0;
2734
- font-size: var(--gl-font-size-btn);
2750
+ font-size: var(--gl-avatar-font-size, var(--gl-font-size-btn));
2735
2751
  font-weight: var(--gl-font-weight-semibold);
2736
2752
  color: var(--gl-color-text);
2737
2753
  }
2738
2754
  .glass-avatar img,
2739
2755
  .glass-avatar ::slotted(img) { width: 100%; height: 100%; object-fit: cover; }
2740
- .glass-avatar--sm { width: 32px; height: 32px; font-size: var(--gl-font-size-xs); }
2741
- .glass-avatar--lg { width: 56px; height: 56px; font-size: var(--gl-font-size-lg); }
2756
+ /* 44px, --sm 32px, --lg 56px. --gl-avatar-size (since 1.37.0) sets any
2757
+ other size, on the avatar or a container around it, and
2758
+ --gl-avatar-font-size the initials' size with it. In the leading box of a
2759
+ list row an avatar takes the box's size (see LIST). */
2760
+ .glass-avatar--sm { width: var(--gl-avatar-size, 32px); height: var(--gl-avatar-size, 32px); font-size: var(--gl-avatar-font-size, var(--gl-font-size-xs)); }
2761
+ .glass-avatar--lg { width: var(--gl-avatar-size, 56px); height: var(--gl-avatar-size, 56px); font-size: var(--gl-avatar-font-size, var(--gl-font-size-lg)); }
2742
2762
 
2743
2763
 
2744
2764
  /* ============================================================
@@ -3176,8 +3196,13 @@ a.glass-tab-bar__item { text-decoration: none; color: inherit; }
3176
3196
 
3177
3197
  /* --gl-list-leading-width (since 1.36.0) widens the box for more than an
3178
3198
  icon — a time and a chip before the text; the divider follows it. A
3179
- length: for anything else set --gl-list-item-divider-inset as well. */
3199
+ length: for anything else set --gl-list-item-divider-inset as well.
3200
+ An avatar in the box takes its size (since 1.37.0): 28px, 40px in --lg —
3201
+ a contact list. A 44px one was cut by the 40px box, a 32px one looked
3202
+ lost in it. --gl-avatar-size on the avatar itself still decides. */
3180
3203
  .glass-list__leading {
3204
+ --gl-avatar-size: 28px;
3205
+ --gl-avatar-font-size: var(--gl-font-size-xs);
3181
3206
  flex-shrink: 0;
3182
3207
  width: var(--gl-list-leading-width, 28px);
3183
3208
  height: 28px;
@@ -3201,6 +3226,8 @@ a.glass-tab-bar__item { text-decoration: none; color: inherit; }
3201
3226
  stroke-linejoin: round;
3202
3227
  }
3203
3228
  .glass-list__leading--lg {
3229
+ --gl-avatar-size: 40px;
3230
+ --gl-avatar-font-size: var(--gl-font-size-base);
3204
3231
  width: var(--gl-list-leading-width, 40px);
3205
3232
  height: 40px;
3206
3233
  border-radius: var(--gl-radius-xs);