|
10 | 10 | * governing permissions and limitations under the License. |
11 | 11 | */ |
12 | 12 |
|
13 | | -/* Phase 5 (Styling): migrate Spectrum CSS tokens here. */ |
14 | | - |
15 | 13 | :host { |
16 | 14 | display: block; |
17 | 15 | } |
18 | 16 |
|
19 | | -.visually-hidden { |
| 17 | +* { |
| 18 | + box-sizing: border-box; |
| 19 | +} |
| 20 | + |
| 21 | +/* ───────────────────────────────────── |
| 22 | + Base wrapper — default (medium) size |
| 23 | + ───────────────────────────────────── */ |
| 24 | + |
| 25 | +.swc-Dropzone { |
| 26 | + --_swc-dropzone-border-width: var(--swc-dropzone-border-width, token("border-width-200")); |
| 27 | + --_swc-dropzone-corner-radius: var(--swc-dropzone-corner-radius, token("corner-radius-400")); |
| 28 | + --_swc-dropzone-padding: var(--swc-dropzone-padding, token("spacing-400")); |
| 29 | + --_swc-dropzone-border-color: var(--swc-dropzone-border-color, token("gray-300")); |
| 30 | + |
| 31 | + display: flex; |
| 32 | + position: relative; |
| 33 | + flex-direction: column; |
| 34 | + gap: token("spacing-300"); |
| 35 | + align-items: center; |
| 36 | + justify-content: center; |
| 37 | + padding: var(--_swc-dropzone-padding); |
| 38 | + background: var(--swc-dropzone-background-color, transparent); |
| 39 | + border: var(--_swc-dropzone-border-width) dashed var(--_swc-dropzone-border-color); |
| 40 | + border-radius: var(--_swc-dropzone-corner-radius); |
| 41 | +} |
| 42 | + |
| 43 | +/* ───────────────────────────────────── |
| 44 | + Sizes |
| 45 | + ───────────────────────────────────── */ |
| 46 | + |
| 47 | +:host([size="s"]) .swc-Dropzone { |
| 48 | + --_swc-dropzone-padding: var(--swc-dropzone-padding, token("spacing-300")); |
| 49 | +} |
| 50 | + |
| 51 | +:host([size="l"]) .swc-Dropzone { |
| 52 | + --_swc-dropzone-padding: var(--swc-dropzone-padding, token("spacing-600")); |
| 53 | +} |
| 54 | + |
| 55 | +/* ───────────────────────────────────── |
| 56 | + Dragged state |
| 57 | + ───────────────────────────────────── */ |
| 58 | + |
| 59 | +:host([dragged]) .swc-Dropzone { |
| 60 | + --_swc-dropzone-border-color: var(--swc-dropzone-border-color-dragged, token("accent-visual-color")); |
| 61 | + |
| 62 | + background: var(--swc-dropzone-background-color, token("accent-subtle-background-color-default")); |
| 63 | + border-style: solid; |
| 64 | +} |
| 65 | + |
| 66 | +/* Cascade accent illustration color into any slotted swc-illustrated-message. */ |
| 67 | +:host([dragged]) { |
| 68 | + --swc-illustrated-message-illustration-color: token("accent-visual-color"); |
| 69 | +} |
| 70 | + |
| 71 | +/* ───────────────────────────────────── |
| 72 | + Focus-within (browse control focused) |
| 73 | + ───────────────────────────────────── */ |
| 74 | + |
| 75 | +/* Mirror the dragged border when the browse control receives keyboard focus. */ |
| 76 | +:host(:focus-within) .swc-Dropzone { |
| 77 | + --_swc-dropzone-border-color: var(--swc-dropzone-border-color-dragged, token("accent-visual-color")); |
| 78 | + |
| 79 | + border-style: solid; |
| 80 | +} |
| 81 | + |
| 82 | +/* ───────────────────────────────────── |
| 83 | + Filled state |
| 84 | + ───────────────────────────────────── */ |
| 85 | + |
| 86 | +:host([filled]) ::slotted(swc-illustrated-message) { |
| 87 | + display: none; |
| 88 | +} |
| 89 | + |
| 90 | +/* ───────────────────────────────────── |
| 91 | + Visually-hidden status region |
| 92 | + ───────────────────────────────────── */ |
| 93 | + |
| 94 | +.swc-Dropzone-status { |
20 | 95 | position: absolute; |
21 | 96 | inline-size: 1px; |
22 | 97 | block-size: 1px; |
23 | 98 | white-space: nowrap; |
24 | 99 | overflow: hidden; |
25 | 100 | clip-path: inset(50%); |
26 | 101 | } |
| 102 | + |
| 103 | +/* ───────────────────────────────────── |
| 104 | + Forced colors |
| 105 | + ───────────────────────────────────── */ |
| 106 | + |
| 107 | +@media (forced-colors: active) { |
| 108 | + :host { |
| 109 | + --swc-illustrated-message-illustration-color: CanvasText; |
| 110 | + } |
| 111 | + |
| 112 | + .swc-Dropzone { |
| 113 | + border-color: ButtonText; |
| 114 | + } |
| 115 | + |
| 116 | + :host([dragged]) .swc-Dropzone, |
| 117 | + :host(:focus-within) .swc-Dropzone { |
| 118 | + background: Canvas; |
| 119 | + border-color: Highlight; |
| 120 | + } |
| 121 | +} |
0 commit comments