@juligc99/loro-ui 0.0.1

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.
Files changed (137) hide show
  1. package/README.md +64 -0
  2. package/assets/loro-ui/favicons/Assets.xcassets/AppIcon.appiconset/AppIcon-Any.png +0 -0
  3. package/assets/loro-ui/favicons/Assets.xcassets/AppIcon.appiconset/AppIcon-Dark.png +0 -0
  4. package/assets/loro-ui/favicons/Assets.xcassets/AppIcon.appiconset/Contents.json +26 -0
  5. package/assets/loro-ui/favicons/Assets.xcassets/Contents.json +6 -0
  6. package/assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/Contents.json +56 -0
  7. package/assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png +0 -0
  8. package/assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png +0 -0
  9. package/assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-2732x2732.png +0 -0
  10. package/assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-dark-2732x2732-1.png +0 -0
  11. package/assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-dark-2732x2732-2.png +0 -0
  12. package/assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-dark-2732x2732.png +0 -0
  13. package/assets/loro-ui/favicons/apple-touch-icon.png +0 -0
  14. package/assets/loro-ui/favicons/favicon.ico +0 -0
  15. package/assets/loro-ui/favicons/favicon.svg +4 -0
  16. package/assets/loro-ui/fonts/google-fonts.css +107 -0
  17. package/assets/loro-ui/fonts/inter-latin-ext.woff2 +0 -0
  18. package/assets/loro-ui/fonts/inter-latin.woff2 +0 -0
  19. package/assets/loro-ui/fonts/manrope-latin-ext.woff2 +0 -0
  20. package/assets/loro-ui/fonts/manrope-latin.woff2 +0 -0
  21. package/assets/loro-ui/icons/apple.svg +7 -0
  22. package/assets/loro-ui/icons/arrow-right.svg +1 -0
  23. package/assets/loro-ui/icons/auto.svg +3 -0
  24. package/assets/loro-ui/icons/back.svg +1 -0
  25. package/assets/loro-ui/icons/bag.svg +1 -0
  26. package/assets/loro-ui/icons/barcode.svg +3 -0
  27. package/assets/loro-ui/icons/bell.svg +3 -0
  28. package/assets/loro-ui/icons/bottle.svg +3 -0
  29. package/assets/loro-ui/icons/bulb.svg +3 -0
  30. package/assets/loro-ui/icons/calendar.svg +1 -0
  31. package/assets/loro-ui/icons/camera.svg +3 -0
  32. package/assets/loro-ui/icons/cart.svg +3 -0
  33. package/assets/loro-ui/icons/chart-bar.svg +3 -0
  34. package/assets/loro-ui/icons/chat.svg +3 -0
  35. package/assets/loro-ui/icons/check.svg +3 -0
  36. package/assets/loro-ui/icons/checkbox-empty.svg +1 -0
  37. package/assets/loro-ui/icons/chevron-down.svg +3 -0
  38. package/assets/loro-ui/icons/chevron-right.svg +3 -0
  39. package/assets/loro-ui/icons/chevron-up.svg +3 -0
  40. package/assets/loro-ui/icons/clock.svg +3 -0
  41. package/assets/loro-ui/icons/download.svg +3 -0
  42. package/assets/loro-ui/icons/email.svg +1 -0
  43. package/assets/loro-ui/icons/eye-off.svg +6 -0
  44. package/assets/loro-ui/icons/eye.svg +1 -0
  45. package/assets/loro-ui/icons/globe.svg +3 -0
  46. package/assets/loro-ui/icons/google.svg +1 -0
  47. package/assets/loro-ui/icons/headset.svg +3 -0
  48. package/assets/loro-ui/icons/help.svg +3 -0
  49. package/assets/loro-ui/icons/home.svg +1 -0
  50. package/assets/loro-ui/icons/info.svg +3 -0
  51. package/assets/loro-ui/icons/laptop.svg +3 -0
  52. package/assets/loro-ui/icons/leaf.svg +3 -0
  53. package/assets/loro-ui/icons/list.svg +1 -0
  54. package/assets/loro-ui/icons/location.svg +3 -0
  55. package/assets/loro-ui/icons/lock.svg +1 -0
  56. package/assets/loro-ui/icons/logout.svg +3 -0
  57. package/assets/loro-ui/icons/megaphone.svg +3 -0
  58. package/assets/loro-ui/icons/moon.svg +3 -0
  59. package/assets/loro-ui/icons/more-vertical.svg +3 -0
  60. package/assets/loro-ui/icons/nav-compare.svg +4 -0
  61. package/assets/loro-ui/icons/nav-home.svg +4 -0
  62. package/assets/loro-ui/icons/nav-list.svg +6 -0
  63. package/assets/loro-ui/icons/nav-pantry.svg +6 -0
  64. package/assets/loro-ui/icons/pantry-stock.svg +8 -0
  65. package/assets/loro-ui/icons/paperclip.svg +3 -0
  66. package/assets/loro-ui/icons/phone.svg +3 -0
  67. package/assets/loro-ui/icons/plus-user.svg +1 -0
  68. package/assets/loro-ui/icons/plus.svg +3 -0
  69. package/assets/loro-ui/icons/scanner.svg +1 -0
  70. package/assets/loro-ui/icons/search.svg +3 -0
  71. package/assets/loro-ui/icons/send.svg +3 -0
  72. package/assets/loro-ui/icons/settings.svg +1 -0
  73. package/assets/loro-ui/icons/shelf.svg +1 -0
  74. package/assets/loro-ui/icons/shield-alert.svg +3 -0
  75. package/assets/loro-ui/icons/shield.svg +3 -0
  76. package/assets/loro-ui/icons/star.svg +3 -0
  77. package/assets/loro-ui/icons/store.svg +3 -0
  78. package/assets/loro-ui/icons/sun.svg +3 -0
  79. package/assets/loro-ui/icons/tablet.svg +3 -0
  80. package/assets/loro-ui/icons/tag.svg +1 -0
  81. package/assets/loro-ui/icons/tick-circle.svg +3 -0
  82. package/assets/loro-ui/icons/trash-white.svg +3 -0
  83. package/assets/loro-ui/icons/trash.svg +3 -0
  84. package/assets/loro-ui/icons/trend.svg +3 -0
  85. package/assets/loro-ui/icons/user.svg +1 -0
  86. package/assets/loro-ui/icons/warning.svg +3 -0
  87. package/assets/loro-ui/images/al-loro-design-library-home-ai.png +0 -0
  88. package/assets/loro-ui/images/home-icon-ai.svg +15 -0
  89. package/assets/loro-ui/images/home-icon-basket.svg +12 -0
  90. package/assets/loro-ui/images/home-icon-compare.svg +12 -0
  91. package/assets/loro-ui/images/home-icon-expiry.svg +18 -0
  92. package/assets/loro-ui/images/home-icon-pantry.svg +18 -0
  93. package/assets/loro-ui/images/home-icon-scan.svg +11 -0
  94. package/assets/loro-ui/images/image-home.png +0 -0
  95. package/assets/loro-ui/images/logo-despensa-buy.png +0 -0
  96. package/assets/loro-ui/images/logo-list-buy.png +0 -0
  97. package/assets/loro-ui/images/loro-apaisado-blanco.png +0 -0
  98. package/assets/loro-ui/images/loro-apaisado.png +0 -0
  99. package/assets/loro-ui/images/loro-card-buy.png +0 -0
  100. package/assets/loro-ui/images/loro-card-caducidad.png +0 -0
  101. package/assets/loro-ui/images/loro-card-comparativa.png +0 -0
  102. package/assets/loro-ui/images/loro-card-ia.png +0 -0
  103. package/assets/loro-ui/images/loro-card-qr.png +0 -0
  104. package/assets/loro-ui/images/loro-despensa.png +0 -0
  105. package/assets/loro-ui/images/loro-icon-default.png +0 -0
  106. package/assets/loro-ui/images/loro-spinner-ring.svg +76 -0
  107. package/assets/loro-ui/images/loro-tittle-sub.png +0 -0
  108. package/assets/loro-ui/images/pantry-cabinet.svg +12 -0
  109. package/assets/loro-ui/images/pantry-metric-chart.svg +16 -0
  110. package/assets/loro-ui/images/product-bananas.svg +6 -0
  111. package/assets/loro-ui/images/product-milk.svg +6 -0
  112. package/assets/loro-ui/images/product-pasta.svg +5 -0
  113. package/assets/loro-ui/images/product-rice.svg +6 -0
  114. package/assets/loro-ui/images/product-tomatoes.svg +6 -0
  115. package/assets/loro-ui/images/product-yogurt.svg +6 -0
  116. package/assets/loro-ui/images/store-ahorramas.svg +1 -0
  117. package/assets/loro-ui/images/store-alcampo.png +0 -0
  118. package/assets/loro-ui/images/store-aldi.svg +7 -0
  119. package/assets/loro-ui/images/store-bonpreu.svg +19 -0
  120. package/assets/loro-ui/images/store-caprabo.svg +29 -0
  121. package/assets/loro-ui/images/store-carrefour.svg +43 -0
  122. package/assets/loro-ui/images/store-consum.png +0 -0
  123. package/assets/loro-ui/images/store-coviran.png +0 -0
  124. package/assets/loro-ui/images/store-dia.svg +59 -0
  125. package/assets/loro-ui/images/store-el-corte-ingles.svg +20 -0
  126. package/assets/loro-ui/images/store-eroski.png +0 -0
  127. package/assets/loro-ui/images/store-froiz.svg +1 -0
  128. package/assets/loro-ui/images/store-gadis.png +0 -0
  129. package/assets/loro-ui/images/store-lidl.svg +7 -0
  130. package/assets/loro-ui/images/store-mercadona.svg +17 -0
  131. package/assets/loro-ui/loro-assets.generated.ts +1009 -0
  132. package/design-tokens/loro-theme.scss +376 -0
  133. package/fesm2022/juligc99-loro-ui.mjs +3592 -0
  134. package/fesm2022/juligc99-loro-ui.mjs.map +1 -0
  135. package/package.json +83 -0
  136. package/styles/_breakpoints.scss +28 -0
  137. package/types/juligc99-loro-ui.d.ts +818 -0
