Skip to content

Commit

Permalink
Merge pull request #17 from viivue/flex-grid
Browse files Browse the repository at this point in the history
Add flex-grid-template and image-object-fit for Atomic CSS
  • Loading branch information
phucbm authored Nov 16, 2022
2 parents b30a500 + 57892a4 commit 4bea327
Show file tree
Hide file tree
Showing 4 changed files with 117 additions and 2 deletions.
55 changes: 55 additions & 0 deletions css/extra.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
/**
* Flex grid
*/
.flex-grid-template {
--grid-gap-x:30px;
--grid-gap-y:30px;
--grid-col:3;
/* calculate new width */
--grid-gap-x-total:calc(var(--grid-gap-x) * (var(--grid-col) - 1));
--grid-space-each:calc(var(--grid-gap-x-total) / var(--grid-col));
display:flex;
flex-wrap:wrap;
gap:var(--grid-gap-y) var(--grid-gap-x);
}

.flex-grid-template > * {
width:calc(100% / var(--grid-col) - var(--grid-space-each));
}

@media only screen and (max-width:768px) {
.flex-grid-template {
--grid-col:2;
}
}
@media only screen and (max-width:480px) {
.flex-grid-template {
--grid-col:1;
}
}
/**
* Background object fit
*/
.img-wrapper-cover > img {
object-position:center center;
height:100%;
width:100%;
min-height:100%;
min-width:100%;
max-height:100%;
max-width:100%;
display:block;
object-fit:cover;
}

.img-wrapper-contain > img {
object-position:center center;
height:100%;
width:100%;
min-height:100%;
min-width:100%;
max-height:100%;
max-width:100%;
display:block;
object-fit:contain;
}
3 changes: 2 additions & 1 deletion scss/_config.scss
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
//$breakpoints: (
// "lg": 1280px,
// "md": 1024px,
// "sm": 480px,
// "sm": 768px,
// "xs": 480px,
//);

// vertical spacing
Expand Down
3 changes: 2 additions & 1 deletion scss/_defs.scss
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ $variables: ();
$breakpoints: (
"lg": 1180px,
"md": 1024px,
"sm": 480px,
"sm": 768px,
"xs": 480px,
);

// font sizes
Expand Down
58 changes: 58 additions & 0 deletions scss/extra.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
@import 'helpers';

/**
* Flex grid
*/
.flex-grid-template {
--grid-gap-x: 30px;
--grid-gap-y: 30px;
--grid-col: 3;

/* calculate new width */
--grid-gap-x-total: calc(var(--grid-gap-x) * (var(--grid-col) - 1));
--grid-space-each: calc(var(--grid-gap-x-total) / var(--grid-col));

display: flex;
flex-wrap: wrap;
gap: var(--grid-gap-y) var(--grid-gap-x);
}

.flex-grid-template > * {
width: calc(100% / var(--grid-col) - var(--grid-space-each));
}

@media only screen and (max-width: map-get($breakpoints, "sm")) {
.flex-grid-template {
--grid-col: 2;
}
}

@media only screen and (max-width: map-get($breakpoints, "xs")) {
.flex-grid-template {
--grid-col: 1;
}
}

/**
* Background object fit
*/
@mixin img-object-fit {
object-position: center center;
height: 100%;
width: 100%;
min-height: 100%;
min-width: 100%;
max-height: 100%;
max-width: 100%;
display: block;
}

.img-wrapper-cover > img {
@include img-object-fit;
object-fit: cover;
}

.img-wrapper-contain > img {
@include img-object-fit;
object-fit: contain;
}

0 comments on commit 4bea327

Please sign in to comment.