@rhinestone/deposit-modal 0.3.0-alpha.4 → 0.3.0-alpha.5

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/dist/styles.css CHANGED
@@ -1,6 +1,10 @@
1
1
  /* ABOUTME: Styles for the deposit-modal component. */
2
2
  /* ABOUTME: Uses CSS variables for theming - matches deposit-widget design exactly. */
3
3
 
4
+ /* Self-host the Figma typefaces so the modal renders with the correct
5
+ weights regardless of whether the consumer app loads Inter / Geist Mono. */
6
+ @import url("https://fonts.googleapis.com/css2?family=Geist+Mono:wght@500&family=Inter:wght@400;500;600;700&display=swap");
7
+
4
8
  /* =============================================================================
5
9
  CSS Variables (Light Mode Default) - Using Radix Gray Scale
6
10
  ============================================================================= */
@@ -54,9 +58,22 @@
54
58
  /* Semantic colors */
55
59
  --rs-background: #ffffff;
56
60
  --rs-background-secondary: var(--color-gray1);
57
- --rs-surface-subtle: #fafafa;
61
+ --rs-surface-subtle: #fcfbfb;
58
62
  --rs-surface: var(--color-gray3);
59
63
  --rs-surface-hover: var(--color-gray4);
64
+ /* Figma: icon-wrapper tokens. Same as surface in light, but dark mode
65
+ diverges so we keep them separate. */
66
+ --rs-icon-wrapper-bg: #f4f4f5;
67
+ --rs-icon-wrapper-icon: #9f9fa9;
68
+ /* Figma input/label + view/icon-secondary — differ from the generic
69
+ gray scale: light-mode label/icon is zinc-600 (#52525c), dark mode
70
+ falls to zinc-400 (#9f9fa9). */
71
+ --rs-input-label: #52525c;
72
+ --rs-icon-secondary: #52525c;
73
+ /* Figma button-dark-ghost token — used by amount-step presets. */
74
+ --rs-button-ghost-bg: #e4e4e7;
75
+ --rs-button-ghost-bg-hover: #d4d4d8;
76
+ --rs-button-ghost-text: #27272a;
60
77
 
61
78
  /* Primary (CTA). Default theme uses the dark-on-light pair.
62
79
  A custom theme overrides these directly via inline CSS vars,
@@ -72,7 +89,7 @@
72
89
 
73
90
  --rs-success: var(--color-green9);
74
91
  --rs-success-tint: var(--color-green3);
75
- --rs-error: var(--color-red9);
92
+ --rs-error: #fb2c36;
76
93
  --rs-error-tint: var(--color-red3);
77
94
  --rs-warning: var(--color-amber11);
78
95
  --rs-warning-tint: var(--color-amber3);
@@ -106,10 +123,12 @@
106
123
  --rs-radius-full: 9999px;
107
124
  --rs-radius: var(--rs-radius-md);
108
125
 
109
- /* Typography */
126
+ /* Typography. Figma uses Inter; we list it first and fall back to the
127
+ system stack so consumers that load Inter get the exact design, and
128
+ everyone else gets a sensible default. */
110
129
  font-family:
111
- -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial,
112
- sans-serif;
130
+ "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica,
131
+ Arial, sans-serif;
113
132
  font-size: 14px;
114
133
  line-height: 1.5;
115
134
  color: var(--rs-foreground);
@@ -118,12 +137,15 @@
118
137
  -moz-osx-font-smoothing: grayscale;
119
138
  position: relative;
120
139
  /* Flex column so children (header + body) can split available height with
121
- the body region scrolling when it overflows. */
140
+ the body region scrolling when it overflows. Figma: modal applies a
141
+ 16px padding and 16px gap between the header row and the body. */
122
142
  display: flex;
123
143
  flex-direction: column;
124
144
  flex: 1;
125
145
  min-height: 0;
126
146
  overflow: hidden;
147
+ padding: 16px;
148
+ gap: 16px;
127
149
  }
128
150
 
129
151
  /* =============================================================================
@@ -165,14 +187,27 @@
165
187
  --color-neutral10: #e4e4e7;
166
188
  --color-neutral11: #d4d4d8;
167
189
 
168
- --rs-background: #0c0c0c;
190
+ --rs-background: #0a0a0a;
169
191
  /* Well / dropdown / QR-card surface in dark mode. Used by anything that
170
192
  renders an elevated container (asset rows, QR well, select inputs). */
171
193
  --rs-background-secondary: #18181b;
172
194
  --rs-surface-subtle: #18181b;
173
195
  --rs-surface: #27272a;
196
+ /* Figma: icon-wrapper/background — separate from --rs-surface so the
197
+ deposit-header icon tile stays #18181b in dark mode. */
198
+ --rs-icon-wrapper-bg: #18181b;
199
+ --rs-icon-wrapper-icon: #52525c;
200
+ --rs-input-label: #9f9fa9;
201
+ --rs-icon-secondary: #9f9fa9;
202
+ --rs-button-ghost-bg: #27272a;
203
+ --rs-button-ghost-bg-hover: #3f3f46;
204
+ --rs-button-ghost-text: #e4e4e7;
174
205
  --rs-surface-hover: #3f3f46;
175
- --rs-primary-foreground: #18181b;
206
+ /* Figma button-dark in dark mode: zinc-200 disc, near-black label. */
207
+ --rs-primary: #e4e4e7;
208
+ --rs-primary-hover: #d4d4d8;
209
+ --rs-primary-active: #9f9fa9;
210
+ --rs-primary-foreground: #09090b;
176
211
  --rs-primary-disabled-bg: #27272a;
177
212
  --rs-primary-disabled-fg: #71717b;
178
213
  --rs-icon: var(--color-gray10);
@@ -207,7 +242,7 @@
207
242
  }
