|
3 | 3 | --spectrum-listview-item-compact-padding-y: var(--spectrum-global-dimension-size-50);
|
4 | 4 | --spectrum-listview-item-regular-padding-y: var(--spectrum-global-dimension-size-75);
|
5 | 5 | --spectrum-listview-item-spacious-padding-y: var(--spectrum-global-dimension-size-100);
|
| 6 | + --spectrum-listview-border-width: var(--spectrum-table-border-size, var(--spectrum-alias-border-size-thin)); |
| 7 | + --spectrum-listview-border-radius: var(--spectrum-table-border-radius, var(--spectrum-alias-border-radius-regular)); |
| 8 | + --spectrum-listview-item-start-end-border-radius: calc(var(--spectrum-listview-border-radius) - var(--spectrum-listview-border-width)); |
6 | 9 | }
|
7 | 10 |
|
8 | 11 | .react-spectrum-ListView {
|
9 | 12 | box-sizing: border-box;
|
10 | 13 | border-color: var(--spectrum-table-border-color, var(--spectrum-alias-border-color-mid));
|
11 | 14 | border-style: solid;
|
12 | 15 | position: relative;
|
13 |
| - border-width: var(--spectrum-table-border-size, var(--spectrum-alias-border-size-thin)); |
14 |
| - border-radius: var(--spectrum-table-border-radius, var(--spectrum-alias-border-radius-regular)); |
| 16 | + border-width: var(--spectrum-listview-border-width); |
| 17 | + border-radius: var(--spectrum-listview-border-radius); |
15 | 18 | overflow: auto;
|
16 | 19 | vertical-align: var(--spectrum-table-cell-vertical-alignment);
|
17 | 20 | border-collapse: separate;
|
|
33 | 36 |
|
34 | 37 | .react-spectrum-ListViewItem {
|
35 | 38 | display: grid; /* TODO: define grid areas */
|
36 |
| - border-bottom: 1px solid var(--spectrum-tabel-cell-border-color, var(--spectrum-global-color-gray-300)); |
| 39 | + border: 1px solid transparent; |
| 40 | + border-bottom-color: var(--spectrum-table-cell-border-color, var(--spectrum-global-color-gray-300)); |
37 | 41 | box-sizing: border-box;
|
38 | 42 | font-size: var(--spectrum-table-cell-text-size, var(--spectrum-alias-font-size-default));
|
39 | 43 | font-weight: var(--spectrum-table-cell-text-font-weight, var(--spectrum-global-font-weight-regular));
|
|
46 | 50 | outline: 0;
|
47 | 51 | min-height: var(--spectrum-global-dimension-size-500);
|
48 | 52 |
|
49 |
| - .react-spectrum-ListView--quiet & { |
50 |
| - border-bottom: 0; |
| 53 | + .react-spectrum-ListView--emphasized & { |
| 54 | + &.is-selected { |
| 55 | + background-color: var(--spectrum-table-row-background-color-selected); |
| 56 | + border-color: var(--spectrum-global-color-blue-500); |
| 57 | + &.is-hovered, |
| 58 | + &.is-active { |
| 59 | + background-color: var(--spectrum-table-row-background-color-selected); |
| 60 | + } |
| 61 | + |
| 62 | + /* avoid double border for adjacent selected items */ |
| 63 | + &.is-previous-selected { |
| 64 | + &:not(.is-focused) { |
| 65 | + border-top-color: transparent; |
| 66 | + } |
| 67 | + } |
| 68 | + } |
51 | 69 | }
|
52 | 70 |
|
53 | 71 | &.is-hovered,
|
54 | 72 | &.is-focused {
|
55 | 73 | background-color: var(--spectrum-table-row-background-color-hover);
|
56 |
| - |
57 |
| - .react-spectrum-ListView--quiet & { |
58 |
| - border-radius: var(--spectrum-table-border-radius, var(--spectrum-alias-border-radius-regular)); |
59 |
| - } |
60 | 74 | }
|
61 | 75 |
|
62 | 76 | &:focus-ring {
|
63 | 77 | background-color: var(--spectrum-table-row-background-color-hover);
|
64 |
| - box-shadow: inset 0 0 0 2px var(--spectrum-table-cell-border-color-key-focus); |
65 |
| - border-radius: var(--spectrum-table-cell-border-radius-key-focus); |
| 78 | + box-shadow: inset 0 0 0 1px var(--spectrum-table-cell-border-color-key-focus); |
| 79 | + border-color: var(--spectrum-global-color-blue-500); |
66 | 80 | }
|
67 | 81 |
|
68 | 82 | &.is-active {
|
69 | 83 | background-color: var(--spectrum-table-row-background-color-down);
|
70 | 84 | }
|
71 | 85 |
|
72 | 86 | &.is-selected {
|
73 |
| - background-color: var(--spectrum-table-row-background-color-selected); |
| 87 | + background-color: var(--spectrum-table-row-background-color-hover); |
74 | 88 |
|
75 | 89 | &.is-hovered,
|
76 | 90 | &.is-active {
|
77 |
| - background-color: var(--spectrum-table-row-background-color-selected-hover); |
| 91 | + background-color: var(--spectrum-table-row-background-color-hover); |
78 | 92 | }
|
79 | 93 | }
|
80 | 94 |
|
81 |
| - &.react-spectrum-ListViewItem--highlightSelection { |
82 |
| - border-bottom-color: var(--spectrum-global-color-blue-500); |
83 |
| - } |
84 |
| - |
85 | 95 | &.has-checkbox {
|
86 | 96 | /* have to eliminate vertical padding to allow proper vertical alignment */
|
87 | 97 | padding-top: 0px;
|
88 | 98 | padding-bottom: 0px;
|
89 | 99 | }
|
90 |
| -} |
91 |
| - |
92 |
| -.react-spectrum-ListViewItem-selected { |
93 |
| - background-color: var(--spectrum-table-row-background-color-selected, var(--spectrum-alias-highlight-selected)); |
94 |
| - &.is-hovered { |
95 |
| - background-color: var(--spectrum-table-quiet-row-background-color-selected-hover); |
| 100 | + |
| 101 | + /* give first and last items border-radius to match listview container */ |
| 102 | + div:first-child > div[role="row"] > & { |
| 103 | + border-start-start-radius: var(--spectrum-listview-item-start-end-border-radius); |
| 104 | + border-start-end-radius: var(--spectrum-listview-item-start-end-border-radius); |
| 105 | + } |
| 106 | + div:last-child > div[role="row"] > & { |
| 107 | + border-end-start-radius: var(--spectrum-listview-item-start-end-border-radius); |
| 108 | + border-end-end-radius: var(--spectrum-listview-item-start-end-border-radius); |
96 | 109 | }
|
97 | 110 | }
|
98 | 111 |
|
|
0 commit comments