|
1 | 1 | /* Chip Selector Styles */ |
2 | 2 | .chip-selector { |
3 | | - display: flex; |
4 | | - flex-direction: column; |
5 | | - gap: 12px; |
| 3 | + display: flex; |
| 4 | + flex-direction: column; |
| 5 | + gap: 12px; |
6 | 6 | } |
7 | 7 |
|
8 | 8 | .chip-selector__title { |
9 | | - font-weight: 500; |
10 | | - font-size: 14px; |
11 | | - color: rgba(var(--v-theme-on-surface), 0.87); |
12 | | - margin-bottom: 8px; |
| 9 | + font-weight: 500; |
| 10 | + font-size: 14px; |
| 11 | + color: rgba(var(--v-theme-on-surface), 0.87); |
| 12 | + margin-bottom: 8px; |
13 | 13 | } |
14 | 14 |
|
15 | 15 | .chip-selector__chips { |
16 | | - display: flex; |
17 | | - flex-wrap: wrap; |
18 | | - gap: 8px; |
19 | | - min-height: 40px; |
20 | | - align-items: flex-start; |
| 16 | + display: flex; |
| 17 | + flex-wrap: wrap; |
| 18 | + gap: 8px; |
| 19 | + min-height: 40px; |
| 20 | + align-items: flex-start; |
21 | 21 | } |
22 | 22 |
|
23 | 23 | .chip-selector__input-container { |
24 | | - margin-top: 8px; |
| 24 | + margin-top: 8px; |
25 | 25 | } |
26 | 26 |
|
27 | 27 | .chip-selector__input { |
28 | | - width: 100%; |
| 28 | + width: 100%; |
29 | 29 | } |
30 | 30 |
|
31 | 31 | /* Chip Styles */ |
32 | 32 | .chip { |
33 | | - display: inline-flex; |
34 | | - align-items: center; |
35 | | - padding: 6px 12px; |
36 | | - border-radius: 16px; |
37 | | - font-size: 13px; |
38 | | - font-weight: 500; |
39 | | - cursor: pointer; |
40 | | - user-select: none; |
41 | | - min-height: 32px; |
42 | | - transition: all 0.2s ease; |
| 33 | + display: inline-flex; |
| 34 | + align-items: center; |
| 35 | + padding: 6px 12px; |
| 36 | + border-radius: 16px; |
| 37 | + font-size: 13px; |
| 38 | + font-weight: 500; |
| 39 | + cursor: pointer; |
| 40 | + user-select: none; |
| 41 | + min-height: 32px; |
| 42 | + transition: all 0.2s ease; |
43 | 43 | } |
44 | 44 |
|
45 | 45 | .chip__content { |
46 | | - display: flex; |
47 | | - align-items: center; |
48 | | - gap: 6px; |
| 46 | + display: flex; |
| 47 | + align-items: center; |
| 48 | + gap: 6px; |
49 | 49 | } |
50 | 50 |
|
51 | 51 | .chip__icon { |
52 | | - font-size: 16px; |
53 | | - opacity: 0.9; |
| 52 | + font-size: 16px; |
| 53 | + opacity: 0.9; |
54 | 54 | } |
55 | 55 |
|
56 | | -/* Chip States */ |
57 | | -.chip--gray { |
58 | | - background-color: rgb(var(--v-theme-secondary-light, var(--v-theme-surface-bright, var(--v-theme-surface)))); |
59 | | - color: rgb(var(--v-theme-on-surface)); |
60 | | - box-shadow: inset 0 0 0 1px rgba(var(--v-theme-on-surface), 0.12); |
| 56 | +/* Chip States — class names mirror the `item.action` value the chip-selector |
| 57 | + emits (`add` / `remove` / default), and `--mixed` is the partial-selection |
| 58 | + variant (action applies to only some of the selected items). Selectors are |
| 59 | + doubled (`.chip.chip--*`) so the `color` rules out-rank the UA-level |
| 60 | + `[role="button"] { color: inherit }` reset, which would otherwise strip the |
| 61 | + on-token foreground from a solid chip rendered as a button. */ |
| 62 | +.chip.chip--default { |
| 63 | + background-color: rgb(var(--v-theme-secondary-light, var(--v-theme-surface-bright, var(--v-theme-surface)))); |
| 64 | + color: rgb(var(--v-theme-on-surface)); |
| 65 | + box-shadow: inset 0 0 0 1px rgba(var(--v-theme-on-surface), 0.12); |
61 | 66 | } |
62 | 67 |
|
63 | | -.chip--gray-light { |
64 | | - background-color: rgba(var(--v-theme-secondary-light, var(--v-theme-surface-bright, var(--v-theme-surface))), 0.55); |
65 | | - color: rgb(var(--v-theme-on-surface)); |
66 | | - box-shadow: inset 0 0 0 1px rgba(var(--v-theme-on-surface), 0.12); |
| 68 | +.chip.chip--default-mixed { |
| 69 | + background-color: rgba(var(--v-theme-secondary-light, var(--v-theme-surface-bright, var(--v-theme-surface))), 0.55); |
| 70 | + color: rgb(var(--v-theme-on-surface)); |
| 71 | + box-shadow: inset 0 0 0 1px rgba(var(--v-theme-on-surface), 0.12); |
67 | 72 | } |
68 | 73 |
|
69 | | -.chip--green { |
70 | | - background-color: rgb(var(--v-theme-download)); |
71 | | - color: rgb(var(--v-theme-on-download)); |
| 74 | +.chip.chip--add { |
| 75 | + background-color: rgba(var(--v-theme-add), 0.8); |
| 76 | + color: rgb(var(--v-theme-on-add)); |
72 | 77 | } |
73 | 78 |
|
74 | | -.chip--green-light { |
75 | | - background-color: rgba(var(--v-theme-download), 0.3); |
76 | | - color: rgb(var(--v-theme-download)); |
| 79 | +.chip.chip--add-mixed { |
| 80 | + background-color: rgba(var(--v-theme-add-darken-1), 0.45); |
| 81 | + color: rgb(var(--v-theme-on-add)); |
77 | 82 | } |
78 | 83 |
|
79 | | -.chip--red { |
80 | | - background-color: rgb(var(--v-theme-error)); |
81 | | - color: rgb(var(--v-theme-on-error)); |
| 84 | +.chip.chip--remove { |
| 85 | + background-color: rgba(var(--v-theme-remove), 0.8); |
| 86 | + color: rgb(var(--v-theme-on-remove)); |
82 | 87 | } |
83 | 88 |
|
84 | | -.chip--red-light { |
85 | | - background-color: rgba(var(--v-theme-error), 0.3); |
86 | | - color: rgb(var(--v-theme-error)); |
| 89 | +.chip.chip--remove-mixed { |
| 90 | + background-color: rgba(var(--v-theme-remove-darken-1), 0.45); |
| 91 | + color: rgb(var(--v-theme-on-remove)); |
87 | 92 | } |
88 | 93 |
|
89 | 94 | /* Empty state */ |
90 | 95 | .chip-selector__empty { |
91 | | - padding: 16px; |
92 | | - text-align: center; |
93 | | - color: rgba(var(--v-theme-on-surface), 0.6); |
94 | | - font-style: italic; |
| 96 | + padding: 16px; |
| 97 | + text-align: center; |
| 98 | + color: rgba(var(--v-theme-on-surface), 0.6); |
| 99 | + font-style: italic; |
95 | 100 | } |
96 | 101 |
|
97 | 102 | /* Mobile optimizations */ |
98 | 103 | @media (max-width: 600px) { |
99 | | - .chip-selector__chips { |
100 | | - gap: 6px; |
101 | | - } |
102 | | - |
103 | | - .chip { |
104 | | - padding: 4px 8px; |
105 | | - font-size: 12px; |
106 | | - min-height: 28px; |
107 | | - } |
108 | | - |
109 | | - .chip__icon { |
110 | | - font-size: 14px; |
111 | | - } |
| 104 | + .chip-selector__chips { |
| 105 | + gap: 6px; |
| 106 | + } |
| 107 | + |
| 108 | + .chip { |
| 109 | + padding: 4px 8px; |
| 110 | + font-size: 12px; |
| 111 | + min-height: 28px; |
| 112 | + } |
| 113 | + |
| 114 | + .chip__icon { |
| 115 | + font-size: 14px; |
| 116 | + } |
112 | 117 | } |
0 commit comments