|
1 | 1 | .navds-expansioncard {
|
2 |
| - --__ac-expansioncard-border-color: var(--ac-expansioncard-border-color, var(--a-border-default)); |
3 |
| - --__ac-expansioncard-border-radius: var(--ac-expansioncard-border-radius, var(--a-border-radius-large)); |
4 |
| - --__ac-expansioncard-border-width: 1px; |
5 |
| - --__ac-expansioncard-padding-block: var(--a-spacing-4); |
6 |
| - --__ac-expansioncard-padding-inline: var(--a-spacing-6); |
7 |
| - |
8 |
| - border-radius: var(--__ac-expansioncard-border-radius); |
9 |
| - background-color: var(--ac-expansioncard-bg, var(--a-surface-default)); |
| 2 | + --__axc-expansioncard-border-radius: var(--ax-border-radius-xlarge); |
| 3 | + --__axc-expansioncard-padding-block: var(--ax-spacing-4); |
| 4 | + --__axc-expansioncard-padding-inline: var(--ax-spacing-6); |
| 5 | + |
| 6 | + border-radius: var(--__axc-expansioncard-border-radius); |
| 7 | + background-color: var(--ax-bg-raised); |
10 | 8 | height: fit-content;
|
11 |
| -} |
| 9 | + outline: 1px solid var(--ax-border-default); |
12 | 10 |
|
13 |
| -.navds-expansioncard--open { |
14 |
| - --__ac-expansioncard-border-color: var( |
15 |
| - --ac-expansioncard-border-open-color, |
16 |
| - var(--ac-expansioncard-border-color, var(--a-border-default)) |
17 |
| - ); |
| 11 | + &:has(.navds-expansioncard__header:hover) { |
| 12 | + outline-color: var(--ax-border-strong); |
| 13 | + outline-width: 2px; |
| 14 | + } |
18 | 15 | }
|
19 | 16 |
|
20 |
| -.navds-expansioncard:hover { |
21 |
| - --__ac-expansioncard-border-color: var(--ac-expansioncard-border-hover-color, var(--a-border-strong)); |
22 |
| -} |
| 17 | +/* ------------------------ ExpansionCard Small-size ------------------------ */ |
| 18 | +.navds-expansioncard--small { |
| 19 | + --__axc-expansioncard-padding-block: var(--ax-spacing-3); |
| 20 | + --__axc-expansioncard-padding-inline: var(--ax-spacing-4); |
| 21 | + |
| 22 | + & > .navds-expansioncard__header .navds-expansioncard__title--small { |
| 23 | + margin-top: var(--ax-spacing-05); |
| 24 | + } |
| 25 | + |
| 26 | + & :is(.navds-expansioncard__title--medium, .navds-expansioncard__title--large) { |
| 27 | + margin-top: 0; |
| 28 | + } |
| 29 | + |
| 30 | + & > .navds-expansioncard__header > .navds-expansioncard__header-button { |
| 31 | + min-height: 2rem; |
| 32 | + min-width: 2rem; |
| 33 | + } |
23 | 34 |
|
24 |
| -:where(.navds-expansioncard.navds-expansioncard--open):hover { |
25 |
| - --__ac-expansioncard-border-color: var(--ac-expansioncard-border-hover-color, var(--a-border-strong)); |
| 35 | + & .navds-expansioncard__content { |
| 36 | + --__axc-expansioncard-padding-block: var(--ax-spacing-4); |
| 37 | + } |
26 | 38 | }
|
27 | 39 |
|
28 |
| -/************************* |
29 |
| - * Header * |
30 |
| - *************************/ |
| 40 | +/* -------------------------- ExpansionCard Header -------------------------- */ |
31 | 41 | .navds-expansioncard__header {
|
32 | 42 | width: 100%;
|
33 | 43 | display: flex;
|
34 |
| - gap: var(--a-spacing-4); |
35 |
| - padding: var(--__ac-expansioncard-padding-block) var(--__ac-expansioncard-padding-inline); |
36 |
| - border-radius: var(--__ac-expansioncard-border-radius); |
37 |
| - background-color: var(--ac-expansioncard-header-bg, var(--a-surface-transparent)); |
| 44 | + gap: var(--ax-spacing-4); |
| 45 | + padding: var(--__axc-expansioncard-padding-block) var(--__axc-expansioncard-padding-inline); |
| 46 | + border-radius: var(--__axc-expansioncard-border-radius); |
| 47 | + background-color: transparent; |
38 | 48 | position: relative;
|
39 |
| - border: var(--__ac-expansioncard-border-width) solid var(--__ac-expansioncard-border-color); |
40 | 49 | justify-content: space-between;
|
41 |
| -} |
42 |
| - |
43 |
| -.navds-expansioncard--small { |
44 |
| - --__ac-expansioncard-padding-block: var(--a-spacing-3); |
45 |
| - --__ac-expansioncard-padding-inline: var(--a-spacing-4); |
46 |
| -} |
47 | 50 |
|
48 |
| -.navds-expansioncard__header:hover { |
49 |
| - background-color: var(--ac-expansioncard-header-bg-hover, var(--a-surface-hover)); |
50 |
| - box-shadow: 0 0 0 1px var(--__ac-expansioncard-border-color); |
51 |
| -} |
52 |
| - |
53 |
| -.navds-expansioncard--open > :where(.navds-expansioncard__header) { |
54 |
| - border-bottom-left-radius: 0; |
55 |
| - border-bottom-right-radius: 0; |
56 |
| - border: var(--__ac-expansioncard-border-width) solid var(--__ac-expansioncard-border-color); |
57 |
| - border-bottom: none; |
58 |
| - background-color: var(--ac-expansioncard-header-open-bg, var(--a-surface-transparent)); |
59 |
| -} |
60 |
| - |
61 |
| -.navds-expansioncard--open > :where(.navds-expansioncard__header):hover { |
62 |
| - background-color: var(--ac-expansioncard-header-bg-hover, var(--a-surface-hover)); |
63 |
| - box-shadow: |
64 |
| - 1px 0 0 0 var(--__ac-expansioncard-border-color), |
65 |
| - -1px 0 0 0 var(--__ac-expansioncard-border-color), |
66 |
| - 0 -1px 0 0 var(--__ac-expansioncard-border-color); |
67 |
| -} |
68 |
| - |
69 |
| -.navds-expansioncard--open > :where(.navds-expansioncard__header)::after { |
70 |
| - content: ""; |
71 |
| - background-color: var(--a-border-divider); |
72 |
| - bottom: 0; |
73 |
| - left: var(--__ac-expansioncard-padding-inline); |
74 |
| - height: 1px; |
75 |
| - width: calc(100% - 2 * var(--__ac-expansioncard-padding-inline)); |
76 |
| - position: absolute; |
77 |
| - opacity: 1; |
78 |
| - transition: opacity 0.1s cubic-bezier(0.175, 0.885, 0.32, 1.275); |
79 |
| -} |
| 51 | + &:hover { |
| 52 | + background-color: var(--ax-bg-neutral-raised-hover); |
| 53 | + } |
80 | 54 |
|
81 |
| -.navds-expansioncard--open > :where(.navds-expansioncard__header:hover)::after { |
82 |
| - opacity: 0; |
| 55 | + &[data-open="true"] { |
| 56 | + border-bottom-left-radius: 0; |
| 57 | + border-bottom-right-radius: 0; |
| 58 | + border-bottom: none; |
| 59 | + |
| 60 | + /* Divider between header and content */ |
| 61 | + &::after { |
| 62 | + content: ""; |
| 63 | + background-color: var(--ax-border-subtle); |
| 64 | + bottom: 0; |
| 65 | + left: var(--__axc-expansioncard-padding-inline); |
| 66 | + height: 1px; |
| 67 | + width: calc(100% - 2 * var(--__axc-expansioncard-padding-inline)); |
| 68 | + position: absolute; |
| 69 | + opacity: 1; |
| 70 | + transition: opacity 0.1s linear; |
| 71 | + } |
| 72 | + |
| 73 | + &:hover::after { |
| 74 | + opacity: 0; |
| 75 | + } |
| 76 | + } |
83 | 77 | }
|
84 | 78 |
|
85 |
| -/************************* |
86 |
| - * Header/Typography * |
87 |
| - *************************/ |
88 |
| - |
| 79 | +/* --------------------- ExpansionCard Header typography -------------------- */ |
89 | 80 | .navds-expansioncard__title--small {
|
90 | 81 | margin-top: 0.625rem;
|
91 | 82 | }
|
92 | 83 |
|
93 | 84 | .navds-expansioncard__title--medium {
|
94 |
| - margin-top: var(--a-spacing-2); |
| 85 | + margin-top: var(--ax-spacing-2); |
95 | 86 | }
|
96 | 87 |
|
97 | 88 | .navds-expansioncard__title--large {
|
98 |
| - margin-top: var(--a-spacing-1); |
99 |
| -} |
100 |
| - |
101 |
| -.navds-expansioncard--small > :where(.navds-expansioncard__header) :where(.navds-expansioncard__title--small) { |
102 |
| - margin-top: var(--a-spacing-05); |
103 |
| -} |
104 |
| - |
105 |
| -.navds-expansioncard--small :where(.navds-expansioncard__title--medium, .navds-expansioncard__title--large) { |
106 |
| - margin-top: 0; |
| 89 | + margin-top: var(--ax-spacing-1); |
107 | 90 | }
|
108 | 91 |
|
109 |
| -/************************* |
110 |
| - * Header/Button * |
111 |
| - *************************/ |
| 92 | +/* ----------------------- ExpansionCard Header Button ---------------------- */ |
112 | 93 | .navds-expansioncard__header-button {
|
113 | 94 | display: grid;
|
114 | 95 | place-content: center;
|
115 | 96 | cursor: pointer;
|
116 | 97 | margin: 0;
|
117 | 98 | background: transparent;
|
118 | 99 | border: none;
|
119 |
| - border-radius: var(--ac-expansioncard-button-border-radius, var(--a-border-radius-medium)); |
| 100 | + border-radius: var(--ax-border-radius-large); |
120 | 101 | min-height: 3rem;
|
121 | 102 | min-width: 3rem;
|
122 | 103 | font-size: 1.5rem;
|
123 | 104 | align-self: flex-start;
|
124 |
| -} |
125 | 105 |
|
126 |
| -.navds-expansioncard--small > :where(.navds-expansioncard__header) > :where(.navds-expansioncard__header-button) { |
127 |
| - min-height: 2rem; |
128 |
| - min-width: 2rem; |
129 |
| -} |
130 |
| - |
131 |
| -:where(.navds-expansioncard__header):hover > :where(.navds-expansioncard__header-button) { |
132 |
| - background-color: var(--a-surface-hover); |
133 |
| -} |
134 |
| - |
135 |
| -.navds-expansioncard__header-chevron { |
136 |
| - transition: transform 150ms ease-in-out; |
137 |
| -} |
138 |
| - |
139 |
| -.navds-expansioncard--open > :where(.navds-expansioncard__header) :where(.navds-expansioncard__header-chevron) { |
140 |
| - transform: translateY(0) rotate(180deg); |
141 |
| -} |
142 |
| - |
143 |
| -.navds-expansioncard__header-button:hover > :where(.navds-expansioncard__header-chevron) { |
144 |
| - transform: translateY(1px); |
145 |
| -} |
146 |
| - |
147 |
| -.navds-expansioncard__header-button:focus-visible { |
148 |
| - outline: 3px solid transparent; |
149 |
| - box-shadow: var(--a-shadow-focus); |
150 |
| -} |
151 |
| - |
152 |
| -@supports not selector(:focus-visible) { |
153 |
| - .navds-expansioncard__header-button:focus { |
154 |
| - outline: 3px solid transparent; |
155 |
| - box-shadow: var(--a-shadow-focus); |
| 106 | + &:focus-visible { |
| 107 | + outline: 2px solid var(--ax-border-focus); |
| 108 | + outline-offset: 2px; |
156 | 109 | }
|
157 |
| -} |
158 |
| - |
159 |
| -.navds-expansioncard--open |
160 |
| - > :where(.navds-expansioncard__header) |
161 |
| - > :where(.navds-expansioncard__header-button):hover |
162 |
| - :where(.navds-expansioncard__header-chevron) { |
163 |
| - transform: translateY(-1px) rotate(180deg); |
164 |
| -} |
165 | 110 |
|
166 |
| -.navds-expansioncard__header-button::after { |
167 |
| - inset: 0; |
168 |
| - z-index: 1; |
169 |
| - position: absolute; |
170 |
| - content: ""; |
171 |
| - height: 100%; |
172 |
| - width: 100%; |
173 |
| - cursor: pointer; |
174 |
| -} |
175 |
| - |
176 |
| -/************************* |
177 |
| - * Content * |
178 |
| - *************************/ |
179 |
| -.navds-expansioncard__content { |
180 |
| - --__ac-expansioncard-padding-block: var(--a-spacing-5); |
181 |
| - |
182 |
| - border-end-end-radius: var(--__ac-expansioncard-border-radius); |
183 |
| - border-end-start-radius: var(--__ac-expansioncard-border-radius); |
184 |
| - padding: var(--__ac-expansioncard-padding-block) var(--__ac-expansioncard-padding-inline) |
185 |
| - var(--__ac-expansioncard-padding-inline); |
186 |
| - border: var(--__ac-expansioncard-border-width) solid var(--__ac-expansioncard-border-color); |
187 |
| - border-top: none; |
188 |
| -} |
| 111 | + @supports not selector(:focus-visible) { |
| 112 | + &:focus { |
| 113 | + outline: 2px solid var(--ax-border-focus); |
| 114 | + outline-offset: 2px; |
| 115 | + } |
| 116 | + } |
189 | 117 |
|
190 |
| -.navds-expansioncard--small .navds-expansioncard__content { |
191 |
| - --__ac-expansioncard-padding-block: var(--a-spacing-4); |
| 118 | + /* Makes the whole header clickable */ |
| 119 | + &::after { |
| 120 | + inset: 0; |
| 121 | + z-index: 1; |
| 122 | + position: absolute; |
| 123 | + content: ""; |
| 124 | + height: 100%; |
| 125 | + width: 100%; |
| 126 | + cursor: pointer; |
| 127 | + } |
192 | 128 | }
|
193 | 129 |
|
194 |
| -.navds-expansioncard__content--closed { |
195 |
| - display: none; |
| 130 | +.navds-expansioncard__header:hover > .navds-expansioncard__header-button { |
| 131 | + background-color: var(--ax-bg-neutral-moderate-hoverA); |
196 | 132 | }
|
197 | 133 |
|
198 |
| -:where(.navds-expansioncard__header):hover + .navds-expansioncard__content { |
199 |
| - box-shadow: |
200 |
| - 1px 0 0 0 var(--__ac-expansioncard-border-color), |
201 |
| - -1px 0 0 0 var(--__ac-expansioncard-border-color), |
202 |
| - 0 1px 0 0 var(--__ac-expansioncard-border-color); |
| 134 | +.navds-expansioncard__header-chevron { |
| 135 | + transition: transform 250ms cubic-bezier(0.2, 0, 0, 1); |
203 | 136 | }
|
204 | 137 |
|
205 |
| -.navds-expansioncard__content-inner { |
206 |
| - animation: fadeExpansionCard 250ms ease; |
| 138 | +.navds-expansioncard__header[data-open="true"] .navds-expansioncard__header-chevron { |
| 139 | + transform: rotateX(-180deg); |
207 | 140 | }
|
208 | 141 |
|
209 |
| -.navds-expansioncard--no-animation :where(.navds-expansioncard__content-inner) { |
210 |
| - animation: none; |
| 142 | +.navds-expansioncard__header[data-open="false"] .navds-expansioncard__header-chevron { |
| 143 | + transition-duration: 0ms; |
211 | 144 | }
|
212 | 145 |
|
213 |
| -@keyframes fadeExpansionCard { |
214 |
| - 0% { |
215 |
| - opacity: 0.25; |
216 |
| - transform: translateY(-8px); |
217 |
| - } |
| 146 | +/* -------------------------- ExpansionCard Content ------------------------- */ |
| 147 | +.navds-expansioncard__content { |
| 148 | + --__axc-expansioncard-padding-block: var(--ax-spacing-5); |
218 | 149 |
|
219 |
| - 40% { |
220 |
| - opacity: 0.7; |
| 150 | + border-end-end-radius: var(--__axc-expansioncard-border-radius); |
| 151 | + border-end-start-radius: var(--__axc-expansioncard-border-radius); |
| 152 | + padding-inline: var(--__axc-expansioncard-padding-inline); |
| 153 | + padding-block: 0; |
| 154 | + display: grid; |
| 155 | + grid-template-rows: 0fr; |
| 156 | + visibility: hidden; |
| 157 | + transition-duration: 250ms; |
| 158 | + transition-timing-function: cubic-bezier(0.2, 0, 0, 1); |
| 159 | + transition-property: padding-block, grid-template-rows; |
| 160 | + |
| 161 | + &[data-open="true"] { |
| 162 | + grid-template-rows: 1fr; |
| 163 | + visibility: visible; |
| 164 | + padding-block: var(--__axc-expansioncard-padding-block) var(--__axc-expansioncard-padding-inline); |
| 165 | + |
| 166 | + & .navds-expansioncard__content-inner { |
| 167 | + opacity: 1; |
| 168 | + } |
221 | 169 | }
|
222 | 170 |
|
223 |
| - 100% { |
224 |
| - opacity: 1; |
225 |
| - transform: translateY(0); |
| 171 | + &[data-open="false"] { |
| 172 | + transition-duration: 0ms; |
226 | 173 | }
|
227 | 174 | }
|
228 | 175 |
|
229 |
| -@media (forced-colors: active) { |
230 |
| - .navds-expansioncard:hover { |
231 |
| - --__ac-expansioncard-border-color: highlight; |
| 176 | +.navds-expansioncard__content-inner { |
| 177 | + min-height: 0; |
| 178 | + opacity: 0; |
| 179 | + transition: opacity 250ms cubic-bezier(0.2, 0, 0, 1); |
| 180 | +} |
232 | 181 |
|
233 |
| - outline: 1px solid highlight; |
| 182 | +/* ---------------- ExpansionCard No Animation (defaultOpen) ---------------- */ |
| 183 | +.navds-expansioncard--no-animation { |
| 184 | + & :is(.navds-expansioncard__content, .navds-expansioncard__content-inner) { |
| 185 | + transition: none; |
234 | 186 | }
|
235 | 187 | }
|
0 commit comments