208
243
 
209
244
  .rs-modal-content {
210
- --rs-radius-lg: 14px;
245
+ --rs-radius-lg: 16px;
211
246
  --rs-background: #ffffff;
212
247
  --rs-border: #f4f4f5;
213
248
 
@@ -229,7 +264,7 @@
229
264
  }
230
265
 
231
266
  .rs-modal-content[data-theme="dark"] {
232
- --rs-background: #0c0c0c;
267
+ --rs-background: #0a0a0a;
233
268
  --rs-border: #18181b;
234
269
  }
235
270
 
@@ -878,9 +913,9 @@
878
913
  width: 100%;
879
914
  display: flex;
880
915
  align-items: center;
881
- gap: 12px;
882
- padding: 10px 8px;
883
- background-color: var(--rs-surface-subtle);
916
+ gap: 16px;
917
+ padding: 16px 12px;
918
+ background-color: transparent;
884
919
  border: none;
885
920
  border-radius: 8px;
886
921
  cursor: pointer;
@@ -890,7 +925,7 @@
890
925
  }
891
926
 
892
927
  .rs-asset-row:hover:not(:disabled) {
893
- background-color: var(--rs-surface);
928
+ background-color: var(--rs-surface-subtle);
894
929
  }
895
930
 
896
931
  .rs-asset-row:focus-visible {
@@ -898,7 +933,8 @@
898
933
  outline-offset: 2px;
899
934
  }
900
935
 
901
- .rs-asset-row--selected {
936
+ .rs-asset-row--selected,
937
+ .rs-asset-row--selected:hover:not(:disabled) {
902
938
  background-color: var(--rs-surface);
903
939
  }
904
940
 
@@ -907,7 +943,7 @@
907
943
  flex: 1;
908
944
  min-width: 0;
909
945
  align-items: center;
910
- gap: 12px;
946
+ gap: 16px;
911
947
  }
912
948
 
913
949
  /* Icon group — token glyph (32px) with the chain glyph (14px) overlapping
@@ -920,8 +956,8 @@
920
956
  }
921
957
 
922
958
  .rs-asset-icon {
923
- width: 32px;
924
- height: 32px;
959
+ width: 28px;
960
+ height: 28px;
925
961
  margin-right: -10px;
926
962
  border-radius: 50%;
927
963
  background-color: var(--rs-surface);
@@ -999,7 +1035,7 @@
999
1035
 
1000
1036
  .rs-asset-balance {
1001
1037
  flex-shrink: 0;
1002
- font-size: 18px;
1038
+ font-size: 12px;
1003
1039
  font-weight: 500;
1004
1040
  color: var(--rs-foreground);
1005
1041
  text-align: right;
@@ -1571,7 +1607,9 @@
1571
1607
  display: flex;
1572
1608
  flex-direction: column;
1573
1609
  flex-grow: 1;
1574
- padding: 12px;
1610
+ /* Outer padding now lives on the parent .rs-modal; this container only
1611
+ manages the vertical rhythm between body slot and powered-by. */
1612
+ padding: 0;
1575
1613
  gap: 16px;
1576
1614
  }
1577
1615
 
@@ -1624,6 +1662,32 @@
1624
1662
  color: var(--rs-foreground);
1625
1663
  }
1626
1664
 
1665
+ /* Inline "Disconnect" pill that sits inside a connected-wallet ListRow's
1666
+ meta slot. Figma: 14/Medium text, padded 12/16, transparent background
1667
+ so the row's surface shows through. */
1668
+ .rs-list-row-action {
1669
+ appearance: none;
1670
+ border: none;
1671
+ background: transparent;
1672
+ padding: 12px 16px;
1673
+ border-radius: 8px;
1674
+ font-family: inherit;
1675
+ font-size: 14px;
1676
+ font-weight: 500;
1677
+ color: var(--rs-foreground);
1678
+ cursor: pointer;
1679
+ white-space: nowrap;
1680
+ }
1681
+
1682
+ .rs-list-row-action:hover {
1683
+ background: var(--rs-surface-hover);
1684
+ }
1685
+
1686
+ .rs-list-row-action:focus-visible {
1687
+ outline: 2px solid var(--rs-border-accent);
1688
+ outline-offset: 2px;
1689
+ }
1690
+
1627
1691
  .rs-connect-transfer-link {
1628
1692
  margin-top: 10px;
1629
1693
  padding: 0;
@@ -1853,7 +1917,8 @@
1853
1917
  align-items: center;
1854
1918
  justify-content: space-between;
1855
1919
  min-height: 24px;
1856
- padding: 12px 12px 0;
1920
+ /* Padding/gap now live on the parent .rs-modal (matches Figma 1:1). */
1921
+ padding: 0;
1857
1922
  background-color: transparent;
1858
1923
  border-bottom: none;
1859
1924
  }
@@ -1989,19 +2054,20 @@
1989
2054
  flex: 1 0 0;
1990
2055
  min-width: 0;
1991
2056
  padding: 12px 16px;
1992
- background: var(--rs-surface);
2057
+ background: var(--rs-button-ghost-bg);
1993
2058
  border: none;
1994
2059
  border-radius: 8px;
1995
2060
  font-family: inherit;
1996
2061
  font-size: 14px;
1997
2062
  font-weight: 500;
1998
- color: var(--rs-foreground);
2063
+ line-height: normal;
2064
+ color: var(--rs-button-ghost-text);
1999
2065
  cursor: pointer;
2000
2066
  transition: background-color 0.15s;
2001
2067
  }
2002
2068
 
2003
2069
  .rs-amount-preset-btn:hover:not(:disabled) {
2004
- background: var(--rs-surface-hover);
2070
+ background: var(--rs-button-ghost-bg-hover);
2005
2071
  }
