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