piekarnikgosipl/css/components.css
2026-06-13 16:30:55 +02:00

203 lines
4 KiB
CSS

.btn {
background-image: linear-gradient(
to right,
var(--primary),
var(--primary-container)
);
padding: 1rem 2rem;
font-size: 1rem;
border-radius: 100rem;
text-decoration: none;
color: var(--on-background);
transition-duration: 0.2s;
@media (hover: hover) {
&:hover {
transform: scale(1.1);
}
}
}
.btn-green {
padding: 0.5rem 1.5rem;
text-decoration: none;
background-color: var(--surface-container-highest);
color: var(--on-background);
border-radius: var(--border-radius);
transition-duration: 0.2s;
&:hover,
&[aria-current="page"] {
background-color: var(--secondary-container);
color: var(--on-secondary-container);
}
}
.card {
width: 100%;
display: flex;
flex-direction: column;
position: relative;
border-radius: var(--border-radius);
overflow: hidden;
background-color: white;
@media (max-width: 768px) {
& > div:first-child {
aspect-ratio: 4 / 3;
background: var(--surface-container-highest);
}
& > div:last-child {
padding: 1rem;
}
& img {
width: 100%;
height: 100%;
object-fit: contain;
}
}
.greener {
background-color: rgb(from var(--secondary-container) r g b / 0.3);
}
& img {
display: block;
width: 100%;
scale: 1;
transition: scale 0.7s;
}
& > div:first-child {
overflow: hidden;
}
& > div:last-child {
display: grid;
grid-template-rows: auto auto 1fr;
padding: 2rem;
flex-grow: 1;
& > a {
display: flex;
align-self: end;
align-items: center;
justify-content: flex-start;
gap: 1rem;
color: var(--primary);
font-weight: bold;
text-decoration: none;
}
}
transform: translateY(0);
transition: transform 0.2s;
@media (hover: hover) {
&:hover {
transform: translateY(-10px);
& img {
scale: 1.1;
}
& svg {
margin-left: 10px;
}
}
}
& svg {
transition-duration: 0.2s;
height: 2em;
width: 2em;
}
}
.subnav {
justify-content: center;
align-items: center;
display: flex;
flex-direction: column;
/* we don't want any gap between this element and the main contents of the site */
padding-bottom: 0;
padding-top: 4rem;
& + * {
padding-top: 0;
}
& > p {
margin: 0;
}
& > * {
text-align: center;
/*max-width: 40rem;*/
}
& > nav {
display: flex;
align-items: center;
gap: 1rem;
justify-content: center;
padding: 3rem;
flex-wrap: wrap;
@media (max-width: 768px) {
padding: 1.5rem 0;
gap: 0.75rem;
justify-content: center;
& > a {
font-size: 0.9rem;
white-space: nowrap;
padding: 0.4rem 1rem;
}
}
}
}
.card-low {
background-color: var(--surface-container-low);
border: 1px solid var(--surface-container-highest);
border-radius: var(--border-radius);
padding: 2rem;
& > h3 {
padding-bottom: 1rem;
}
& > span {
color: var(--primary);
font-weight: bold;
font-size: 1.25rem;
}
}
.offer-card {
display: grid;
grid-template-columns: auto 1fr;
grid-template-rows: auto 1fr;
gap: 1rem;
& > svg {
padding: 1rem;
color: var(--icon-color);
background-color: rgb(from var(--icon-color) r g b / 10%);
border-radius: var(--border-radius);
overflow: visible;
}
& > h3 {
align-self: center;
}
& > :last-child {
grid-column: 1 / -1;
}
}