Projet

Général

Profil

0001-scss-add-new-grid-system-with-flexbox-54488.patch

Thomas Jund, 01 juin 2021 16:49

Télécharger (3,58 ko)

Voir les différences:

Subject: [PATCH] scss: add new grid system with flexbox (#54488)

 gadjo/static/css/_fx-grid.scss | 108 +++++++++++++++++++++++++++++++++
 gadjo/static/css/gadjo.scss    |   1 +
 2 files changed, 109 insertions(+)
 create mode 100644 gadjo/static/css/_fx-grid.scss
gadjo/static/css/_fx-grid.scss
1
// ======
2
//	fx-grid.css
3
//	flexbox grid system
4
// =====
5

  
6
// Publik vars
7
$fx-grid-gutter: 1rem;
8
$fx-grid-cell-min-size: 10em; // for .fx-grid--auto
9
$fx-grid-mobile-limit: $very-small-limit;
10
$fx-grid-tablet-limit: $grid-mobile-limit;
11
$max-cols-mobile : 3;
12
$max-cols-tablet : 6;
13
$max-cols-desktop : 9;
14

  
15
// Private vars
16
$fx-grid-half-gutter: $fx-grid-gutter / 2;
17

  
18
//	custom media queries
19
//		ex. @media ($max-grid-mobile-viewport) {}
20
$max-grid-mobile-viewport: "max-width: #{$fx-grid-mobile-limit}";
21
$min-grid-tablet-viewport: "min-width: #{$fx-grid-mobile-limit + 1}";
22
$min-grid-desktop-viewport: "min-width: #{$fx-grid-tablet-limit + 1}";
23

  
24

  
25
.fx-grid,
26
[class*="fx-grid--"] {
27
	display: flex;
28
	flex-wrap: wrap;
29
	margin: 0;
30
	padding: 0;
31
	margin-left: -1 * $fx-grid-half-gutter;
32
	margin-right: -1 * $fx-grid-half-gutter;
33
	/* if flex item are list */
34
	list-style-type: none;
35

  
36
	> * {
37
		box-sizing: border-box; // for gadjo
38
		margin-left: $fx-grid-half-gutter;
39
		margin-right: $fx-grid-half-gutter;
40
		flex-basis: calc(100% - #{$fx-grid-gutter});
41
		hyphens: auto;
42
	}
43
}
44

  
45
// mode auto
46
.fx-grid--auto {
47
	> * {
48
		flex-basis: $fx-grid-cell-min-size;
49
		flex-shrink: 1;
50
		flex-grow: 1;
51
	}
52
}
53

  
54
// mode cols
55
@for $i from 2 through $max-cols-mobile {
56
	.fx-grid--#{$i} > *,
57
	[class*="fx-grid--"][class*="--m#{$i}"] > * {
58
		flex-basis: calc(#{100%/$i} - #{$fx-grid-gutter});
59
	}
60
}
61
@media ($min-grid-tablet-viewport) {
62
		@for $i from 2 through $max-cols-tablet {
63
		[class*="fx-grid--"][class*="--t#{$i}"] > * {
64
			flex-basis: calc(#{100%/$i} - #{$fx-grid-gutter});
65
		}
66
	}
67
}
68
@media ($min-grid-desktop-viewport) {
69
		@for $i from 2 through $max-cols-desktop {
70
		[class*="fx-grid--"][class*="--d#{$i}"] > * {
71
			flex-basis: calc(#{100%/$i} - #{$fx-grid-gutter});
72
		}
73
	}
74
}
75

  
76
// custom grid cell size
77
.fx-grid,
78
[class*="fx-grid--"] {
79
	@for $i from 1 through $max-cols-mobile {
80
		@for $j from 1 through $i {
81
			> .size--#{$j}-#{$i},
82
			> [class*="size--"][class*="--m#{$j}-#{$i}"] {
83
				flex-basis: calc( #{100%*$j/$i} - #{$fx-grid-gutter});
84
				flex-grow: 0;
85
			}
86
		}
87
	}
88
	@media ($min-grid-tablet-viewport) {
89
		@for $i from 1 through $max-cols-tablet {
90
			@for $j from 1 through $i {
91
				> [class*="size--"][class*="--t#{$j}-#{$i}"] {
92
					flex-basis: calc( #{100%*$j/$i} - #{$fx-grid-gutter});
93
					flex-grow: 0;
94
				}
95
			}
96
		}
97
	}
98
	@media ($min-grid-desktop-viewport) {
99
		@for $i from 1 through $max-cols-desktop {
100
			@for $j from 1 through $i {
101
				> [class*="size--"][class*="--d#{$j}-#{$i}"] {
102
					flex-basis: calc( #{100%*$j/$i} - #{$fx-grid-gutter});
103
					flex-grow: 0;
104
				}
105
			}
106
		}
107
	}
108
}
gadjo/static/css/gadjo.scss
1321 1321
}
1322 1322

  
1323 1323
@import 'grid';
1324
@import 'fx-grid';
1324 1325
@import 'jqueryui';
1325 1326
@import 'forms';
1326 1327
@import 'portal';
1327
-