2006
2072
 
2007
2073
  .rs-amount-preset-btn:focus-visible {
@@ -2017,10 +2083,30 @@
2017
2083
  .rs-amount-details {
2018
2084
  display: flex;
2019
2085
  flex-direction: column;
2020
- gap: 12px;
2086
+ gap: 4px;
2021
2087
  }
2022
2088
 
2023
2089
  .rs-amount-detail-row {
2090
+ display: flex;
2091
+ align-items: center;
2092
+ justify-content: space-between;
2093
+ gap: 12px;
2094
+ font-size: 12px;
2095
+ font-weight: 500;
2096
+ color: var(--rs-muted);
2097
+ line-height: normal;
2098
+ }
2099
+
2100
+ /* Review-deposit detail rows (ConfirmStep) — Figma uses 14px Medium with
2101
+ 8px stack gap, vs the wallet-deposit-amount rows which are 12px / 4px. */
2102
+ .rs-review-details {
2103
+ display: flex;
2104
+ flex-direction: column;
2105
+ gap: 8px;
2106
+ width: 100%;
2107
+ }
2108
+
2109
+ .rs-review-detail-row {
2024
2110
  display: flex;
2025
2111
  align-items: center;
2026
2112
  justify-content: space-between;
@@ -2031,6 +2117,68 @@
2031
2117
  line-height: normal;
2032
2118
  }
2033
2119
 
2120
+ .rs-review-detail-value {
2121
+ display: flex;
2122
+ align-items: center;
2123
+ gap: 4px;
2124
+ color: var(--rs-muted);
2125
+ font-feature-settings: "tnum";
2126
+ }
2127
+
2128
+ .rs-review-detail-icon {
2129
+ width: 16px;
2130
+ height: 16px;
2131
+ border-radius: 50%;
2132
+ overflow: hidden;
2133
+ flex-shrink: 0;
2134
+ background: var(--rs-background);
2135
+ }
2136
+
2137
+ .rs-review-detail-icon img {
2138
+ width: 100%;
2139
+ height: 100%;
2140
+ object-fit: cover;
2141
+ }
2142
+
2143
+ .rs-review-detail-info {
2144
+ display: inline-flex;
2145
+ width: 16px;
2146
+ height: 16px;
2147
+ align-items: center;
2148
+ justify-content: center;
2149
+ color: var(--rs-icon-secondary);
2150
+ cursor: help;
2151
+ }
2152
+
2153
+ .rs-review-detail-info svg {
2154
+ width: 16px;
2155
+ height: 16px;
2156
+ }
2157
+
2158
+ .rs-review-detail-link {
2159
+ display: inline-flex;
2160
+ width: 16px;
2161
+ height: 16px;
2162
+ align-items: center;
2163
+ justify-content: center;
2164
+ color: var(--rs-muted);
2165
+ text-decoration: none;
2166
+ transition: opacity 0.15s;
2167
+ }
2168
+
2169
+ .rs-review-detail-link:hover {
2170
+ opacity: 0.7;
2171
+ }
2172
+
2173
+ .rs-review-detail-link svg {
2174
+ width: 14px;
2175
+ height: 14px;
2176
+ }
2177
+
2178
+ .rs-review-detail-value--strike {
2179
+ text-decoration: line-through;
2180
+ }
2181
+
2034
2182
  .rs-amount-detail-value {
2035
2183
  display: flex;
2036
2184
  align-items: center;
@@ -2277,7 +2425,8 @@
2277
2425
  .rs-withdraw-label {
2278
2426
  font-size: 14px;
2279
2427
  font-weight: 500;
2280
- color: var(--rs-muted);
2428
+ line-height: normal;
2429
+ color: var(--rs-input-label);
2281
2430
  }
2282
2431
 
2283
2432
  .rs-withdraw-label--sm {
@@ -2290,7 +2439,7 @@
2290
2439
  gap: 8px;
2291
2440
  padding: 12px;
2292
2441
  background: var(--rs-surface-subtle);
2293
- border-radius: var(--rs-radius-md);
2442
+ border-radius: 8px;
2294
2443
  border: 1px solid var(--rs-surface-subtle);
2295
2444
  }
2296
2445
 
@@ -2299,6 +2448,8 @@
2299
2448
  border: none;
2300
2449
  background: transparent;
2301
2450
  font-size: 14px;
2451
+ font-weight: 400;
2452
+ line-height: 20px;
2302
2453
  color: var(--rs-foreground);
2303
2454
  outline: none;
2304
2455
  min-width: 0;
@@ -2310,9 +2461,9 @@
2310
2461
  }
2311
2462
 
2312
2463
  .rs-withdraw-input--address {
2313
- font-family:
2314
- ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;
2464
+ font-family: inherit;
2315
2465
  font-size: 14px;
2466
+ font-weight: 400;
2316
2467
  }
2317
2468
 
2318
2469
  .rs-withdraw-input--amount {
@@ -2399,12 +2550,14 @@
2399
2550
  }
2400
2551
 
2401
2552
  .rs-withdraw-max-btn {
2402
- padding: 8px 16px;
2553
+ padding: 12px 16px;
2403
2554
  background: transparent;
2404
- border: 1.19px solid var(--rs-foreground);
2555
+ border: 1.191px solid var(--rs-foreground);
2405
2556
  border-radius: 8px;
2406
- font-size: 14px;
2557
+ font-family: inherit;
2558
+ font-size: 16px;
2407
2559
  font-weight: 500;
2560
+ line-height: normal;
2408
2561
  color: var(--rs-foreground);
2409
2562
  cursor: pointer;
2410
2563
  white-space: nowrap;
@@ -2426,8 +2579,9 @@
2426
2579
  display: flex;
2427
2580
  align-items: center;
2428
2581
  justify-content: space-between;
2429
- font-size: 13px;
2582
+ font-size: 12px;
2430
2583
  font-weight: 500;
2584
+ line-height: normal;
2431
2585
  padding: 0;
2432
2586
  }
2433
2587
 
@@ -2461,14 +2615,15 @@
2461
2615
  justify-content: space-between;
2462
2616
  padding: 12px;
2463
2617
  background: var(--rs-surface-subtle);
2464
- border-radius: var(--rs-radius-md);
2618
+ border-radius: 8px;
2465
2619
  border: 1px solid var(--rs-surface-subtle);
2466
2620
  cursor: pointer;
2467
2621
  transition:
2468
2622
  border-color 0.15s,
2469
2623
  background-color 0.15s;
2470
2624
  width: 100%;
2471
- font-size: 16px;
2625
+ font-size: 14px;
2626
+ line-height: normal;
2472
2627
  }
