PrimeFlex is available at npm, if you have an existing application run the following command to download it to your project.

    Then add the primeflex.css to your application, example below uses styles configuration of an Angular CLI project.

    1. "styles": [
    2. "node_modules/primeflex/primeflex.css"
    3. ],
    4.  

    A basic grid is defined by giving a container "p-grid" class and children the ".p-col" class. Children of the grid will have the same width and scale according to the width of the parent.

    1. <div class="p-grid">
    2. <div class="p-col">1</div>
    3. <div class="p-col">2</div>
    4. <div class="p-col">3</div>
    5. </div>
    6.  

    1

    2

    3

    Direction

    Default direction is "row" and p-dir-* class at the container defines the other possible directions which can be row reverse, column and column reverse.

    1. <!-- Row Reverse -->
    2. <div class="p-grid p-dir-rev">
    3. <div class="p-col">1</div>
    4. <div class="p-col">2</div>
    5. <div class="p-col">3</div>
    6. </div>
    7. <!-- Column -->
    8. <div class="p-grid p-dir-col">
    9. <div class="p-col">1</div>
    10. <div class="p-col">2</div>
    11. <div class="p-col">3</div>
    12. </div>
    13. <!-- Column Reverse -->
    14. <div class="p-grid p-dir-col-rev">
    15. <div class="p-col">1</div>
    16. <div class="p-col">2</div>
    17. <div class="p-col">3</div>
    18. </div>
    19.  

    1

    2

    3

    1

    2

    3

    1

    2

    3

    12 Column Grid

    FlexGrid includes a 12 column based layout utility where width of a column is defined with the p-col-{number} style class. Columns with prefined widths can be used with columns with auto width (p-col) as well.

    In the first example below, first column covers the 4 units out of 12 and the rest of the columns share the remaining space whereas in the second example, all three columns have explicit units.

    1. <div class="p-grid">
    2. <div class="p-col-4">4</div>
    3. <div class="p-col">1 </div>
    4. <div class="p-col">1 </div>
    5. <div class="p-col">1 </div>
    6. <div class="p-col">1 </div>
    7. <div class="p-col">1 </div>
    8. <div class="p-col">1 </div>
    9. <div class="p-col">1 </div>
    10. <div class="p-col">1 </div>
    11. </div>
    12. <div class="p-grid">
    13. <div class="p-col-2">2</div>
    14. <div class="p-col-6">6</div>
    15. <div class="p-col-4">4</div>
    16. </div>
    17.  

    4

    1

    1

    1

    1

    1

    1

    1

    2

    6

    4

    Multi Line

    When the number of columns exceed 12, columns wrap to a new line.

    6

    6

    6

    6

    A column can have a fixed width while siblings having auto width. Apply "p-col-fixed" class to fix a column width.

    1. <div class="p-grid">
    2. <div class="p-col-fixed" style="width:100px">Fixed</div>
    3. <div class="p-col">Auto</div>
    4. </div>
    5.  

    100px

    auto

    Responsive

    Responsive layout is achieved by applying breakpoint specific classes to the columns whereas p-col-* define the default behavior for mobile devices with small screens. Four screen sizes are supported with different breakpoints.

    In example below, large screens display 4 columns, medium screens display 2 columns in 2 rows and finally on small devices, columns are stacked.

    1. <div class="p-grid">
    2. <div class="p-col-12 p-md-6 p-lg-3">A</div>
    3. <div class="p-col-12 p-md-6 p-lg-3">B</div>
    4. <div class="p-col-12 p-md-6 p-lg-3">C</div>
    5. <div class="p-col-12 p-md-6 p-lg-3">D</div>
    6. </div>
    7.  

    p-col-12 p-md-6 p-lg-3

    p-col-12 p-md-6 p-lg-3

    p-col-12 p-md-6 p-lg-3

    p-col-12 p-md-6 p-lg-3

    Horizontal Alignment

    1. <div class="p-grid p-justify-between">
    2. <div class="p-col-2">2</div>
    3. <div class="p-col-1">1</div>
    4. <div class="p-col-4">4</div>
    5. </div>
    6.  

    2

    1

    4

    Vertical Alignment

    p-align-* classes are used on the container element to define the alignment along the cross axis.

    1. <div class="p-grid p-align-center">
    2. <div class="p-col">4</div>
    3. <div class="p-col">4</div>
    4. <div class="p-col">4</div>
    5. </div>
    6.  

    4

    4

    4

    Vertical alignment can also be defined at column level with the p-col-align-* classes.

    4

    4

    4

    Offset classes allow defining a left margin on a column to avoid adding empty columns for spacing.

    1. <div class="p-grid">
    2. <div class="p-col-6 p-offset-3">6</div>
    3. </div>
    4. <div class="p-grid">
    5. <div class="p-col-4">4 </div>
    6. <div class="p-col-4 p-offset-4">4</div>
    7. </div>
    8.  

    6

    4

    4

    The list of offset classes varying within a range of 1 to 12.

    Nested

    Columns can be nested to create more complex layouts.

    1. <div class="p-grid">
    2. <div class="p-col-8">
    3. <div class="p-grid">
    4. <div class="p-col-6">
    5. 6
    6. </div>
    7. <div class="p-col-6">
    8. 6
    9. </div>
    10. <div class="p-col-12">
    11. 12
    12. </div>
    13. </div>
    14. </div>
    15. <div class="p-col-4">
    16. 4
    17. </div>
    18. </div>
    19.  

    6

    6

    12

    4

    Gutter

    A .5 em padding is applied to each column along with negative margins on the container element, in case you'd like to remove these gutters, apply .p-nogutter class to the container. Gutters can also be removed on an ndividual columns with the same class name.

    1. <div class="p-grid p-nogutter">
    2. <div class="p-col">1</div>
    3. <div class="p-col p-nogutter">2</div>
    4. <div class="p-col">3</div>
    5. </div>
    6.  

    Customization

    Source” class=”ng-tns-c2-1

    View on GitHub

    1. <h3 class="first">Basic</h3>
    2. <div class="p-grid">
    3. <div class="p-col">
    4. <div class="box">1</div>
    5. </div>
    6. <div class="p-col">
    7. <div class="box">2</div>
    8. </div>
    9. <div class="p-col">
    10. <div class="box">3</div>
    11. </div>
    12. </div>
    13. <h3>Dynamic</h3>
    14. <button pButton type="button" icon="pi pi-plus" title="Add Column" (click)="addColumn()" [disabled]="columns.length === 20" style="margin-right: .5em"></button>
    15. <button pButton type="button" icon="pi pi-minus" title="Remove Column" (click)="removeColumn()"[disabled]="columns.length === 1"></button>
    16. <div class="p-grid" style="margin-top: .5em">
    17. <div class="p-col" *ngFor="let col of columns; let i=index" [@animation]="'visible'">
    18. <div class="box">{{i + 1}}</div>
    19. </div>
    20. </div>
    21. <h3>Reverse Direction</h3>
    22. <div class="p-grid p-dir-rev">
    23. <div class="p-col">
    24. <div class="box">1</div>
    25. </div>
    26. <div class="p-col">
    27. <div class="box">2</div>
    28. </div>
    29. <div class="p-col">
    30. <div class="box">3</div>
    31. </div>
    32. </div>
    33. <h3>Column Direction</h3>
    34. <div class="p-grid p-dir-col">
    35. <div class="p-col">
    36. <div class="box">1</div>
    37. </div>
    38. <div class="p-col">
    39. <div class="box">2</div>
    40. </div>
    41. <div class="p-col">
    42. <div class="box">3</div>
    43. </div>
    44. <h3>Reverse Column Direction</h3>
    45. <div class="p-grid p-dir-col-rev">
    46. <div class="p-col">
    47. <div class="box">1</div>
    48. </div>
    49. <div class="p-col">
    50. <div class="box">2</div>
    51. </div>
    52. <div class="p-col">
    53. <div class="box">3</div>
    54. </div>
    55. </div>
    56. <h3>12 Column Grid</h3>
    57. <div class="p-col-4">
    58. <div class="box">4</div>
    59. </div>
    60. <div class="p-col">
    61. <div class="box">1</div>
    62. </div>
    63. <div class="p-col">
    64. <div class="box">1</div>
    65. </div>
    66. <div class="p-col">
    67. <div class="box">1</div>
    68. </div>
    69. <div class="p-col">
    70. <div class="box">1</div>
    71. </div>
    72. <div class="p-col">
    73. <div class="box">1</div>
    74. </div>
    75. <div class="p-col">
    76. <div class="box">1</div>
    77. </div>
    78. <div class="p-col">
    79. <div class="box">1</div>
    80. </div>
    81. <div class="p-col">
    82. <div class="box">1</div>
    83. </div>
    84. </div>
    85. <div class="p-grid">
    86. <div class="p-col-2">
    87. <div class="box">2</div>
    88. </div>
    89. <div class="p-col-6">
    90. <div class="box">6</div>
    91. </div>
    92. <div class="p-col-4">
    93. <div class="box">4</div>
    94. </div>
    95. </div>
    96. <div class="p-grid">
    97. <div class="p-col-8">
    98. <div class="box">8</div>
    99. </div>
    100. <div class="p-col-2">
    101. <div class="box">2</div>
    102. </div>
    103. <div class="p-col-2">
    104. <div class="box">2</div>
    105. </div>
    106. </div>
    107. <h3>MultiLine</h3>
    108. <div class="p-grid">
    109. <div class="p-col-6">
    110. <div class="box">6</div>
    111. </div>
    112. <div class="p-col-6">
    113. <div class="box">6</div>
    114. </div>
    115. <div class="p-col-6">
    116. <div class="box">6</div>
    117. </div>
    118. <div class="p-col-6">
    119. <div class="box">6</div>
    120. </div>
    121. </div>
    122. <h3>Fixed Width Column</h3>
    123. <div class="p-grid">
    124. <div class="p-col-fixed" style="width:100px">
    125. <div class="box">100px</div>
    126. </div>
    127. <div class="p-col">
    128. <div class="box">auto</div>
    129. </div>
    130. </div>
    131. <h3>Responsive</h3>
    132. <div class="p-grid">
    133. <div class="p-col-12 p-md-6 p-lg-3">
    134. <div class="box">p-col-12 p-md-6 p-lg-3</div>
    135. </div>
    136. <div class="p-col-12 p-md-6 p-lg-3">
    137. <div class="box">p-col-12 p-md-6 p-lg-3</div>
    138. </div>
    139. <div class="p-col-12 p-md-6 p-lg-3">
    140. <div class="box">p-col-12 p-md-6 p-lg-3</div>
    141. </div>
    142. <div class="p-col-12 p-md-6 p-lg-3">
    143. <div class="box">p-col-12 p-md-6 p-lg-3</div>
    144. </div>
    145. </div>
    146. <h3>Horizontal Alignment - Start</h3>
    147. <div class="p-grid p-justify-start">
    148. <div class="p-col-2">
    149. <div class="box">2</div>
    150. </div>
    151. <div class="p-col-1">
    152. <div class="box">1</div>
    153. </div>
    154. <div class="p-col-4">
    155. <div class="box">4</div>
    156. </div>
    157. </div>
    158. <h3>Horizontal Alignment - End</h3>
    159. <div class="p-grid p-justify-end">
    160. <div class="p-col-2">
    161. <div class="box">2</div>
    162. </div>
    163. <div class="p-col-1">
    164. <div class="box">1</div>
    165. </div>
    166. <div class="p-col-4">
    167. <div class="box">4</div>
    168. </div>
    169. </div>
    170. <h3>Horizontal Alignment - Center</h3>
    171. <div class="p-grid p-justify-center">
    172. <div class="p-col-2">
    173. <div class="box">2</div>
    174. </div>
    175. <div class="p-col-1">
    176. <div class="box">1</div>
    177. </div>
    178. <div class="p-col-4">
    179. <div class="box">4</div>
    180. </div>
    181. </div>
    182. <h3>Horizontal Alignment - Between</h3>
    183. <div class="p-grid p-justify-between">
    184. <div class="p-col-2">
    185. <div class="box">2</div>
    186. </div>
    187. <div class="p-col-1">
    188. <div class="box">1</div>
    189. </div>
    190. <div class="p-col-4">
    191. <div class="box">4</div>
    192. </div>
    193. </div>
    194. <h3>Horizontal Alignment - Around</h3>
    195. <div class="p-grid p-justify-around">
    196. <div class="p-col-2">
    197. <div class="box">2</div>
    198. </div>
    199. <div class="p-col-1">
    200. <div class="box">1</div>
    201. </div>
    202. <div class="p-col-4">
    203. <div class="box">4</div>
    204. </div>
    205. </div>
    206. <h3>Horizontal Alignment - Even</h3>
    207. <div class="p-grid p-justify-even">
    208. <div class="p-col-2">
    209. </div>
    210. <div class="p-col-1">
    211. <div class="box">1</div>
    212. </div>
    213. <div class="p-col-4">
    214. <div class="box">4</div>
    215. </div>
    216. <h3>Vertical Alignment - Start</h3>
    217. <div class="p-grid p-align-start vertical-container">
    218. <div class="p-col">
    219. <div class="box">4</div>
    220. </div>
    221. <div class="p-col">
    222. <div class="box">4</div>
    223. </div>
    224. <div class="p-col">
    225. <div class="box">4</div>
    226. </div>
    227. </div>
    228. <h3>Vertical Alignment - End</h3>
    229. <div class="p-grid p-align-end vertical-container">
    230. <div class="p-col">
    231. <div class="box">4</div>
    232. </div>
    233. <div class="p-col">
    234. <div class="box">4</div>
    235. </div>
    236. <div class="p-col">
    237. <div class="box">4</div>
    238. </div>
    239. </div>
    240. <h3>Vertical Alignment - Center</h3>
    241. <div class="p-grid p-align-center vertical-container">
    242. <div class="p-col">
    243. <div class="box">4</div>
    244. </div>
    245. <div class="p-col">
    246. <div class="box">4</div>
    247. </div>
    248. <div class="p-col">
    249. <div class="box">4</div>
    250. </div>
    251. </div>
    252. <h3>Vertical Alignment - Stretch</h3>
    253. <div class="p-grid p-align-stretch vertical-container">
    254. <div class="p-col">
    255. <div class="box box box-stretched">4</div>
    256. </div>
    257. <div class="p-col">
    258. <div class="box box box-stretched">4</div>
    259. </div>
    260. <div class="p-col">
    261. <div class="box box box-stretched">4</div>
    262. </div>
    263. </div>
    264. <h3>Vertical Alignment - Per Column</h3>
    265. <div class="p-grid vertical-container">
    266. <div class="p-col p-col-align-start">
    267. <div class="box">4</div>
    268. </div>
    269. <div class="p-col p-col-align-center">
    270. <div class="box">4</div>
    271. </div>
    272. <div class="p-col p-col-align-end">
    273. <div class="box">4</div>
    274. </div>
    275. </div>
    276. <h3>Offset</h3>
    277. <div class="p-grid">
    278. <div class="p-col-6 p-offset-3">
    279. <div class="box">6</div>
    280. </div>
    281. </div>
    282. <div class="p-grid">
    283. <div class="p-col-4">
    284. <div class="box">4</div>
    285. </div>
    286. <div class="p-col-4 p-offset-4">
    287. <div class="box">4</div>
    288. </div>
    289. </div>
    290. <h3>Nested</h3>
    291. <div class="p-grid nested-grid">
    292. <div class="p-col-8">
    293. <div class="p-grid">
    294. <div class="p-col-6">
    295. <div class="box">6</div>
    296. </div>
    297. <div class="p-col-6">
    298. <div class="box">6</div>
    299. </div>
    300. <div class="p-col-12">
    301. <div class="box">12</div>
    302. </div>
    303. </div>
    304. </div>
    305. <div class="p-col-4">
    306. <div class="box box-stretched">4</div>
    307. </div>
    308. </div>
    309. <h3>Panel Integration</h3>
    310. <div class="p-grid">
    311. <div class="p-col">
    312. <p-panel header="Godfather">
    313. The story begins as Don Vito Corleone, the head of a New York Mafia family, oversees his daughter's wedding.
    314. His beloved son Michael has just come home from the war, but does not intend to become part of his father's business.
    315. Through Michael's life the nature of the family business becomes clear. The business of the family is just like the head of the family,
    316. kind and benevolent to those who give respect, but given to ruthless violence whenever anything stands against the good of the family.
    317. </p-panel>
    318. </div>
    319. <div class="p-col">
    320. <p-panel header="Godfather">
    321. The story begins as Don Vito Corleone, the head of a New York Mafia family, oversees his daughter's wedding.
    322. His beloved son Michael has just come home from the war, but does not intend to become part of his father's business.
    323. Through Michael's life the nature of the family business becomes clear. The business of the family is just like the head of the family,
    324. kind and benevolent to those who give respect, but given to ruthless violence whenever anything stands against the good of the family.
    325. </p-panel>
    326. </div>
    327. <div class="p-col">
    328. <p-panel header="Godfather">
    329. The story begins as Don Vito Corleone, the head of a New York Mafia family, oversees his daughter's wedding.
    330. His beloved son Michael has just come home from the war, but does not intend to become part of his father's business.
    331. Through Michael's life the nature of the family business becomes clear. The business of the family is just like the head of the family,
    332. kind and benevolent to those who give respect, but given to ruthless violence whenever anything stands against the good of the family.
    333. </p-panel>
    334. </div>
    335. </div>
    336. <h3>Sample Layout</h3>
    337. <div class="p-grid sample-layout">
    338. <div class="p-col-12 p-md-2">
    339. Menu
    340. </div>
    341. <div class="p-col-12 p-md-10 p-col-nogutter">
    342. <div class="p-col-12 p-col-nogutter">
    343. Top Bar
    344. </div>
    345. <div class="p-col-12">
    346. <div class="p-grid">
    347. <div class="p-col-12 p-md-4">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed imperdiet, orci nec
    348. dictum convallis, ligula mauris vestibulum turpis, nec varius tortor quam at diam. Nullam a viverra nibh.
    349. In tincidunt tempor lectus quis vulputate. Pellentesque nec dui aliquam, lobortis est in, lobortis ante</div>
    350. <div class="p-col-12 p-md-4">Maecenas vel nisi aliquet, vulputate tortor id, laoreet massa. Maecenas mattis
    351. tristique bibendum. Suspendisse vel mi dictum, vestibulum lacus quis, pulvinar quam. Proin vulputate, nibh
    352. at finibus varius, leo eros lacinia elit, nec blandit odio tellus a justo. Donec nec ex auctor, tristique
    353. nulla nec, rutrum sapien.</div>
    354. <div class="p-col-12 p-md-4">Proin efficitur in leo eget ornare. Nam vestibulum neque sed velit sagittis
    355. sodales. Sed scelerisque hendrerit magna a hendrerit. Cras tempor sem at justo pharetra convallis.
    356. Curabitur vel sodales purus. Vestibulum interdum facilisis nulla imperdiet suscipit. Quisque lectus felis,
    357. condimentum eget hendrerit sit amet.</div>
    358. <div class="p-col-6 p-md-3"><img src="assets/showcase/images/demo/galleria/galleria1.jpg" style="width:100%"></div>
    359. <div class="p-col-6 p-md-3"><img src="assets/showcase/images/demo/galleria/galleria2.jpg" style="width:100%"></div>
    360. <div class="p-col-6 p-md-3"><img src="assets/showcase/images/demo/galleria/galleria3.jpg" style="width:100%"></div>
    361. <div class="p-col-6 p-md-3"><img src="assets/showcase/images/demo/galleria/galleria4.jpg" style="width:100%"></div>
    362. <div class="p-col-12 p-md-6">Phasellus faucibus purus volutpat mauris lacinia sodales. Ut sit amet sapien
    363. facilisis, commodo dui non, fringilla tellus. Quisque tempus facilisis nisi sodales finibus. Pellentesque
    364. neque orci, ullamcorper vitae ligula quis, dignissim euismod augue.</div>
    365. <div class="p-col-12 p-md-6">Fusce ullamcorper congue massa, eget ullamcorper nunc lobortis egestas. Lorem
    366. ipsum dolor sit amet, consectetur adipiscing elit. Quisque ultrices dui eget dolor feugiat dapibus. Aliquam
    367. pretium leo et egestas luctus. Nunc facilisis gravida tellus.</div>
    368. </div>
    369. </div>
    370. </div>
    371. <div class="p-col-12">
    372. Footer
    373. </div>