Skip to content

Commit 28be11a

Browse files
committed
fix: improve responsive design for linear scale question component
Signed-off-by: Christian Hartmann <chris-hartmann@gmx.de>
1 parent 3a1682b commit 28be11a

1 file changed

Lines changed: 48 additions & 7 deletions

File tree

src/components/Questions/QuestionLinearScale.vue

Lines changed: 48 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ export default {
152152
optionsLabelLowest: {
153153
get() {
154154
return (
155-
this.extraSettings?.optionsLabelLowest ??
156-
t('forms', 'Strongly disagree')
155+
this.extraSettings?.optionsLabelLowest
156+
?? t('forms', 'Strongly disagree')
157157
)
158158
},
159159
set(value) {
@@ -163,8 +163,8 @@ export default {
163163
optionsLabelHighest: {
164164
get() {
165165
return (
166-
this.extraSettings?.optionsLabelHighest ??
167-
t('forms', 'Strongly agree')
166+
this.extraSettings?.optionsLabelHighest
167+
?? t('forms', 'Strongly agree')
168168
)
169169
},
170170
set(value) {
@@ -251,45 +251,86 @@ export default {
251251
<style lang="scss" scoped>
252252
.question__content {
253253
display: flex;
254-
padding-block-start: var(--clickable-area-small);
254+
255+
@media (max-width: 768px) {
256+
flex-wrap: wrap; // Allow wrapping for smaller screens
257+
}
258+
259+
@media (min-width: 769px) {
260+
padding-block-start: var(--clickable-area-small);
261+
}
255262
256263
&__options {
257264
width: 100%;
258265
display: flex;
259266
flex-direction: row;
260267
justify-content: space-evenly;
261268
flex-grow: 1;
269+
270+
@media (max-width: 768px) {
271+
flex-direction: column; // Stack options vertically on smaller screens
272+
align-items: flex-start; // Align items to the left
273+
}
262274
}
263275
264276
&__edit {
265277
margin-inline-start: -12px;
266278
}
267279
280+
:deep(.checkbox-content) {
281+
display: flex;
282+
flex-direction: row; // Labels next to checkboxes by default
283+
align-items: center;
284+
text-align: center;
285+
286+
@media (min-width: 769px) {
287+
flex-direction: column; // Labels above checkboxes on larger screens
288+
align-items: center;
289+
}
290+
}
291+
268292
:deep(.checkbox-content__text) {
269293
position: absolute;
270-
margin-block-start: calc(-1 * var(--clickable-area-large));
271-
margin-inline-start: 8px;
294+
margin-block-start: calc(-1 * var(--default-clickable-area));
295+
296+
@media (max-width: 768px) {
297+
margin-block-start: 0;
298+
margin-inline-start: var(--default-clickable-area);
299+
}
272300
}
273301
274302
.label-input-field {
275303
width: 120px;
276304
align-self: center;
277305
min-height: fit-content;
278306
flex-shrink: 0;
307+
308+
@media (max-width: 768px) {
309+
width: 100%; // Full width on smaller screens
310+
}
279311
}
280312
281313
.label-lowest {
282314
width: 120px;
283315
align-self: center;
284316
text-align: start;
285317
flex-shrink: 0;
318+
319+
@media (max-width: 768px) {
320+
width: 100%; // Full width on smaller screens
321+
}
286322
}
287323
288324
.label-highest {
289325
width: 120px;
290326
align-self: center;
291327
text-align: end;
292328
flex-shrink: 0;
329+
330+
@media (max-width: 768px) {
331+
text-align: start;
332+
width: 100%; // Full width on smaller screens
333+
}
293334
}
294335
}
295336
</style>

0 commit comments

Comments
 (0)