2473
2628
 
2474
2629
  .rs-withdraw-dropdown:hover {
@@ -2500,9 +2655,9 @@
2500
2655
  }
2501
2656
 
2502
2657
  .rs-withdraw-dropdown-arrow {
2503
- width: 16px;
2504
- height: 16px;
2505
- color: var(--rs-muted-foreground);
2658
+ width: 24px;
2659
+ height: 24px;
2660
+ color: var(--rs-icon-secondary);
2506
2661
  transition: transform 0.15s;
2507
2662
  }
2508
2663
 
@@ -2676,9 +2831,10 @@
2676
2831
  }
2677
2832
 
2678
2833
  .rs-deposit-address-dropdown-label {
2679
- font-size: 12px;
2834
+ font-size: 11px;
2680
2835
  font-weight: 500;
2681
- color: var(--rs-muted-foreground);
2836
+ line-height: normal;
2837
+ color: var(--rs-input-label);
2682
2838
  margin: 0;
2683
2839
  }
2684
2840
 
@@ -2693,14 +2849,16 @@
2693
2849
  display: inline-flex;
2694
2850
  align-items: center;
2695
2851
  gap: 4px;
2696
- color: var(--rs-muted-foreground);
2852
+ font-size: 11px;
2853
+ font-weight: 500;
2854
+ color: var(--rs-input-label);
2697
2855
  }
2698
2856
 
2699
2857
  .rs-deposit-address-min-icon {
2700
2858
  width: 16px;
2701
2859
  height: 16px;
2702
2860
  flex-shrink: 0;
2703
- color: inherit;
2861
+ color: var(--rs-icon-secondary);
2704
2862
  }
2705
2863
 
2706
2864
  /* Price impact accordion — sits at the bottom of the transfer-crypto
@@ -2738,7 +2896,7 @@
2738
2896
  justify-content: center;
2739
2897
  width: 16px;
2740
2898
  height: 16px;
2741
- color: var(--rs-muted);
2899
+ color: var(--rs-icon-secondary);
2742
2900
  flex-shrink: 0;
2743
2901
  }
2744
2902
 
@@ -2748,7 +2906,7 @@
2748
2906
  }
2749
2907
 
2750
2908
  .rs-price-impact-label {
2751
- font-size: 14px;
2909
+ font-size: 12px;
2752
2910
  font-weight: 500;
2753
2911
  color: var(--rs-muted);
2754
2912
  }
@@ -2803,7 +2961,7 @@
2803
2961
  align-items: center;
2804
2962
  gap: 8px;
2805
2963
  padding-top: 12px;
2806
- font-size: 14px;
2964
+ font-size: 12px;
2807
2965
  color: var(--rs-muted);
2808
2966
  }
2809
2967
 
@@ -2883,7 +3041,7 @@
2883
3041
  align-items: center;
2884
3042
  gap: 8px;
2885
3043
  width: 100%;
2886
- padding: 8px 12px;
3044
+ padding: 12px;
2887
3045
  background: var(--rs-surface-subtle);
2888
3046
  border-radius: 8px;
2889
3047
  border: 1px solid var(--rs-surface-subtle);
@@ -2893,6 +3051,7 @@
2893
3051
  background-color 0.15s;
2894
3052
  font-size: 14px;
2895
3053
  font-weight: 500;
3054
+ line-height: normal;
2896
3055
  color: var(--rs-foreground);
2897
3056
  font-family: inherit;
2898
3057
  }
@@ -2902,6 +3061,14 @@
2902
3061
  border-color: var(--rs-surface);
2903
3062
  }
2904
3063
 
3064
+ .rs-deposit-address-dropdown-trigger--open {
3065
+ border-color: #9f9fa9;
3066
+ }
3067
+
3068
+ .rs-deposit-address-dropdown-trigger--open:hover {
3069
+ border-color: #9f9fa9;
3070
+ }
3071
+
2905
3072
  .rs-deposit-address-dropdown-icon {
2906
3073
  width: 24px;
2907
3074
  height: 24px;
@@ -2913,9 +3080,15 @@
2913
3080
  .rs-deposit-address-dropdown-chevron {
2914
3081
  width: 24px;
2915
3082
  height: 24px;
2916
- color: var(--rs-muted);
3083
+ color: var(--rs-icon-secondary);
2917
3084
  margin-left: auto;
2918
3085
  flex-shrink: 0;
3086
+ transition: transform 0.15s ease;
3087
+ }
3088
+
3089
+ .rs-deposit-address-dropdown-trigger--open
3090
+ .rs-deposit-address-dropdown-chevron {
3091
+ transform: rotate(180deg);
2919
3092
  }
2920
3093
 
2921
3094
  .rs-deposit-address-dropdown-menu {
@@ -2924,15 +3097,15 @@
2924
3097
  left: 0;
2925
3098
  right: 0;
2926
3099
  z-index: 20;
2927
- background: var(--rs-background);
2928
- border: 1px solid var(--rs-border);
3100
+ background: var(--rs-surface-subtle);
3101
+ border: 1px solid var(--rs-surface-subtle);
2929
3102
  border-radius: var(--rs-radius-sm);
2930
- box-shadow: var(--rs-shadow-dropdown);
2931
- padding: 4px;
3103
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
3104
+ padding: 12px;
2932
3105
  display: flex;
2933
3106
  flex-direction: column;
2934
- gap: 2px;
2935
- max-height: 200px;
3107
+ gap: 16px;
3108
+ max-height: 240px;
2936
3109
  overflow-y: auto;
2937
3110
  overscroll-behavior: none;
2938
3111
  animation: rs-dropdown-in 0.12s ease-out;
@@ -2943,26 +3116,26 @@
2943
3116
  align-items: center;
2944
3117
  gap: 6px;
2945
3118
  width: 100%;
2946
- padding: 7px 8px;
3119
+ padding: 0;
2947
3120
  border-radius: calc(var(--rs-radius-sm) - 2px);
2948
3121
  border: none;
2949
3122
  background: transparent;
2950
3123
  color: var(--rs-foreground);
2951
- font-size: 13px;
3124
+ font-size: 14px;
2952
3125
  font-weight: 500;
3126
+ line-height: normal;
2953
3127
  cursor: pointer;
2954
3128
  text-align: left;
2955
- transition: background-color 0.1s;
3129
+ transition: opacity 0.1s;
2956
3130
  font-family: inherit;
2957
3131
  }
2958
3132
 
2959
3133
  .rs-deposit-address-dropdown-item:hover {
2960
- background: var(--rs-surface);
3134
+ opacity: 0.7;
2961
3135
  }
2962
3136
 
2963
3137
  .rs-deposit-address-dropdown-item--active {
2964
- background: var(--rs-primary-tint);
2965
- color: var(--rs-primary);
3138
+ color: var(--rs-foreground);
2966
3139
  }
2967
3140
 
2968
3141
  /* Well-card containing the 280px QR + truncated mono address. */
