@revikornmann/muka-ui 0.2.3 → 0.2.4

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.
@@ -2049,6 +2049,12 @@ body {
2049
2049
  overflow-y: auto;
2050
2050
  overflow-x: clip;
2051
2051
  z-index: 1;
2052
+
2053
+ /* Column flow so the footer (now a scroll-area child) can pin to the bottom and
2054
+ content scrolls *behind* it — letting a floating BottomBar's frosted backdrop
2055
+ reveal the content underneath. */
2056
+ display: flex;
2057
+ flex-direction: column;
2052
2058
  }
2053
2059
 
2054
2060
  /* Inner wrapper constrains content width at the large tier (enterprise desktop)
@@ -2056,6 +2062,9 @@ body {
2056
2062
  width. Full-bleed below large. */
2057
2063
  .muka-view__body-inner {
2058
2064
  width: 100%;
2065
+ /* Grow on short content so the sticky footer is pushed to the bottom rather
2066
+ than floating mid-screen. */
2067
+ flex: 1 0 auto;
2059
2068
  }
2060
2069
 
2061
2070
  @media (min-width: 1024px) {
@@ -2075,6 +2084,8 @@ body {
2075
2084
  /* ─── Footer (e.g. BottomBar) ─────────────────────────── */
2076
2085
 
2077
2086
  .muka-view__footer {
2087
+ position: sticky;
2088
+ bottom: 0;
2078
2089
  flex-shrink: 0;
2079
2090
  z-index: 2;
2080
2091
  }
@@ -5819,6 +5830,37 @@ body {
5819
5830
  }
5820
5831
 
5821
5832
 
5833
+ /* Popover */
5834
+ /* Popover Component Styles */
5835
+
5836
+ .muka-popover__content {
5837
+ background-color: var(--color-surface-level3);
5838
+ border: var(--border-width-regular) solid var(--color-border-default);
5839
+ border-radius: var(--radius-md);
5840
+ padding: var(--spacing-4);
5841
+ box-shadow: var(--shadow-level3);
5842
+ max-width: 20rem;
5843
+ z-index: 50;
5844
+ animation: muka-popover-fade-in 150ms ease;
5845
+ }
5846
+
5847
+ @keyframes muka-popover-fade-in {
5848
+ from {
5849
+ opacity: 0;
5850
+ transform: scale(0.96);
5851
+ }
5852
+ to {
5853
+ opacity: 1;
5854
+ transform: scale(1);
5855
+ }
5856
+ }
5857
+
5858
+ /* Arrow */
5859
+ .muka-popover__arrow {
5860
+ fill: var(--color-surface-level3);
5861
+ }
5862
+
5863
+
5822
5864
  /* PieChart */
5823
5865
  /* PieChart Component Styles - Using Muka Design Tokens */
5824
5866
 
@@ -6018,67 +6060,6 @@ body {
6018
6060
  }
6019
6061
 
6020
6062
 
6021
- /* Popover */
6022
- /* Popover Component Styles */
6023
-
6024
- .muka-popover__content {
6025
- background-color: var(--color-surface-level3);
6026
- border: var(--border-width-regular) solid var(--color-border-default);
6027
- border-radius: var(--radius-md);
6028
- padding: var(--spacing-4);
6029
- box-shadow: var(--shadow-level3);
6030
- max-width: 20rem;
6031
- z-index: 50;
6032
- animation: muka-popover-fade-in 150ms ease;
6033
- }
6034
-
6035
- @keyframes muka-popover-fade-in {
6036
- from {
6037
- opacity: 0;
6038
- transform: scale(0.96);
6039
- }
6040
- to {
6041
- opacity: 1;
6042
- transform: scale(1);
6043
- }
6044
- }
6045
-
6046
- /* Arrow */
6047
- .muka-popover__arrow {
6048
- fill: var(--color-surface-level3);
6049
- }
6050
-
6051
-
6052
- /* NumberInput */
6053
- /* NumberInput — reuses Input field styles (../Input/Input.css). */
6054
- /* Only the prefix/suffix affixes are NumberInput-specific. */
6055
-
6056
- .muka-numberinput__addon {
6057
- display: inline-flex;
6058
- align-items: center;
6059
- flex: none;
6060
- color: var(--color-text-subtle-default);
6061
- font-family: var(--text-input-md-fontFamily);
6062
- font-size: var(--text-input-md-fontSize);
6063
- line-height: var(--text-input-md-lineHeight);
6064
- user-select: none;
6065
- pointer-events: none;
6066
- white-space: nowrap;
6067
- }
6068
-
6069
- /* Hide the native number spinners — affixes/step API replace them. */
6070
- .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
6071
- .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
6072
- -webkit-appearance: none;
6073
- margin: 0;
6074
- }
6075
-
6076
- .muka-numberinput__field .muka-input__native {
6077
- -moz-appearance: textfield;
6078
- appearance: textfield;
6079
- }
6080
-
6081
-
6082
6063
  /* NavigationTransition */
6083
6064
  /* NavigationTransition Component Styles */
6084
6065
 
@@ -6107,194 +6088,6 @@ body {
6107
6088
  .muka-nav-transition__view--top { z-index: 2; }
6108
6089
 
6109
6090
 
6110
- /* ListItem */
6111
- /* ListItem Component Styles - Using Muka Design Tokens */
6112
-
6113
- /* Base list item styles */
6114
- .muka-listitem {
6115
- /* Layout */
6116
- display: flex;
6117
- align-items: flex-start;
6118
- gap: var(--spacing-4);
6119
- padding: var(--spacing-5) var(--spacing-4);
6120
-
6121
- /* Background - using semantic tokens */
6122
- background-color: var(--color-surface-level3);
6123
-
6124
- /* Typography */
6125
- font-family: var(--alias-font-brand-family);
6126
-
6127
- /* Border and spacing */
6128
- border: none;
6129
- position: relative;
6130
-
6131
- /* Interaction - only apply if interactive */
6132
- transition: background-color 0.2s ease;
6133
- }
6134
-
6135
- /* Interactive state */
6136
- .muka-listitem--interactive {
6137
- cursor: pointer;
6138
- }
6139
-
6140
- .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
6141
- background-color: var(--color-surface-hover);
6142
- }
6143
-
6144
- .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
6145
- .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
6146
- background-color: var(--color-surface-pressed);
6147
- }
6148
-
6149
- /* Focus styles for accessibility */
6150
- .muka-listitem:focus-visible {
6151
- outline: 2px solid var(--color-border-focus);
6152
- outline-offset: -2px;
6153
- }
6154
-
6155
- /* Disabled state */
6156
- .muka-listitem--disabled {
6157
- opacity: 0.5;
6158
- cursor: not-allowed;
6159
- pointer-events: none;
6160
- }
6161
-
6162
- .muka-listitem--disabled:hover {
6163
- background-color: var(--color-surface-level3);
6164
- }
6165
-
6166
- /* Selected state */
6167
- .muka-listitem--selected {
6168
- background-color: var(--color-surface-level2);
6169
- }
6170
-
6171
- .muka-listitem--selected:hover {
6172
- background-color: var(--color-surface-hover);
6173
- }
6174
-
6175
- /* No divider modifier */
6176
- .muka-listitem--no-divider .muka-listitem__divider {
6177
- display: none;
6178
- }
6179
-
6180
- /* Center content vertically when no caption */
6181
- .muka-listitem--no-caption {
6182
- align-items: center;
6183
- }
6184
-
6185
- /* Leading content (icon or image) */
6186
- .muka-listitem__leading {
6187
- display: flex;
6188
- align-items: center;
6189
- justify-content: center;
6190
- flex-shrink: 0;
6191
- width: 48px;
6192
- height: 48px;
6193
- }
6194
-
6195
- .muka-listitem__icon {
6196
- display: inline-flex;
6197
- align-items: center;
6198
- justify-content: center;
6199
- width: 32px;
6200
- height: 32px;
6201
- color: var(--color-text-default-default);
6202
- }
6203
-
6204
- .muka-listitem__image {
6205
- width: 48px;
6206
- height: 48px;
6207
- border-radius: var(--radius-md);
6208
- object-fit: cover;
6209
- }
6210
-
6211
- /* Main content area */
6212
- .muka-listitem__content {
6213
- flex: 1;
6214
- display: flex;
6215
- align-items: center;
6216
- gap: var(--spacing-4);
6217
- min-width: 0;
6218
- }
6219
-
6220
- .muka-listitem__text {
6221
- flex: 1;
6222
- display: flex;
6223
- flex-direction: column;
6224
- gap: var(--spacing-1);
6225
- min-width: 0;
6226
- }
6227
-
6228
- /* Label text */
6229
- .muka-listitem__label {
6230
- margin: 0;
6231
- padding: 0;
6232
-
6233
- /* Typography - using semantic tokens */
6234
- font-family: var(--alias-font-plain-family);
6235
- font-weight: var(--alias-font-plain-weight-semibold, 600);
6236
- font-size: var(--text-label-md-fontSize);
6237
- line-height: var(--text-label-md-lineHeight);
6238
- color: var(--color-text-default-default);
6239
-
6240
- /* Text handling */
6241
- overflow: hidden;
6242
- text-overflow: ellipsis;
6243
- white-space: nowrap;
6244
- }
6245
-
6246
- /* Caption text */
6247
- .muka-listitem__caption {
6248
- margin: 0;
6249
- padding: 0;
6250
-
6251
- /* Typography - using semantic tokens */
6252
- font-family: var(--alias-font-plain-family);
6253
- font-weight: var(--alias-font-plain-weight-regular, 400);
6254
- font-size: var(--text-body-sm-fontSize);
6255
- line-height: var(--text-body-sm-lineHeight);
6256
- color: var(--color-text-subtle-default);
6257
-
6258
- /* Text handling */
6259
- overflow: hidden;
6260
- text-overflow: ellipsis;
6261
- white-space: nowrap;
6262
- }
6263
-
6264
- /* Trailing chevron */
6265
- .muka-listitem__chevron {
6266
- display: inline-flex;
6267
- align-items: center;
6268
- justify-content: center;
6269
- flex-shrink: 0;
6270
- width: 24px;
6271
- height: 24px;
6272
- color: var(--color-text-subtle-default);
6273
- }
6274
-
6275
- /* Bottom divider */
6276
- .muka-listitem__divider {
6277
- position: absolute;
6278
- bottom: 0;
6279
- left: 0;
6280
- right: 0;
6281
- height: 1px;
6282
- background-color: var(--color-border-default);
6283
- }
6284
-
6285
- /* Button and anchor specific styles */
6286
- button.muka-listitem,
6287
- a.muka-listitem {
6288
- text-align: left;
6289
- width: 100%;
6290
- }
6291
-
6292
- /* List item specific styles */
6293
- li.muka-listitem {
6294
- list-style: none;
6295
- }
6296
-
6297
-
6298
6091
  /* Menu */