@@ -0,0 +1,376 @@
1
+ :root {
2
+ color-scheme: light;
3
+
4
+ --loro-font-brand: 'Manrope', 'Inter', system-ui, sans-serif;
5
+ --loro-font-fallback: 'Inter', system-ui, sans-serif;
6
+
7
+ --loro-primary-900: #2e176a;
8
+ --loro-primary-700: #5b33d6;
9
+ --loro-primary-500: #6c3cff;
10
+ --loro-primary-200: #ede9fe;
11
+ --loro-accent-yellow: #ffb703;
12
+
13
+ --loro-background: #f6f4fb;
14
+ --loro-surface: #ffffff;
15
+ --loro-surface-soft: rgba(255, 255, 255, 0.78);
16
+ --loro-surface-elevated: rgba(255, 255, 255, 0.88);
17
+ --loro-surface-overlay: rgba(255, 255, 255, 0.72);
18
+ --loro-surface-muted: #f2eefb;
19
+ --loro-surface-tinted: rgba(244, 240, 255, 0.92);
20
+ --loro-text: #2b2350;
21
+ --loro-text-strong: #20193f;
22
+ --loro-text-inverse: rgba(255, 255, 255, 0.94);
23
+ --loro-text-inverse-soft: rgba(255, 255, 255, 0.72);
24
+ --loro-muted: #7a7297;
25
+ --loro-muted-strong: #625882;
26
+ --loro-border-soft: rgba(108, 60, 255, 0.1);
27
+ --loro-border-subtle: rgba(43, 35, 80, 0.08);
28
+ --loro-border-strong: rgba(108, 60, 255, 0.22);
29
+ --loro-border-contrast: rgba(255, 255, 255, 0.22);
30
+ --loro-focus-ring: rgba(108, 60, 255, 0.26);
31
+
32
+ --loro-shadow-soft: 0 10px 30px rgba(34, 25, 73, 0.07);
33
+ --loro-shadow-panel: 0 24px 60px rgba(40, 26, 92, 0.12);
34
+ --loro-shadow-button: 0 12px 24px rgba(91, 51, 214, 0.18);
35
+ --loro-shadow-brand: 0 18px 44px rgba(46, 23, 106, 0.22), 0 2px 10px rgba(31, 10, 102, 0.1);
36
+
37
+ --loro-radius-card: 1.5rem;
38
+ --loro-radius-card-lg: 2rem;
39
+ --loro-radius-input: 1rem;
40
+ --loro-radius-pill: 999px;
41
+
42
+ --loro-space-1: 0.25rem;
43
+ --loro-space-2: 0.5rem;
44
+ --loro-space-3: 0.75rem;
45
+ --loro-space-4: 1rem;
46
+ --loro-space-5: 1.5rem;
47
+ --loro-space-6: 2rem;
48
+ --loro-space-7: 3rem;
49
+
50
+ --loro-brand-start: #5b33d6;
51
+ --loro-brand-end: #2e176a;
52
+ --loro-brand-soft-start: #6c3cff;
53
+ --loro-brand-soft-end: #5b33d6;
54
+ --loro-brand-surface: rgba(248, 244, 255, 0.96);
55
+ --loro-brand-mark-text: #4c27c3;
56
+ --loro-brand-tint-strong: rgba(108, 60, 255, 0.14);
57
+ --loro-brand-tint-soft: rgba(108, 60, 255, 0.05);
58
+ --loro-brand-tint-surface: rgba(108, 60, 255, 0.08);
59
+ --loro-warning: #f5a800;
60
+ --loro-danger-surface: #fff0f1;
61
+ --loro-danger-text: #b0223b;
62
+
63
+ --loro-page-background:
64
+ radial-gradient(circle at 14% 12%, rgba(108, 60, 255, 0.1), transparent 24%),
65
+ radial-gradient(circle at 86% 18%, rgba(91, 51, 214, 0.06), transparent 22%),
66
+ #f6f4fb;
67
+ --loro-shell-background: rgba(255, 255, 255, 0.3);
68
+ --loro-shell-surface: rgba(255, 255, 255, 0.78);
69
+ --loro-shell-header-surface: rgba(255, 255, 255, 0.86);
70
+ --loro-shell-border: rgba(255, 255, 255, 0.56);
71
+ --loro-shell-shadow: 0 24px 60px rgba(40, 26, 92, 0.12);
72
+
73
+ --loro-nav-desktop-width: 16rem;
74
+ --loro-nav-mobile-max-width: 30rem;
75
+ --loro-nav-desktop-offset: 1.5rem;
76
+ --loro-nav-mobile-offset: 0.75rem;
77
+ --loro-nav-surface-radius: 1.5rem;
78
+ --loro-nav-mobile-radius: 1.375rem;
79
+ --loro-nav-item-radius: 1rem;
80
+ --loro-nav-mobile-item-radius: 1rem;
81
+ --loro-nav-desktop-padding: 1rem;
82
+ --loro-nav-blur: 18px;
83
+ --loro-nav-surface-background: #4d28c9;
84
+ --loro-nav-background-start: #5c31dc;
85
+ --loro-nav-background-end: #34168f;
86
+ --loro-nav-background-soft-start: #7a50ff;
87
+ --loro-nav-background-soft-end: #5c31dc;
88
+ --loro-nav-text: rgba(255, 255, 255, 0.96);
89
+ --loro-nav-text-soft: rgba(255, 255, 255, 0.96);
90
+ --loro-nav-border: rgba(255, 255, 255, 0.12);
91
+ --loro-nav-shadow: 0 24px 48px rgba(46, 23, 106, 0.28);
92
+ --loro-nav-hover-bg: rgba(255, 255, 255, 0.045);
93
+ --loro-nav-active-bg: rgba(152, 113, 255, 0.42);
94
+ --loro-nav-active-border: rgba(255, 255, 255, 0.1);
95
+ --loro-nav-active-shadow: 0 8px 20px rgba(45, 16, 133, 0.16);
96
+ --loro-nav-mobile-active-bg: rgba(108, 60, 255, 0.12);
97
+ --loro-nav-mobile-active-shadow: 0 12px 24px rgba(108, 60, 255, 0.14);
98
+ --loro-nav-mobile-surface: rgba(255, 255, 255, 0.76);
99
+ --loro-nav-mobile-glass-surface: rgba(255, 255, 255, 0.66);
100
+ --loro-nav-mobile-glass-blur: 24px;
101
+ --loro-nav-mobile-expanded-width: 24.9rem;
102
+ --loro-nav-mobile-compact-width: 19.25rem;
103
+ --loro-nav-mobile-border: rgba(255, 255, 255, 0.62);
104
+ --loro-nav-mobile-icon: #2b2350;
105
+ --loro-nav-mobile-indicator: rgba(216, 220, 229, 0.72);
106
+ --loro-nav-mobile-indicator-shadow:
107
+ inset 0 1px 0 rgba(255, 255, 255, 0.7),
108
+ 0 1px 5px rgba(21, 28, 42, 0.06);
109
+ --loro-nav-mobile-surface-shadow:
110
+ 0 10px 30px rgba(28, 32, 48, 0.14),
111
+ 0 2px 10px rgba(28, 32, 48, 0.05),
112
+ inset 0 1px 0 rgba(255, 255, 255, 0.78);
113
+ --loro-nav-divider: rgba(43, 35, 80, 0.08);
114
+ --loro-nav-brand-bg: rgba(108, 60, 255, 0.04);
115
+ --loro-nav-brand-border: rgba(108, 60, 255, 0.08);
116
+ --loro-nav-brand-mark-bg: #6c3cff;
117
+ --loro-nav-brand-mark-shadow: 0 14px 26px rgba(108, 60, 255, 0.22);
118
+ --loro-nav-desktop-surface: rgba(255, 255, 255, 0.88);
119
+ --loro-nav-desktop-border: rgba(43, 35, 80, 0.08);
120
+ --loro-nav-desktop-shadow: 0 24px 60px rgba(40, 26, 92, 0.12);
121
+ --loro-nav-button-text: var(--loro-primary-900);
122
+ --loro-nav-button-hover-text: var(--loro-primary-700);
123
+ --loro-nav-button-background: transparent;
124
+ --loro-nav-button-border: transparent;
125
+ --loro-nav-button-hover-bg: rgba(244, 240, 255, 0.92);
126
+ --loro-nav-button-hover-border: rgba(108, 60, 255, 0.14);
127
+ --loro-nav-button-shadow: none;
128
+ --loro-nav-button-hover-shadow:
129
+ inset 0 0 0 1px rgba(108, 60, 255, 0.04),
130
+ 0 8px 18px rgba(40, 26, 92, 0.07);
131
+ --loro-nav-button-active-bg: rgba(244, 240, 255, 0.98);
132
+ --loro-nav-button-active-border: rgba(108, 60, 255, 0.18);
133
+ --loro-nav-button-active-text: var(--loro-primary-500);
134
+ --loro-nav-button-active-shadow:
135
+ inset 0.35rem 0 0 var(--loro-primary-500),
136
+ inset 0 0 0 1px rgba(108, 60, 255, 0.04);
137
+ --loro-nav-button-danger-bg: rgba(255, 240, 241, 0.92);
138
+ --loro-nav-button-danger-border: rgba(176, 34, 59, 0.08);
139
+ --loro-nav-button-danger-text: var(--loro-danger-text);
140
+ --loro-nav-button-danger-hover-bg: rgba(255, 236, 239, 0.98);
141
+ --loro-nav-button-danger-hover-shadow:
142
+ inset 0 0 0 1px rgba(176, 34, 59, 0.04),
143
+ 0 8px 18px rgba(176, 34, 59, 0.08);
144
+
145
+ --loro-header-desktop-min-height: 2.5rem;
146
+
147
+ /* Layout shell tokens */
148
+ --loro-layout-mobile-gutter: clamp(1rem, 4vw, 1.5rem);
149
+ --loro-layout-mobile-header-bar-height: 3.45rem;
150
+ --loro-layout-mobile-header-height: calc(
151
+ var(--loro-layout-mobile-header-bar-height) + env(safe-area-inset-top, 0px)
152
+ );
153
+ --loro-layout-mobile-nav-height: 3.95rem;
154
+ --loro-layout-mobile-nav-offset: max(0.08rem, calc(env(safe-area-inset-bottom, 0px) * 0.18));
155
+ --loro-layout-mobile-nav-clearance: calc(
156
+ var(--loro-layout-mobile-nav-height) + var(--loro-layout-mobile-nav-offset) + 0.32rem
157
+ );
158
+ --loro-layout-header-action-size: 2.35rem;
159
+ --loro-layout-header-icon-size: 22px;
160
+ --loro-layout-header-back-icon-size: 28px;
161
+ --loro-layout-desktop-nav-width: 17.5rem;
162
+ --loro-layout-desktop-header-height: max(3rem, var(--loro-header-desktop-min-height, 0.5rem));
163
+ --loro-layout-notification-popover-width: min(26rem, calc(100vw - var(--loro-layout-desktop-nav-width) - 4rem));
164
+
165
+ --loro-dashboard-card-media-size: 5rem;
166
+ --loro-dashboard-card-content-min-height: 5.25rem;
167
+ --loro-dashboard-card-title-min-height: 1.375rem;
168
+ --loro-dashboard-card-description-min-height: 3.25rem;
169
+ --loro-dashboard-card-gap: 1rem;
170
+ --loro-dashboard-card-min-height: 14.5rem;
171
+ --loro-dashboard-card-row-min-height: 6.75rem;
172
+ --loro-dashboard-grid-card-min-height: 6.75rem;
173
+ --loro-home-hero-border: rgba(43, 35, 80, 0.08);
174
+ --loro-home-hero-bg:
175
+ radial-gradient(circle at 100% 0%, rgba(198, 180, 255, 0.16) 0%, transparent 34%),
176
+ rgba(255, 255, 255, 0.94);
177
+ --loro-home-hero-text: var(--loro-primary-900);
178
+ --loro-home-hero-subtitle: rgba(79, 88, 112, 0.9);
179
+ --loro-home-avatar-bg: rgba(243, 237, 255, 0.92);
180
+ --loro-home-avatar-color: var(--loro-primary-700);
181
+ --loro-home-card-border: rgba(43, 35, 80, 0.08);
182
+ --loro-home-card-bg:
183
+ radial-gradient(circle at 100% 0%, rgba(208, 191, 255, 0.14) 0%, transparent 34%),
184
+ rgba(255, 255, 255, 0.94);
185
+ --loro-home-card-title: var(--loro-primary-900);
186
+ --loro-home-card-description: rgba(79, 88, 112, 0.9);
187
+ --loro-home-card-icon-bg: rgb(240 230 255 / 96%);
188
+ --loro-home-card-icon-color: #6c3cff;
189
+ --loro-home-card-icon-shadow:
190
+ inset 0 1px 0 rgba(255, 255, 255, 0.72),
191
+ 0 8px 18px rgba(40, 26, 92, 0.08);
192
+ --loro-home-card-arrow-bg: rgba(255, 255, 255, 0.94);
193
+ --loro-home-card-arrow-color: var(--loro-primary-700);
194
+ --loro-home-card-hover-border: rgba(108, 60, 255, 0.16);
195
+ --loro-home-card-shadow:
196
+ 0 10px 30px rgba(34, 25, 73, 0.07),
197
+ inset 0 1px 0 rgba(255, 255, 255, 0.82);
198
+ --loro-home-card-hover-shadow:
199
+ 0 18px 42px rgba(40, 26, 92, 0.12),
200
+ inset 0 1px 0 rgba(255, 255, 255, 0.86);
201
+ --loro-home-card-backdrop-blur: 18px;
202
+ --loro-home-card-glow: radial-gradient(circle at 86% 14%, rgba(210, 193, 255, 0.16) 0%, transparent 34%);
203
+ --loro-home-card-sheen: none;
204
+
205
+ --color-primary: var(--loro-primary-500);
206
+ --color-primary-dark: var(--loro-primary-900);
207
+ --color-secondary: var(--loro-primary-700);
208
+ --color-secondary-dark: #4d22d8;
209
+ --color-card-bg: rgba(108, 60, 255, 0.08);
210
+ }
211
+
212
+ html[data-theme='dark'] {
213
+ color-scheme: dark;
214
+
215
+ --loro-primary-900: #d8c2ff;
216
+ --loro-primary-700: #b58cff;
217
+ --loro-primary-500: #9763f1;
218
+ --loro-primary-200: #1e293b;
219
+ --loro-background: #111418;
220
+ --loro-surface: #181c20;
221
+ --loro-surface-soft: rgba(24, 28, 32, 0.78);
222
+ --loro-surface-elevated: rgba(30, 34, 39, 0.88);
223
+ --loro-surface-overlay: rgba(17, 20, 24, 0.78);
224
+ --loro-surface-muted: #21262d;
225
+ --loro-surface-tinted: rgba(48, 37, 72, 0.74);
226
+ --loro-text: #d4d4d4;
227
+ --loro-text-strong: #ffffff;
228
+ --loro-text-inverse: rgba(255, 255, 255, 0.96);
229
+ --loro-text-inverse-soft: rgba(212, 212, 212, 0.78);
230
+ --loro-muted: #9da7b3;
231
+ --loro-muted-strong: #c5ced8;
232
+ --loro-border-soft: rgba(255, 255, 255, 0.06);
233
+ --loro-border-subtle: rgba(255, 255, 255, 0.08);
234
+ --loro-border-strong: rgba(181, 140, 255, 0.3);
235
+ --loro-border-contrast: rgba(255, 255, 255, 0.12);
236
+ --loro-focus-ring: rgba(181, 140, 255, 0.34);
237
+
238
+ --loro-shadow-soft: 0 14px 36px rgba(0, 0, 0, 0.28);
239
+ --loro-shadow-panel: 0 26px 72px rgba(0, 0, 0, 0.34);
240
+ --loro-shadow-button: 0 14px 28px rgba(0, 0, 0, 0.32);
241
+ --loro-shadow-brand: 0 18px 48px rgba(4, 3, 15, 0.38), 0 2px 10px rgba(3, 2, 10, 0.22);
242
+
243
+ --loro-brand-start: #b58cff;
244
+ --loro-brand-end: #7b4cff;
245
+ --loro-brand-soft-start: #d8c2ff;
246
+ --loro-brand-soft-end: #9763f1;
247
+ --loro-brand-surface: rgba(58, 44, 88, 0.74);
248
+ --loro-brand-mark-text: #eaf2ff;
249
+ --loro-brand-tint-strong: rgba(181, 140, 255, 0.18);
250
+ --loro-brand-tint-soft: rgba(181, 140, 255, 0.08);
251
+ --loro-brand-tint-surface: rgba(181, 140, 255, 0.12);
252
+ --loro-warning: #ffd166;
253
+ --loro-danger-surface: rgba(248, 113, 113, 0.14);
254
+ --loro-danger-text: #fca5a5;
255
+
256
+ --loro-page-background:
257
+ radial-gradient(circle at 18% 14%, rgba(181, 140, 255, 0.08), transparent 22%),
258
+ radial-gradient(circle at 84% 16%, rgba(151, 99, 241, 0.06), transparent 20%),
259
+ #111418;
260
+ --loro-shell-background: rgba(255, 255, 255, 0.03);
261
+ --loro-shell-surface: rgba(24, 28, 32, 0.96);
262
+ --loro-shell-header-surface: rgba(17, 20, 24, 0.96);
263
+ --loro-shell-border: rgba(255, 255, 255, 0.1);
264
+ --loro-shell-shadow: 0 24px 72px rgba(0, 0, 0, 0.34);
265
+
266
+ /* Layout shell tokens */
267
+ --loro-layout-notification-popover-width: min(26rem, calc(100vw - var(--loro-layout-desktop-nav-width) - 4rem));
268
+
269
+ --loro-nav-surface-background: #1b1f27;
270
+ --loro-nav-background-start: rgba(31, 41, 55, 0.98);
271
+ --loro-nav-background-end: rgba(22, 27, 34, 0.98);
272
+ --loro-nav-background-soft-start: rgba(43, 56, 74, 0.94);
273
+ --loro-nav-background-soft-end: rgba(27, 34, 45, 0.94);
274
+ --loro-nav-text: var(--loro-text-inverse);
275
+ --loro-nav-text-soft: var(--loro-text-inverse);
276
+ --loro-nav-border: rgba(255, 255, 255, 0.12);
277
+ --loro-nav-shadow: 0 18px 48px rgba(4, 3, 15, 0.38);
278
+ --loro-nav-hover-bg: rgba(255, 255, 255, 0.045);
279
+ --loro-nav-active-bg: rgba(181, 140, 255, 0.18);
280
+ --loro-nav-active-border: rgba(255, 255, 255, 0.16);
281
+ --loro-nav-active-shadow: 0 14px 28px rgba(0, 0, 0, 0.24);
282
+ --loro-nav-mobile-active-bg: rgba(181, 140, 255, 0.14);
283
+ --loro-nav-mobile-active-shadow: 0 16px 30px rgba(0, 0, 0, 0.28);
284
+ --loro-nav-mobile-surface: rgba(24, 28, 32, 0.76);
285
+ --loro-nav-mobile-glass-surface: rgba(15, 19, 25, 0.6);
286
+ --loro-nav-mobile-glass-blur: 26px;
287
+ --loro-nav-mobile-expanded-width: 24.9rem;
288
+ --loro-nav-mobile-compact-width: 19.25rem;
289
+ --loro-nav-mobile-border: rgba(255, 255, 255, 0.14);
290
+ --loro-nav-mobile-icon: rgba(238, 242, 247, 0.9);
291
+ --loro-nav-mobile-indicator: rgba(72, 78, 89, 0.72);
292
+ --loro-nav-mobile-indicator-shadow:
293
+ inset 0 1px 0 rgba(255, 255, 255, 0.12),
294
+ 0 1px 6px rgba(0, 0, 0, 0.2);
295
+ --loro-nav-mobile-surface-shadow:
296
+ 0 12px 32px rgba(0, 0, 0, 0.38),
297
+ 0 2px 12px rgba(0, 0, 0, 0.2),
298
+ inset 0 1px 0 rgba(255, 255, 255, 0.11);
299
+ --loro-nav-divider: rgba(255, 255, 255, 0.1);
300
+ --loro-nav-brand-bg: rgba(255, 255, 255, 0.06);
301
+ --loro-nav-brand-border: rgba(255, 255, 255, 0.1);
302
+ --loro-nav-brand-mark-bg: #9763f1;
303
+ --loro-nav-brand-mark-shadow: 0 14px 28px rgba(0, 0, 0, 0.28);
304
+ --loro-nav-desktop-surface: rgba(24, 28, 32, 0.9);
305
+ --loro-nav-desktop-border: rgba(255, 255, 255, 0.08);
306
+ --loro-nav-desktop-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
307
+ --loro-nav-button-text: rgba(238, 242, 247, 0.92);
308
+ --loro-nav-button-hover-text: #ffffff;
309
+ --loro-nav-button-background: transparent;
310
+ --loro-nav-button-border: transparent;
311
+ --loro-nav-button-hover-bg: rgba(181, 140, 255, 0.08);
312
+ --loro-nav-button-hover-border: rgba(181, 140, 255, 0.18);
313
+ --loro-nav-button-shadow: none;
314
+ --loro-nav-button-hover-shadow:
315
+ inset 0 0 0 1px rgba(181, 140, 255, 0.06),
316
+ 0 12px 24px rgba(0, 0, 0, 0.2);
317
+ --loro-nav-button-active-bg: rgba(181, 140, 255, 0.12);
318
+ --loro-nav-button-active-border: rgba(181, 140, 255, 0.18);
319
+ --loro-nav-button-active-text: var(--loro-primary-900);
320
+ --loro-nav-button-active-shadow:
321
+ inset 0.35rem 0 0 var(--loro-primary-500),
322
+ inset 0 0 0 1px rgba(181, 140, 255, 0.08);
323
+ --loro-nav-button-danger-bg: rgba(248, 113, 113, 0.1);
324
+ --loro-nav-button-danger-border: rgba(252, 165, 165, 0.12);
325
+ --loro-nav-button-danger-text: var(--loro-danger-text);
326
+ --loro-nav-button-danger-hover-bg: rgba(248, 113, 113, 0.14);
327
+ --loro-nav-button-danger-hover-shadow:
328
+ inset 0 0 0 1px rgba(252, 165, 165, 0.06),
329
+ 0 12px 24px rgba(0, 0, 0, 0.18);
330
+ --loro-home-hero-border: rgba(255, 255, 255, 0.08);
331
+ --loro-home-hero-bg:
332
+ radial-gradient(circle at 100% 0%, rgba(191, 150, 255, 0.14) 0%, transparent 34%),
333
+ rgba(26, 29, 35, 0.98);
334
+ --loro-home-hero-text: #f8f4ff;
335
+ --loro-home-hero-subtitle: rgba(231, 220, 255, 0.8);
336
+ --loro-home-avatar-bg: rgba(58, 44, 88, 0.68);
337
+ --loro-home-avatar-color: #d9c3ff;
338
+ --loro-home-card-border: rgba(255, 255, 255, 0.08);
339
+ --loro-home-card-bg:
340
+ radial-gradient(circle at 100% 0%, rgba(186, 150, 255, 0.1) 0%, transparent 34%),
341
+ rgba(26, 29, 35, 0.98);
342
+ --loro-home-card-title: #fbf7ff;
343
+ --loro-home-card-description: rgba(231, 220, 255, 0.76);
344
+ --loro-home-card-icon-bg: rgba(42, 46, 57, 0.96);
345
+ --loro-home-card-icon-color: #cdb4ff;
346
+ --loro-home-card-icon-shadow:
347
+ inset 0 1px 0 rgba(255, 255, 255, 0.06),
348
+ 0 10px 22px rgba(0, 0, 0, 0.2);
349
+ --loro-home-card-arrow-bg: rgba(255, 255, 255, 0.96);
350
+ --loro-home-card-arrow-color: #5b33d6;
351
+ --loro-home-card-hover-border: rgba(205, 180, 255, 0.18);
352
+ --loro-home-card-shadow:
353
+ 0 14px 36px rgba(0, 0, 0, 0.28),
354
+ inset 0 1px 0 rgba(255, 255, 255, 0.06);
355
+ --loro-home-card-hover-shadow:
356
+ 0 22px 42px rgba(0, 0, 0, 0.36),
357
+ inset 0 1px 0 rgba(255, 255, 255, 0.08);
358
+ --loro-home-card-backdrop-blur: 18px;
359
+ --loro-home-card-glow: radial-gradient(circle at 86% 14%, rgba(197, 166, 255, 0.14) 0%, transparent 34%);
360
+ --loro-home-card-sheen: none;
361
+
362
+ --color-secondary-dark: #7b4cff;
363
+ --color-card-bg: rgba(181, 140, 255, 0.1);
364
+ }
365
+
366
+ html[data-font-scale='small'] {
367
+ font-size: 14px;
368
+ }
369
+
370
+ html[data-font-scale='normal'] {
371
+ font-size: 16px;
372
+ }
373
+
374
+ html[data-font-scale='large'] {
375
+ font-size: 18px;
376
+ }