@@ -2980,24 +3153,25 @@
2980
3153
  display: flex;
2981
3154
  align-items: center;
2982
3155
  justify-content: center;
2983
- padding: 20px;
3156
+ padding: 12px;
2984
3157
  }
2985
3158
 
2986
3159
  .rs-deposit-address-qr canvas,
2987
3160
  .rs-deposit-address-qr svg {
2988
3161
  display: block;
2989
- width: 220px;
2990
- height: 220px;
3162
+ width: 200px;
3163
+ height: 200px;
2991
3164
  }
2992
3165
 
2993
3166
  .rs-deposit-address-value {
2994
3167
  width: 100%;
2995
- padding: 0 20px 12px;
3168
+ padding: 0 16px 12px;
2996
3169
  font-family:
2997
3170
  "Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
2998
3171
  "Liberation Mono", monospace;
2999
- font-size: 13px;
3172
+ font-size: 12px;
3000
3173
  font-weight: 500;
3174
+ line-height: normal;
3001
3175
  color: var(--rs-muted);
3002
3176
  text-align: center;
3003
3177
  word-break: break-all;
@@ -3114,6 +3288,9 @@
3114
3288
  position: relative;
3115
3289
  }
3116
3290
 
3291
+ /* Outer card that groups one-or-more deposit entries. Positioned over
3292
+ the bottom of the deposit-address screen. Figma: card/background +
3293
+ 16px padding/gap + drop-shadow. */
3117
3294
  .rs-deposit-notifications {
3118
3295
  position: absolute;
3119
3296
  bottom: 12px;
@@ -3122,20 +3299,21 @@
3122
3299
  z-index: 10;
3123
3300
  display: flex;
3124
3301
  flex-direction: column;
3125
- gap: 8px;
3126
- pointer-events: none;
3302
+ gap: 16px;
3303
+ padding: 16px;
3304
+ background: var(--rs-surface-subtle);
3305
+ border-radius: 16px;
3306
+ filter: drop-shadow(0 0 6px rgba(0, 0, 0, 0.14));
3307
+ max-height: calc(100% - 24px);
3308
+ overflow-y: auto;
3309
+ animation: rs-notification-slide-up 0.3s ease-out;
3127
3310
  }
3128
3311
 
3129
3312
  .rs-deposit-notification {
3130
- pointer-events: auto;
3131
- background: var(--rs-background);
3132
- border: 1px solid var(--rs-border);
3133
- border-radius: var(--rs-radius-lg);
3134
- overflow: hidden;
3135
- box-shadow:
3136
- 0 -4px 20px rgba(0, 0, 0, 0.10),
3137
- 0 -1px 6px rgba(0, 0, 0, 0.06);
3138
- animation: rs-notification-slide-up 0.3s ease-out;
3313
+ display: flex;
3314
+ flex-direction: column;
3315
+ gap: 4px;
3316
+ width: 100%;
3139
3317
  }
3140
3318
 
