|
1 | 1 | .sau-date-range { |
| 2 | + /* — Public API: customizable by the host app — */ |
2 | 3 | --sau-color-primary: rgb(147, 51, 234); |
3 | 4 | --sau-color-background: rgb(255, 255, 255); |
| 5 | + --sau-color-danger: rgb(220, 38, 38); |
| 6 | + |
| 7 | + /* — Internal tints derived with color-mix — */ |
| 8 | + --_primary-subtle: color-mix(in srgb, var(--sau-color-primary) 15%, var(--sau-color-background)); |
| 9 | + --_primary-faint: color-mix(in srgb, var(--sau-color-primary) 8%, var(--sau-color-background)); |
| 10 | + --_primary-ghost: color-mix(in srgb, var(--sau-color-primary) 5%, var(--sau-color-background)); |
| 11 | + --_primary-muted: color-mix(in srgb, var(--sau-color-primary) 65%, var(--sau-color-background)); |
| 12 | + --_primary-ring: color-mix(in srgb, var(--sau-color-primary) 10%, transparent); |
| 13 | + --_danger-faint: color-mix(in srgb, var(--sau-color-danger) 6%, var(--sau-color-background)); |
4 | 14 |
|
5 | 15 | display: flex; |
6 | 16 | flex-direction: column; |
|
43 | 53 |
|
44 | 54 | &:focus { |
45 | 55 | border-color: var(--sau-color-primary); |
46 | | - box-shadow: 0 0 0 3px rgba(147, 51, 234, 0.1); |
47 | | - background-color: #ffffff; |
| 56 | + box-shadow: 0 0 0 3px var(--_primary-ring); |
| 57 | + background-color: var(--sau-color-background); |
48 | 58 | } |
49 | 59 |
|
50 | 60 | &.is-active-view { |
51 | 61 | font-weight: 500; |
52 | 62 | color: #0f172a; |
53 | | - background-color: #ffffff; |
| 63 | + background-color: var(--sau-color-background); |
54 | 64 | border-color: #cbd5e1; |
55 | 65 | } |
56 | 66 | } |
|
86 | 96 | right: 0; |
87 | 97 | z-index: 50; |
88 | 98 | margin-top: 0.25rem; |
89 | | - background: #ffffff; |
| 99 | + background: var(--sau-color-background); |
90 | 100 | border: 1px solid #e2e8f0; |
91 | 101 | border-radius: 0.5rem; |
92 | 102 | box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); |
|
113 | 123 |
|
114 | 124 | &.is-clear-trigger { |
115 | 125 | font-weight: 500; |
116 | | - color: #dc2626; |
| 126 | + color: var(--sau-color-danger); |
117 | 127 |
|
118 | 128 | &:hover { |
119 | | - background-color: #fef2f2; |
| 129 | + background-color: var(--_danger-faint); |
120 | 130 | } |
121 | 131 | } |
122 | 132 |
|
|
125 | 135 | color: var(--sau-color-primary); |
126 | 136 |
|
127 | 137 | &:hover { |
128 | | - background-color: rgb(250, 245, 255); |
| 138 | + background-color: var(--_primary-ghost); |
129 | 139 | } |
130 | 140 | } |
131 | 141 | } |
|
141 | 151 | position: absolute; |
142 | 152 | top: 100%; |
143 | 153 | left: 0; |
144 | | - /* Alineado a la izquierda */ |
145 | 154 | z-index: 50; |
146 | 155 | margin-top: 0.25rem; |
147 | | - background: #ffffff; |
| 156 | + background: var(--sau-color-background); |
148 | 157 | border: 1px solid #e2e8f0; |
149 | 158 | border-radius: 0.65rem; |
150 | 159 | box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1); |
|
275 | 284 | } |
276 | 285 |
|
277 | 286 | &.is-within-range { |
278 | | - background-color: rgb(243, 232, 255); |
| 287 | + background-color: var(--_primary-subtle); |
279 | 288 | color: var(--sau-color-primary); |
280 | 289 | border-radius: 0; |
281 | 290 | } |
282 | 291 |
|
283 | 292 | &.is-hover-range { |
284 | | - background-color: rgb(248, 242, 255); |
285 | | - color: rgb(168, 85, 247); |
| 293 | + background-color: var(--_primary-faint); |
| 294 | + color: var(--_primary-muted); |
286 | 295 | border-radius: 0; |
287 | 296 | } |
288 | 297 |
|
289 | 298 | &.is-today { |
290 | | - box-shadow: inset 0 0 0 1.5px var(--sau-color-primary); |
291 | | - border-radius: 9999px; |
| 299 | + |
| 300 | + &::after { |
| 301 | + content: ''; |
| 302 | + position: absolute; |
| 303 | + inset: 0; |
| 304 | + border-radius: 9999px; |
| 305 | + border: 1.5px solid var(--sau-color-primary); |
| 306 | + pointer-events: none; |
| 307 | + } |
292 | 308 | } |
293 | 309 |
|
294 | 310 | &.is-start { |
|
312 | 328 | display: flex; |
313 | 329 | justify-content: space-between; |
314 | 330 | align-items: center; |
| 331 | + flex-wrap: wrap; |
315 | 332 | gap: 0.5rem; |
316 | 333 | margin-top: 0.5rem; |
317 | 334 | padding-top: 0.75rem; |
|
341 | 358 |
|
342 | 359 | &:focus { |
343 | 360 | border-color: var(--sau-color-primary); |
344 | | - box-shadow: 0 0 0 2px rgba(147, 51, 234, 0.1); |
| 361 | + box-shadow: 0 0 0 2px var(--_primary-ring); |
345 | 362 | } |
346 | 363 | } |
347 | 364 |
|
348 | 365 | &__clear-btn { |
349 | 366 | background: none; |
350 | 367 | border: none; |
351 | | - color: #dc2626; |
| 368 | + color: var(--sau-color-danger); |
352 | 369 | font-size: 0.75rem; |
353 | 370 | cursor: pointer; |
354 | 371 | font-weight: 500; |
|
0 commit comments