Skip to content

Commit f8928ad

Browse files
committed
feat: add grid item responsive feature
1 parent 1035c0d commit f8928ad

File tree

3 files changed

+44
-10
lines changed

3 files changed

+44
-10
lines changed

src/components/atoms/a-grid/a-grid-item.scss

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,32 @@
44
position: relative;
55
}
66

7-
@for $i from 1 through 12 {
8-
.a-grid-item--column-#{$i} {
9-
grid-column: span #{$i};
10-
11-
@include for-medium-desktop-down{
12-
@if $i >= 6 {
7+
.a-grid-item--responsive {
8+
@for $i from 1 through 12 {
9+
&.a-grid-item--column-#{$i} {
10+
grid-column: span #{$i};
11+
12+
@include for-medium-desktop-down{
13+
@if $i >= 6 {
14+
grid-column: span 12;
15+
} @else {
16+
grid-column: span 6;
17+
}
18+
}
19+
@include for-large-tablet-down {
1320
grid-column: span 12;
14-
} @else {
15-
grid-column: span 6;
1621
}
1722
}
18-
@include for-large-tablet-down {
19-
grid-column: span 12;
23+
&.a-grid-item--row-#{$i} {
24+
grid-row: span #{$i};
2025
}
2126
}
27+
}
28+
29+
@for $i from 1 through 12 {
30+
.a-grid-item--column-#{$i} {
31+
grid-column: span #{$i};
32+
}
2233
.a-grid-item--row-#{$i} {
2334
grid-row: span #{$i};
2435
}

src/components/atoms/a-grid/a-grid-item.vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
[`a-grid-item--behavior-${behavior}`]: behavior,
66
[`a-grid-item--column-${column}`]: column,
77
[`a-grid-item--row-${row}`]: row,
8+
['a-grid-item--responsive']: responsive,
89
}"
910
class="a-grid-item"
1011
>
@@ -31,6 +32,10 @@ export default {
3132
type: String,
3233
default: 'div',
3334
},
35+
responsive: {
36+
type: Boolean,
37+
default: true,
38+
},
3439
},
3540
};
3641
</script>

src/components/atoms/a-grid/a-grid.stories.mdx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,24 @@ AGridItem is where you control the item wrapper in layout.
2727
</Story>
2828
</Canvas>
2929

30+
### Responsive use:
31+
32+
<Canvas>
33+
<Story name="Responsive use">
34+
{{
35+
components: { AGridContainer, AGridItem },
36+
template: `
37+
<a-grid-container style="background-color:blue;">
38+
<a-grid-item style="background-color:yellow;" column="4" :responsive="true">yellow</a-grid-item>
39+
<a-grid-item style="background-color:red;" column="6" :responsive="true">red</a-grid-item>
40+
<a-grid-item style="background-color:orange;" column="4" :responsive="false">orange</a-grid-item>
41+
<a-grid-item style="background-color:green;" column="6" :responsive="false">green</a-grid-item>
42+
</a-grid-container>
43+
`,
44+
}}
45+
</Story>
46+
</Canvas>
47+
3048
### With padding:
3149

3250
<Canvas>

0 commit comments

Comments
 (0)