6299
6092
  /* Menu Component Styles */
6300
6093
 
@@ -6578,6 +6371,224 @@ li.muka-listitem {
6578
6371
  }
6579
6372
 
6580
6373
 
6374
+ /* NumberInput */
6375
+ /* NumberInput — reuses Input field styles (../Input/Input.css). */
6376
+ /* Only the prefix/suffix affixes are NumberInput-specific. */
6377
+
6378
+ .muka-numberinput__addon {
6379
+ display: inline-flex;
6380
+ align-items: center;
6381
+ flex: none;
6382
+ color: var(--color-text-subtle-default);
6383
+ font-family: var(--text-input-md-fontFamily);
6384
+ font-size: var(--text-input-md-fontSize);
6385
+ line-height: var(--text-input-md-lineHeight);
6386
+ user-select: none;
6387
+ pointer-events: none;
6388
+ white-space: nowrap;
6389
+ }
6390
+
6391
+ /* Hide the native number spinners — affixes/step API replace them. */
6392
+ .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
6393
+ .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
6394
+ -webkit-appearance: none;
6395
+ margin: 0;
6396
+ }
6397
+
6398
+ .muka-numberinput__field .muka-input__native {
6399
+ -moz-appearance: textfield;
6400
+ appearance: textfield;
6401
+ }
6402
+
6403
+
6404
+ /* ListItem */
6405
+ /* ListItem Component Styles - Using Muka Design Tokens */
6406
+
6407
+ /* Base list item styles */
6408
+ .muka-listitem {
6409
+ /* Layout */
6410
+ display: flex;
6411
+ align-items: flex-start;
6412
+ gap: var(--spacing-4);
6413
+ padding: var(--spacing-5) var(--spacing-4);
6414
+
6415
+ /* Background - using semantic tokens */
6416
+ background-color: var(--color-surface-level3);
6417
+
6418
+ /* Typography */
6419
+ font-family: var(--alias-font-brand-family);
6420
+
6421
+ /* Border and spacing */
6422
+ border: none;
6423
+ position: relative;
6424
+
6425
+ /* Interaction - only apply if interactive */
6426
+ transition: background-color 0.2s ease;
6427
+ }
6428
+
6429
+ /* Interactive state */
6430
+ .muka-listitem--interactive {
6431
+ cursor: pointer;
6432
+ }
6433
+
6434
+ .muka-listitem--interactive:hover:not(:disabled):not(.muka-listitem--disabled) {
6435
+ background-color: var(--color-surface-hover);
6436
+ }
6437
+
6438
+ .muka-listitem--interactive:active:not(:disabled):not(.muka-listitem--disabled),
6439
+ .muka-listitem--interactive.muka-listitem--pressed:not(:disabled):not(.muka-listitem--disabled) {
6440
+ background-color: var(--color-surface-pressed);
6441
+ }
6442
+
6443
+ /* Focus styles for accessibility */
6444
+ .muka-listitem:focus-visible {
6445
+ outline: 2px solid var(--color-border-focus);
6446
+ outline-offset: -2px;
6447
+ }
6448
+
6449
+ /* Disabled state */
6450
+ .muka-listitem--disabled {
6451
+ opacity: 0.5;
6452
+ cursor: not-allowed;
6453
+ pointer-events: none;
6454
+ }
6455
+
6456
+ .muka-listitem--disabled:hover {
6457
+ background-color: var(--color-surface-level3);
6458
+ }
6459
+
6460
+ /* Selected state */
6461
+ .muka-listitem--selected {
6462
+ background-color: var(--color-surface-level2);
6463
+ }
6464
+
6465
+ .muka-listitem--selected:hover {
6466
+ background-color: var(--color-surface-hover);
6467
+ }
6468
+
6469
+ /* No divider modifier */
6470
+ .muka-listitem--no-divider .muka-listitem__divider {
6471
+ display: none;
6472
+ }
6473
+
6474
+ /* Center content vertically when no caption */
6475
+ .muka-listitem--no-caption {
6476
+ align-items: center;
6477
+ }
6478
+
6479
+ /* Leading content (icon or image) */
6480
+ .muka-listitem__leading {
6481
+ display: flex;
6482
+ align-items: center;
6483
+ justify-content: center;
6484
+ flex-shrink: 0;
6485
+ width: 48px;
6486
+ height: 48px;
6487
+ }
6488
+
6489
+ .muka-listitem__icon {
6490
+ display: inline-flex;
6491
+ align-items: center;
6492
+ justify-content: center;
6493
+ width: 32px;
6494
+ height: 32px;
6495
+ color: var(--color-text-default-default);
6496
+ }
6497
+
6498
+ .muka-listitem__image {
6499
+ width: 48px;
6500
+ height: 48px;
6501
+ border-radius: var(--radius-md);
6502
+ object-fit: cover;
6503
+ }
6504
+
6505
+ /* Main content area */
6506
+ .muka-listitem__content {
6507
+ flex: 1;
6508
+ display: flex;
6509
+ align-items: center;
6510
+ gap: var(--spacing-4);
6511
+ min-width: 0;
6512
+ }
6513
+
6514
+ .muka-listitem__text {
6515
+ flex: 1;
6516
+ display: flex;
6517
+ flex-direction: column;
6518
+ gap: var(--spacing-1);
6519
+ min-width: 0;
6520
+ }
6521
+
6522
+ /* Label text */
6523
+ .muka-listitem__label {
6524
+ margin: 0;
6525
+ padding: 0;
6526
+
6527
+ /* Typography - using semantic tokens */
6528
+ font-family: var(--alias-font-plain-family);
6529
+ font-weight: var(--alias-font-plain-weight-semibold, 600);
6530
+ font-size: var(--text-label-md-fontSize);
6531
+ line-height: var(--text-label-md-lineHeight);
6532
+ color: var(--color-text-default-default);
6533
+
6534
+ /* Text handling */
6535
+ overflow: hidden;
6536
+ text-overflow: ellipsis;
6537
+ white-space: nowrap;
6538
+ }
6539
+
6540
+ /* Caption text */
6541
+ .muka-listitem__caption {
6542
+ margin: 0;
6543
+ padding: 0;
6544
+
6545
+ /* Typography - using semantic tokens */
6546
+ font-family: var(--alias-font-plain-family);
6547
+ font-weight: var(--alias-font-plain-weight-regular, 400);
6548
+ font-size: var(--text-body-sm-fontSize);
6549
+ line-height: var(--text-body-sm-lineHeight);
6550
+ color: var(--color-text-subtle-default);
6551
+
6552
+ /* Text handling */
6553
+ overflow: hidden;
6554
+ text-overflow: ellipsis;
6555
+ white-space: nowrap;
6556
+ }
6557
+
6558
+ /* Trailing chevron */
6559
+ .muka-listitem__chevron {
6560
+ display: inline-flex;
6561
+ align-items: center;
6562
+ justify-content: center;
6563
+ flex-shrink: 0;
6564
+ width: 24px;
6565
+ height: 24px;
6566
+ color: var(--color-text-subtle-default);
6567
+ }
6568
+
6569
+ /* Bottom divider */
6570
+ .muka-listitem__divider {
6571
+ position: absolute;
6572
+ bottom: 0;
6573
+ left: 0;
6574
+ right: 0;
6575
+ height: 1px;
6576
+ background-color: var(--color-border-default);
6577
+ }
6578
+
6579
+ /* Button and anchor specific styles */
6580
+ button.muka-listitem,
6581
+ a.muka-listitem {
6582
+ text-align: left;
6583
+ width: 100%;
6584
+ }
6585
+
6586
+ /* List item specific styles */
6587
+ li.muka-listitem {
6588
+ list-style: none;
6589
+ }
6590
+
6591
+
6581
6592
  /* LicensePlateInput */
6582
6593
  /* LicensePlateInput — Dutch RDW-style plate input
6583
6594
  *
@@ -10406,6 +10417,15 @@ li.muka-listitem {
10406
10417
  backdrop-filter: blur(var(--bottombar-floating-backdrop-blur));
10407
10418
  -webkit-backdrop-filter: blur(var(--bottombar-floating-backdrop-blur));
10408
10419
  padding: var(--bottombar-floating-padding-top) var(--bottombar-floating-margin-x) var(--bottombar-floating-margin-bottom);
10420
+
10421
+ /* The transparent frosted margin around the pill overlays scrolling content;
10422
+ let scroll/taps fall through to that content, keeping only the pill itself
10423
+ interactive (re-enabled on __content below). */
10424
+ pointer-events: none;
10425
+ }
10426
+
10427
+ .muka-bottombar--floating .muka-bottombar__content {
10428
+ pointer-events: auto;
10409
10429
  }
10410
10430
 
10411
10431
  .muka-bottombar--floating .muka-bottombar__content {