3141
3319
  @keyframes rs-notification-slide-up {
@@ -3151,19 +3329,23 @@
3151
3329
 
3152
3330
  .rs-deposit-notification-header {
3153
3331
  display: flex;
3154
- align-items: flex-start;
3155
- gap: 10px;
3156
- padding: 14px 14px 0;
3332
+ align-items: center;
3333
+ gap: 12px;
3334
+ padding: 0;
3157
3335
  }
3158
3336
 
3159
3337
  .rs-deposit-notification-icon {
3160
3338
  flex-shrink: 0;
3161
- padding-top: 1px;
3339
+ width: 42px;
3340
+ height: 42px;
3341
+ display: inline-flex;
3342
+ align-items: center;
3343
+ justify-content: center;
3162
3344
  }
3163
3345
 
3164
3346
  .rs-deposit-notification-badge {
3165
- width: 32px;
3166
- height: 32px;
3347
+ width: 42px;
3348
+ height: 42px;
3167
3349
  border-radius: 50%;
3168
3350
  display: flex;
3169
3351
  align-items: center;
@@ -3171,68 +3353,80 @@
3171
3353
  }
3172
3354
 
3173
3355
  .rs-deposit-notification-badge svg {
3174
- width: 14px;
3175
- height: 14px;
3176
- }
3177
-
3178
- .rs-deposit-notification-badge .rs-spinner {
3179
- width: 16px;
3180
- height: 16px;
3356
+ width: 20px;
3357
+ height: 20px;
3181
3358
  }
3182
3359
 
3183
3360
  .rs-deposit-notification-badge--complete {
3184
- background-color: var(--rs-success-tint);
3185
- color: var(--rs-success);
3361
+ background-color: #00bc7d;
3362
+ color: #ffffff;
3186
3363
  }
3187
3364
 
3188
3365
  .rs-deposit-notification-badge--failed {
3189
- background-color: var(--rs-error-tint);
3190
- color: var(--rs-error);
3366
+ background-color: #fb2c36;
3367
+ color: #ffffff;
3191
3368
  }
3192
3369
 
3193
3370
  .rs-deposit-notification-badge--processing {
3194
- background-color: var(--rs-primary-tint);
3195
- color: var(--rs-primary);
3371
+ background-color: transparent;
3372
+ color: var(--rs-icon-secondary);
3373
+ }
3374
+
3375
+ .rs-deposit-notification-badge--processing .rs-spinner {
3376
+ width: 42px;
3377
+ height: 42px;
3196
3378
  }
3197
3379
 
3198
3380
  .rs-deposit-notification-content {
3199
3381
  flex: 1;
3200
3382
  min-width: 0;
3383
+ display: flex;
3384
+ flex-direction: column;
3385
+ justify-content: center;
3386
+ align-self: stretch;
3387
+ }
3388
+
3389
+ .rs-deposit-notification-title-row {
3390
+ display: flex;
3391
+ align-items: center;
3392
+ justify-content: space-between;
3393
+ gap: 8px;
3394
+ width: 100%;
3201
3395
  }
3202
3396
 
3203
3397
  .rs-deposit-notification-title {
3204
3398
  font-size: 14px;
3205
- font-weight: 600;
3399
+ font-weight: 700;
3400
+ line-height: normal;
3206
3401
  color: var(--rs-foreground);
3207
- line-height: 1.3;
3208
3402
  }
3209
3403
 
3210
3404
  .rs-deposit-notification-subtitle {
3211
3405
  font-size: 12px;
3212
- color: var(--rs-muted-foreground);
3213
- line-height: 1.4;
3214
- margin-top: 2px;
3406
+ font-weight: 500;
3407
+ line-height: normal;
3408
+ color: var(--rs-muted);
3409
+ margin-top: 0;
3410
+ word-break: break-word;
3215
3411
  }
3216
3412
 
3217
3413
  .rs-deposit-notification-close {
3218
3414
  flex-shrink: 0;
3219
- width: 24px;
3220
- height: 24px;
3221
- display: flex;
3415
+ width: 16px;
3416
+ height: 16px;
3417
+ display: inline-flex;
3222
3418
  align-items: center;
3223
3419
  justify-content: center;
3224
3420
  border: none;
3225
3421
  background: transparent;
3226
- color: var(--rs-muted-foreground);
3422
+ color: var(--rs-icon-secondary);
3227
3423
  cursor: pointer;
3228
- border-radius: 4px;
3229
3424
  padding: 0;
3230
- transition: color 0.15s, background 0.15s;
3425
+ transition: opacity 0.15s;
3231
3426
  }
3232
3427
 
3233
3428
  .rs-deposit-notification-close:hover {
3234
- color: var(--rs-foreground);
3235
- background: var(--rs-surface);
3429
+ opacity: 0.7;
3236
3430
  }
3237
3431
 
3238
3432
  .rs-deposit-notification-close svg {
@@ -3240,10 +3434,41 @@
3240
3434
  height: 16px;
3241
3435
  }
3242
3436
 
3437
+ .rs-deposit-notification-toggle {
3438
+ display: flex;
3439
+ align-items: center;
3440
+ justify-content: space-between;
3441
+ width: 100%;
3442
+ height: 33px;
3443
+ padding: 8px 0 8px 54px;
3444
+ border: none;
3445
+ background: transparent;
3446
+ color: var(--rs-muted);
3447
+ font-size: 12px;
3448
+ font-weight: 500;
3449
+ line-height: normal;
3450
+ font-family: inherit;
3451
+ cursor: pointer;
3452
+ margin: 0;
3453
+ text-align: left;
3454
+ }
3455
+
3456
+ .rs-deposit-notification-toggle-chevron {
3457
+ width: 16px;
3458
+ height: 16px;
3459
+ color: var(--rs-icon-secondary);
3460
+ flex-shrink: 0;
3461
+ transition: transform 0.15s ease;
3462
+ }
3463
+
3464
+ .rs-deposit-notification--expanded .rs-deposit-notification-toggle-chevron {
3465
+ transform: rotate(180deg);
3466
+ }
3467
+
3243
3468
  .rs-deposit-notification-details {
3244
- margin: 10px 14px 0;
3469
+ margin: 4px 0 0 54px;
3245
3470
  padding: 8px 10px;
3246
- background: var(--rs-surface);
3471
+ background: var(--rs-background);
3247
3472
  border-radius: var(--rs-radius-sm);
3248
3473
  }
3249
3474
 
@@ -3260,27 +3485,28 @@
3260
3485
 
3261
3486
  .rs-deposit-notification-label {
3262
3487
  font-size: 12px;
3263
- color: var(--rs-muted-foreground);
3488
+ color: var(--rs-muted);
3264
3489
  }
3265
3490
 
3266
3491
  .rs-deposit-notification-value {
3267
3492
  font-size: 12px;
3268
3493
  font-weight: 500;
3269
- color: var(--rs-muted);
3270
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;
3494
+ color: var(--rs-foreground);
3495
+ font-family: "Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo,
3496
+ Monaco, Consolas, monospace;
3271
3497
  }
3272
3498
 
3273
3499
  .rs-deposit-notification-link {
3274
3500
  display: inline-flex;
3275
3501
  align-items: center;
3276
3502
  gap: 3px;
3277
- color: var(--rs-muted);
3503
+ color: var(--rs-foreground);
3278
3504
  text-decoration: none;
3279
- transition: color 0.15s;
3505
+ transition: opacity 0.15s;
3280
3506
  }
3281
3507
 
3282
3508
  .rs-deposit-notification-link:hover {
3283
- color: var(--rs-foreground);
3509
+ opacity: 0.7;
3284
3510
  }
3285
3511
 
3286
3512
  .rs-deposit-notification-link-icon {
@@ -3288,27 +3514,6 @@
3288
3514
  height: 10px;
3289
3515
  }
3290
3516
 
3291
- .rs-deposit-notification-toggle {
3292
- display: flex;
3293
- align-items: center;
3294
- justify-content: center;
3295
- width: 100%;
3296
- padding: 10px 0;
3297
- border: none;
3298
- border-top: 1px solid var(--rs-border-surface);
3299
- background: transparent;
3300
- color: var(--rs-muted-foreground);
3301
- font-size: 12px;
3302
- font-weight: 500;
3303
- cursor: pointer;
3304
- transition: color 0.15s;
3305
- margin-top: 10px;
3306
- }
3307
-
3308
- .rs-deposit-notification-toggle:hover {
3309
- color: var(--rs-foreground);
3310
- }
3311
-
3312
3517
  /* =============================================================================
3313
3518
  Processing Badges (centered icon badges)
3314
3519
  ============================================================================= */
@@ -3557,7 +3762,7 @@
3557
3762
  flex-direction: column;
3558
3763
  align-items: center;
3559
3764
  justify-content: center;
3560
- gap: 4px;
3765
+ gap: 8px;
3561
3766
  }
