diff options
Diffstat (limited to 'src/components/ProjectsList')
| -rw-r--r-- | src/components/ProjectsList/ProjectsList.module.scss | 25 | ||||
| -rw-r--r-- | src/components/ProjectsList/ProjectsList.tsx | 21 |
2 files changed, 46 insertions, 0 deletions
diff --git a/src/components/ProjectsList/ProjectsList.module.scss b/src/components/ProjectsList/ProjectsList.module.scss new file mode 100644 index 0000000..6a77aa9 --- /dev/null +++ b/src/components/ProjectsList/ProjectsList.module.scss @@ -0,0 +1,25 @@ +@use "@styles/abstracts/functions" as fun; +@use "@styles/abstracts/placeholders"; + +.list { + --items: 4; + --items-size: 35ch; + + @extend %reset-list; + + display: grid; + grid-template-columns: repeat( + auto-fit, + min(calc(100vw - (var(--spacing-md) * 2)), var(--items-size)) + ); + gap: var(--spacing-sm); + place-content: center; + width: min( + calc(100vw - (var(--spacing-md) * 2)), + calc( + (var(--items-size) * var(--items)) + + (var(--spacing-sm) * (var(--items) - 1)) + ) + ); + margin: var(--spacing-sm) auto 0; +} diff --git a/src/components/ProjectsList/ProjectsList.tsx b/src/components/ProjectsList/ProjectsList.tsx new file mode 100644 index 0000000..609d824 --- /dev/null +++ b/src/components/ProjectsList/ProjectsList.tsx @@ -0,0 +1,21 @@ +import ProjectPreview from '@components/ProjectPreview/ProjectPreview'; +import { Project } from '@ts/types/app'; +import styles from './ProjectsList.module.scss'; + +const ProjectsList = ({ projects }: { projects: Project[] }) => { + const getProjectItems = () => { + return projects.map((project) => { + return project.meta.title ? ( + <li className={styles.item} key={project.id}> + <ProjectPreview project={project} /> + </li> + ) : ( + '' + ); + }); + }; + + return <ul className={styles.list}>{getProjectItems()}</ul>; +}; + +export default ProjectsList; |
