Skip to content

Commit a27f2ec

Browse files
committed
feat(Grid): added order responsive props
1 parent 1cbf906 commit a27f2ec

File tree

3 files changed

+39
-6
lines changed

3 files changed

+39
-6
lines changed

apps/docs/src/stories/Layouts/Grid.story.vue

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,22 @@
2727
<pf-grid-item span="4">span = 4</pf-grid-item>
2828
</pf-grid>
2929
</story-canvas>
30+
31+
<story-canvas title="Item order">
32+
<pf-grid gutter>
33+
<pf-grid-item span="8" order-2xl="1">span = 8</pf-grid-item>
34+
<pf-grid-item span="4" row-span="2">span = 4, rowSpan = 2</pf-grid-item>
35+
<pf-grid-item span="2" row-span="3">span = 2, rowSpan = 3</pf-grid-item>
36+
<pf-grid-item span="2">span = 2</pf-grid-item>
37+
<pf-grid-item span="4">span = 4</pf-grid-item>
38+
<pf-grid-item span="2">span = 2</pf-grid-item>
39+
<pf-grid-item span="2">span = 2</pf-grid-item>
40+
<pf-grid-item span="2">span = 2</pf-grid-item>
41+
<pf-grid-item span="4" order="-1">span = 4</pf-grid-item>
42+
<pf-grid-item span="2">span = 2</pf-grid-item>
43+
<pf-grid-item span="4">span = 4</pf-grid-item>
44+
<pf-grid-item span="4" order="2">span = 4</pf-grid-item>
45+
</pf-grid>
46+
</story-canvas>
3047
</doc-page>
3148
</template>

packages/core/src/layouts/Grid/Grid.vue

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
<template>
2-
<component :is="component" :class="[styles.grid, ...gridClasses, { [styles.modifiers.gutter]: gutter }]">
2+
<component
3+
:is="component"
4+
:class="[styles.grid, ...gridClasses, { [styles.modifiers.gutter]: gutter }]"
5+
:style="{
6+
...cssVarsFromBreakpointProps($props, 'order', gridToken.l_grid_item_Order.name),
7+
}"
8+
>
39
<slot />
410
</component>
511
</template>
612

713
<script lang="ts" setup>
814
import styles from '@patternfly/react-styles/css/layouts/Grid/grid';
9-
import { breakpoints } from '../../breakpoints';
15+
import * as gridToken from '@patternfly/react-tokens/dist/esm/l_grid_item_Order';
16+
17+
import { breakpoints, cssVarsFromBreakpointProps, type OrderBreakpointProps } from '../../breakpoints';
1018
import { computed, type Component, type HTMLAttributes } from 'vue';
1119
1220
defineOptions({
@@ -16,7 +24,7 @@ defineOptions({
1624
export type GridSpan = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
1725
| '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12';
1826
19-
export interface Props extends /* @vue-ignore */ HTMLAttributes {
27+
export interface Props extends OrderBreakpointProps, /* @vue-ignore */ HTMLAttributes {
2028
component?: string | Component;
2129
gutter?: boolean;
2230

packages/core/src/layouts/Grid/GridItem.vue

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
<template>
2-
<component :is="component" :class="[styles.gridItem, ...gridClasses]">
2+
<component
3+
:is="component"
4+
:class="[styles.gridItem, ...gridClasses]"
5+
:style="{
6+
...cssVarsFromBreakpointProps($props, 'order', gridToken.l_grid_item_Order.name),
7+
}"
8+
>
39
<slot />
410
</component>
511
</template>
612

713
<script lang="ts" setup>
814
import styles from '@patternfly/react-styles/css/layouts/Grid/grid';
9-
import { breakpoints } from '../../breakpoints';
15+
import * as gridToken from '@patternfly/react-tokens/dist/esm/l_grid_item_Order';
16+
17+
import { breakpoints, cssVarsFromBreakpointProps, type OrderBreakpointProps } from '../../breakpoints';
1018
import type { HTMLAttributes, Component } from 'vue';
1119
import { computed } from 'vue';
1220
import type { GridSpan } from './Grid.vue';
@@ -15,7 +23,7 @@ defineOptions({
1523
name: 'PfGridItem',
1624
});
1725
18-
export interface Props extends /* @vue-ignore */ HTMLAttributes {
26+
export interface Props extends OrderBreakpointProps, /* @vue-ignore */ HTMLAttributes {
1927
/** The tag or component to use as container */
2028
component?: string | Component;
2129

0 commit comments

Comments
 (0)