3562
3767
 
3563
3768
  .rs-history-empty-glyph {
@@ -3590,15 +3795,17 @@
3590
3795
  }
3591
3796
 
3592
3797
  .rs-history-empty-title {
3593
- font-size: 16px;
3798
+ font-size: 14px;
3594
3799
  font-weight: 500;
3595
3800
  color: var(--rs-foreground);
3801
+ line-height: normal;
3596
3802
  }
3597
3803
 
3598
3804
  .rs-history-empty-hint {
3599
- font-size: 14px;
3805
+ font-size: 12px;
3600
3806
  font-weight: 500;
3601
3807
  color: var(--rs-muted);
3808
+ line-height: normal;
3602
3809
  }
3603
3810
 
3604
3811
  /* List of transaction cards. */
@@ -3659,7 +3866,7 @@
3659
3866
  .rs-history-card-row {
3660
3867
  display: flex;
3661
3868
  align-items: center;
3662
- gap: 16px;
3869
+ gap: 8px;
3663
3870
  width: 100%;
3664
3871
  }
3665
3872
 
@@ -3670,8 +3877,8 @@
3670
3877
  }
3671
3878
 
3672
3879
  .rs-history-card-token {
3673
- width: 32px;
3674
- height: 32px;
3880
+ width: 28px;
3881
+ height: 28px;
3675
3882
  margin-right: -10px;
3676
3883
  border-radius: 50%;
3677
3884
  background: var(--rs-surface);
@@ -3718,7 +3925,7 @@
3718
3925
  }
3719
3926
 
3720
3927
  .rs-history-card-title {
3721
- font-size: 16px;
3928
+ font-size: 14px;
3722
3929
  font-weight: 700;
3723
3930
  color: var(--rs-foreground);
3724
3931
  line-height: normal;
@@ -3743,7 +3950,7 @@
3743
3950
  }
3744
3951
 
