diff --git a/pages/collective.tsx b/pages/collective.tsx index ffd11d50..4b93652d 100644 --- a/pages/collective.tsx +++ b/pages/collective.tsx @@ -48,7 +48,7 @@ const Page: NextPage = props => { )} diff --git a/src/components/CollectiveImage.jsx b/src/components/CollectiveImage.jsx index 47fcf719..c6668b58 100644 --- a/src/components/CollectiveImage.jsx +++ b/src/components/CollectiveImage.jsx @@ -15,7 +15,7 @@ export const CollectiveImage = (props) => ( }} imgStyle={{ width: '100%', - borderRadius: '10px', + borderRadius: 'var(--radius)', }} /> diff --git a/src/components/PersonCard/index.tsx b/src/components/PersonCard/index.tsx index 8c4518f6..2b6aa494 100644 --- a/src/components/PersonCard/index.tsx +++ b/src/components/PersonCard/index.tsx @@ -1,95 +1,12 @@ +import './styles.css' + import cx from 'classnames' import { Image } from '../Image' export const PersonCard = ({ picture, name, url, profile }) => ( -
- - - -
+
+ +
( src={picture.src} srcSet={picture.set.map(({ url, density }) => `${url} ${density}x`)} /> - +
-
+
{name[0]} {name[1]} {name[2]}
-
+
{profile.position}
diff --git a/src/components/PersonCard/styles.css b/src/components/PersonCard/styles.css new file mode 100644 index 00000000..0795706b --- /dev/null +++ b/src/components/PersonCard/styles.css @@ -0,0 +1,81 @@ +.personCard { + --person-card-width: 30%; + --person-card-height: 24em; + + display: flex; + flex-direction: column; + + min-width: 10em; + max-width: 30em; +} + +.personCard > a { + display: block; + position: relative; +} + +.personCard-Picture { + position: relative; + border-radius: var(--radius); + + width: 100%; + height: var(--person-card-height); + + overflow: hidden; +} + +.personCard-Picture img { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + + object-fit: cover; + transition: all 150ms ease-out; +} + +.personCard-Title, +.personCard-Body { + position: absolute; + width: 100%; + padding: var(--single-margin); + box-sizing: border-box; + color: white; + text-align: center; + text-shadow: 0 0 3px #000; +} + +.personCard-Title { + top: 0; +} + +.personCard-Body { + bottom: 0; +} + +.personCard:hover img { + width: 105%; + height: 105%; + top: -2.5%; + left: -2.5%; +} + +/* Tablet */ + +@media screen and (min-width: var(--tablet-min-width)) and (max-width: var(--tablet-max-width)) { + .personCard { + --person-card-height: 20em; + } + + @media screen and (orientation: portrait) { + } +} + +/* Mobile */ + +@media (max-width: 31.25em) { + .personCard { + --person-card-width: 100%; + } +}