@ font-face {
font-family : "Futura" ;
src : url ( "../../FuturaLT-Heavy.ttf" ) format ( "truetype" ) ;
}
@ media ( prefers-color-scheme : light ) {
. info-text {
color : # 060606 ;
}
. table-data {
color : # 060606 ;
}
th {
border-bottom : 1px solid # ffa7c7 ;
}
. name-and-coat {
-webkit-text-stroke : 1px # ffa7c7 ;
}
body {
background-color : # fff3f9 ;
}
. table-description {
color : # ffa7c7 ;
}
. profiles {
--img-shadow : drop-shadow ( 5px 5px 2px rgba ( 6 6 6 / 0 . 5 ) ) ;
}
}
@ media ( prefers-color-scheme : dark ) {
. info-text {
color : # 00d791 ;
}
. table-data {
color : # 00d791 ;
}
th {
border-bottom : 1px solid # 55052c ;
}
. name-and-coat {
-webkit-text-stroke : 1px # 55052c ;
}
body {
background-color : # 060606 ;
}
. table-description {
color : # 55052c ;
}
. profiles {
--img-shadow : drop-shadow ( 5px 5px 2px rgba ( 255 243 249 / 0 . 25 ) ) ;
}
}
. flag {
display : block ;
position : relative ;
top : 0 ;
left : 0 ;
overflow : hidden ;
height : 95 % ;
width : 95 % ;
object-fit : cover ;
}
. name-and-coat {
position : relative ;
text-align : center ;
margin : auto ;
background-image : url ( "https://upload.wikimedia.org/wikipedia/commons/d/da/Coat_of_arms_of_Germany.svg" ) ;
background-repeat : no-repeat ;
background-size : auto 100 % ;
background-position : center ;
min-height : 66 % ;
}
. map {
width : 100 % ;
height : auto ;
object-fit : contain ;
filter : brightness ( 0 ) ;
}
. parent {
display : grid ;
grid-template-columns : repeat ( 2 , 1fr ) ;
grid-template-rows : repeat ( 2 , 1fr ) ;
grid-column-gap : 0px ;
grid-row-gap : 0px ;
}
. div1 { grid-area : 1 / 1 / 2 / 2 ; }
. div2 { grid-area : 2 / 1 / 3 / 2 ; }
. profiles {
--size : 200px ;
--img-clip : "M 0 -50 L 200 -50 L 200 150 C 100 150 0 250 0 150 Z" ; /* unfortunatly it isn't possible (as far as I know) to use custom properties in clip paths */
--bg-blur : 0 ; /* background image default blur */
--bg-blur-hover : 5px ; /* background image blur on hover */
font-family : 'Futura' , sans-serif ;
display : flex ;
gap : 10vw ;
margin : 2vw auto ;
margin-bottom : 5vw ;
width : auto ;
align-content : center ;
justify-content : center ;
}
@ media ( max-width : 1100px ) {
. profiles {
flex-direction : column ;
margin : auto auto ;
width : auto ;
}
}
. avatar {
position : relative ;
width : var ( --size ) ;
height : var ( --size ) ; /* for older browsers */
aspect-ratio : 1 ;
}
. avatar-img {
clip-path : path ( var ( --img-clip ) ) ;
}
. avatar-img :: before {
content : '' ;
position : absolute ;
display : blocl ;
inset : 50 % 0 0 0 ;
z-index : -1 ;
border-radius : 20px ;
background-color : var ( --bg-clr ) ; /* fallback if image not defined as custom property */
background-image : var ( --bg-img ) ;
background-size : cover ;
background-position : center ;
filter : blur ( var ( --bg-blur ) ) ;
transition : filter 300ms ease-in-out ;
}
. avatar-img > img {
width : 100 % ;
height : 100 % ;
object-fit : cover ;
transition : scale 300ms , filter 300ms ;
transform-origin : bottom ;
scale : var ( --img-scale , . 9 ) ;
filter : var ( --img-shadow ) ;
}
. avatar > p {
text-align : right ;
font-size : 1rem ;
color : # 060606 ;
bottom : . 5rem ;
right : 0 ;
translate : 0 var ( --name-y , -50px ) ;
opacity : var ( --name-opacity , 0 ) ;
z-index : -1 ;
transition-name : translate , opacity ;
transition-delay : 150ms ;
transition-duration : 300ms ;
transition-timing-function : cubic-bezier ( 0 . 47 , 1 . 64 , 0 . 41 , 0 . 8 ) , ease-in-out ;
}
/* all hover effects as custom properties */
. avatar : hover {
--img-scale : 1 . 2 ;
--img-shadow : drop-shadow ( 10px 15px 4px rgba ( 0 0 0 / 0 . 5 ) ) ;
--name-y : 0 ;
--name-opacity : 1 ;
--bg-blur : var ( --bg-blur-hover ) ;
}
body {
font-family : Futura ;
display : grid ;
grid-template-areas :
"name name name"
"middle middle info"
"heads heads info"
"parliament parliament info"
;
grid-template-rows : 22 % 1fr 1fr 1fr ;
grid-template-columns : 15 % 1fr calc ( 20vw + 20px ) ;
grid-gap : 0px ;
height : 100vh ;
margin : 0px ;
}
right {
background-color : # 000000 ;
margin : auto auto ;
}
coat {
grid-area : coat ;
}
. name {
grid-area : name ;
text-align : center ;
font-family : Futura ;
text-transform : uppercase ;
margin-top : auto ;
margin-bottom : auto ;
font-size : calc ( 3vw + 20px ) ;
background : url ( https : / / upload . wikimedia . org / wikipedia / en / b / ba / Flag_of_Germany . svg ) ;
background-size : auto 100 % ;
background-repeat : repeat ;
box-decoration-break : clone ;
-webkit-background-clip : text ;
-webkit-text-fill-color : transparent ;
}
info {
grid-area : info ;
margin-left : 2 . 5 % ;
margin-right : 2 . 5 % ;
}
header {
background : # 707070 ;
grid-area : header ;
}
nav {
background : # C9BFBF ;
grid-area : nav ;
}
middle {
grid-area : middle ;
}
aside {
background : # C9C9C9 ;
grid-area : aside ;
}
heads {
grid-area : heads ;
}
parliament {
grid-area : parliament ;
}
header , nav , section , aside , footer {
padding : 5px ;
}
footer {
font-size : medium ;
font-weight : bold ;
}
. logo {
height : 20px ;
}
th {
text-align : center ;
padding-top : 0px ;
padding-bottom : 0px ;
}
table {
width : 90 % ;
}
. table-data {
font-size : 25px ;
font-family : Futura ;
text-decoration : none ;
}
. table-description {
background-color : transparent ;
text-decoration : none ;
font-size : 15px ;
}
. info-text {
font-family : Futura ;
text-align : center ;
padding-left : 5 % ;
padding-right : 5 % ;
font-size : 20px ;
}
parliament {
align-items : center ;
justify-content : center ;
margin : auto ;
flex-wrap : wrap ;
text-align : center ;
}
. parliament-seats {
width : 50vw ;
height : 25vw ;
position : relative ;
color : # 00d791 ;
font-size : 4vw ;
font-weight : 600 ;
display : flex ;
align-items : flex-end ;
justify-content : center ;
overflow : hidden ;
box-sizing : border-box ;
}
. parliament-seats : before {
content : '' ;
width : 50vw ;
height : 25vw ;
border : 25vw solid rgba ( 0 , 0 , 0 , 0 ) ;
border-bottom : none ;
position : absolute ;
box-sizing : border-box ;
transform-origin : 50 % 0 % ;
border-radius : 100vw 100vw 0 0 ;
left : 0 ;
top : 0 ;
}
. parliament-seats . graph {
width : 50vw ;
height : 25vw ;
border : 12vw solid var ( --fill ) ;
border-top : none ;
position : absolute ;
transform-origin : 50 % 0 % 0 ;
border-radius : 0 0 100vw 100vw ;
left : 0 ;
top : 100 % ;
z-index : 5 ;
animation : 1s fillGraphAnimation ease-in ;
transform : rotate ( calc ( 1deg * ( var ( --percentage ) * 1 . 8 ) ) ) ;
box-sizing : border-box ;
cursor : pointer ;
}
. parliament-seats . graph : after {
content : attr ( data-name ) ' ' counter ( varible ) '%' ;
counter-reset : varible var ( --percentage ) ;
background : var ( --fill ) ;
box-sizing : border-box ;
border-radius : 2vw ;
color : # fff ;
font-weight : 200 ;
font-size : 25vw ;
height : 20vw ;
padding : 3vw 5vw ;
top : 0vw ;
position : absolute ;
left : 0 ;
transform : rotate ( calc ( -1deg * var ( --percentage ) * 1 . 8 ) ) translate ( -30vw 0vw ) ;
transition : 0 . 2s ease-in ;
transform-origin : 0 50 % 0 ;
opacity : 0 ;
}