3745
3952
  .rs-history-card-amount {
3746
- font-size: 18px;
3953
+ font-size: 12px;
3747
3954
  font-weight: 500;
3748
3955
  color: var(--rs-foreground);
3749
3956
  line-height: normal;
@@ -3755,7 +3962,7 @@
3755
3962
  .rs-history-card-details {
3756
3963
  display: flex;
3757
3964
  flex-direction: column;
3758
- gap: 12px;
3965
+ gap: 8px;
3759
3966
  width: 100%;
3760
3967
  }
3761
3968
 
@@ -3766,15 +3973,14 @@
3766
3973
  font-size: 12px;
3767
3974
  font-weight: 500;
3768
3975
  line-height: 18px;
3769
- color: var(--color-blue9, #0084d1);
3976
+ color: #0084d1;
3770
3977
  text-decoration: none;
3771
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
3772
- monospace;
3978
+ font-family: inherit;
3773
3979
  }
3774
3980
 
3775
3981
  .rs-history-card-link svg {
3776
- width: 14px;
3777
- height: 14px;
3982
+ width: 16px;
3983
+ height: 16px;
3778
3984
  }
3779
3985
 
3780
3986
  .rs-history-card-link:hover {
@@ -3818,6 +4024,28 @@
3818
4024
  color: var(--rs-muted);
3819
4025
  }
3820
4026
 
4027
+ /* Dark-mode badge overrides — Figma swaps to deeper saturated fills with
4028
+ light text for contrast against the #18181b card surface. */
4029
+ .rs-modal[data-theme="dark"] .rs-history-badge--completed {
4030
+ background: #006045;
4031
+ color: #d0fae5;
4032
+ }
4033
+
4034
+ .rs-modal[data-theme="dark"] .rs-history-badge--failed {
4035
+ background: #9f0712;
4036
+ color: #ffe2e2;
4037
+ }
4038
+
4039
+ .rs-modal[data-theme="dark"] .rs-history-badge--processing {
4040
+ background: #00407f;
4041
+ color: #bee3ff;
4042
+ }
4043
+
4044
+ .rs-modal[data-theme="dark"] .rs-history-badge--pending {
4045
+ background: #78350f;
4046
+ color: #fde68a;
4047
+ }
4048
+
3821
4049
  /* Load more button at the end of the list. */
3822
4050
  .rs-history-load-more {
3823
4051
  display: flex;
@@ -3929,13 +4157,13 @@
3929
4157
  display: inline-flex;
3930
4158
  align-items: center;
3931
4159
  justify-content: center;
3932
- width: 44px;
3933
- height: 44px;
3934
- padding: 10px;
3935
- background: var(--rs-surface);
3936
- border: 1px solid var(--rs-surface);
4160
+ width: 40px;
4161
+ height: 40px;
4162
+ padding: 8px;
4163
+ background: var(--rs-icon-wrapper-bg);
4164
+ border: 1px solid var(--rs-icon-wrapper-bg);
3937
4165
  border-radius: 8px;
3938
- color: var(--rs-muted-foreground);
4166
+ color: var(--rs-icon-wrapper-icon);
3939
4167
  box-sizing: border-box;
3940
4168
  }
3941
4169
 
@@ -3963,10 +4191,9 @@
3963
4191
  }
3964
4192
 
3965
4193
  .rs-body-header-title {
3966
- font-size: 20px;
4194
+ font-size: 16px;
3967
4195
  font-weight: 700;
3968
4196
  line-height: 1.2;
3969
- letter-spacing: -0.01em;
3970
4197
  color: var(--rs-foreground);
3971
4198
  margin: 0;
3972
4199
  }
@@ -3984,13 +4211,13 @@
3984
4211
  .rs-list {
3985
4212
  display: flex;
3986
4213
  flex-direction: column;
3987
- gap: 12px;
4214
+ gap: 8px;
3988
4215
  }
3989
4216
 
3990
4217
  .rs-list-row {
3991
4218
  display: flex;
3992
4219
  align-items: center;
3993
- gap: 12px;
4220
+ gap: 8px;
3994
4221
  width: 100%;
3995
4222
  padding: 12px;
3996
4223
  background: var(--rs-background-secondary);
@@ -4028,7 +4255,8 @@
4028
4255
  justify-content: center;
4029
4256
  width: 24px;
4030
4257
  height: 24px;
4031
- color: var(--rs-muted-foreground);
4258
+ /* Figma: oauth-button/default/icon — same value light/dark. */
4259
+ color: #71717b;
4032
4260
  }
4033
4261
 
4034
4262
  .rs-list-row-leading svg {
@@ -4062,12 +4290,12 @@
4062
4290
  .rs-list-row-text {
4063
4291
  display: flex;
4064
4292
  flex-direction: column;
4065
- gap: 2px;
4293
+ gap: 4px;
4066
4294
  min-width: 0;
4067
4295
  }
4068
4296
 
4069
4297
  .rs-list-row-title {
4070
- font-size: 16px;
4298
+ font-size: 14px;
4071
4299
  font-weight: 500;
4072
4300
  color: var(--rs-foreground);
4073
4301
  line-height: 1.25;
@@ -4077,7 +4305,7 @@
4077
4305
  }
4078
4306
 
4079
4307
  .rs-list-row-subtitle {
4080
- font-size: 14px;
4308
+ font-size: 12px;
4081
4309
  font-weight: 500;
4082
4310
  color: var(--rs-muted);
4083
4311
  line-height: 1.25;
@@ -4101,32 +4329,22 @@
4101
4329
  .rs-list-row-meta-icons {
4102
4330
  display: flex;
4103
4331
  align-items: center;
4104
- gap: -4px;
4332
+ gap: 4px;
4105
4333
  }
4106
4334
 
4107
4335
  .rs-list-row-meta-icons > * {
4108
- margin-left: -4px;
4109
4336
  width: 20px;
4110
4337
  height: 20px;
4111
- border-radius: 50%;
4112
- background: var(--rs-background);
4113
- border: 1px solid var(--rs-background);
4114
- overflow: hidden;
4115
4338
  display: inline-flex;
4116
4339
  align-items: center;
4117
4340
  justify-content: center;
4118
- }
4119
-
4120
- .rs-list-row-meta-icons > *:first-child {
4121
- margin-left: 0;
4341
+ flex-shrink: 0;
4122
4342
  }
4123
4343
 
4124
4344
  .rs-list-row-meta-icons img,
4125
4345
  .rs-list-row-meta-icons svg {
4126
4346
  width: 100%;
4127
4347
  height: 100%;
4128
- object-fit: cover;
4129
- border-radius: 50%;
4130
4348
  display: block;
4131
4349
  }
4132
4350
 
@@ -4134,7 +4352,8 @@
4134
4352
  flex-shrink: 0;
4135
4353
  width: 16px;
4136
4354
  height: 16px;
4137
- color: var(--rs-muted-foreground);
4355
+ /* Figma: oauth-button/default/icon — same #71717b in both themes. */
4356
+ color: #71717b;
4138
4357
  display: inline-flex;
4139
4358
  align-items: center;
4140
4359
  justify-content: center;