/
irgegh2
/
web2
Обзор
Документация
Войти
/
irgegh2
/
web2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
css/style.css
809 строк
14 KB
irgegh2
laba9
31 мар 2026, 13:14
31 мар 2026, 13:14
be37074
Код
Авторство
О чём код?
@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;700&display=swap"); :root { --accent: hsl(210, 100%, 40%); --accent-hover: hsl(210, 100%, 30%); --surface: rgba(255, 255, 255, 0.95); --border: rgb(221, 221, 221); --muted: hsl(0, 0%, 35%); --selection-bg: hsl(210, 100%, 85%); --selection-fg: hsl(210, 60%, 15%); } *, *::before, *::after { box-sizing: border-box; } ::selection { background: var(--selection-bg); color: var(--selection-fg); } body { margin: 0; font-family: "Manrope", sans-serif; font-size: 1rem; font-weight: 400; line-height: 1.5; color: #333; background-color: hsl(240, 33%, 92%); min-height: 100vh; display: grid; place-items: stretch center; } .wrapper { width: 100%; max-width: 60rem; padding: 2rem 5%; position: relative; display: grid; gap: 1.5rem; grid-template-rows: auto 1fr auto; min-height: 100vh; } .wrapper::after { content: "Sale"; position: fixed; right: 1.5rem; bottom: 1.5rem; width: 5rem; height: 2rem; display: flex; align-items: center; justify-content: center; background-color: hsla(0, 80%, 71%, 0.9); color: white; font-size: 0.75rem; font-weight: 700; border-radius: 62.5rem; box-shadow: 0 0.25rem 0.625rem rgba(0, 0, 0, 0.2); z-index: 10; } h1 { font-size: 1.5rem; font-weight: 700; margin-bottom: 1rem; padding-bottom: 0.75rem; position: relative; } h1::after { content: ""; position: absolute; left: 0; bottom: 0; width: 4rem; height: 0.1875rem; background-color: var(--accent); } h2 { font-size: 1.125rem; font-weight: 700; margin-top: 1.5rem; margin-bottom: 0.5rem; } .header { display: grid; gap: 0.25rem; background-color: var(--surface); background-image: linear-gradient(180deg, rgba(210, 225, 255, 0.25), rgba(255, 255, 255, 0)); background-clip: padding-box; border: 0.0625rem solid var(--border); border-radius: 0.75rem; padding: 1rem; } .header__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; } .brand { color: #333; font-weight: 700; text-decoration: none; } .header__nav { display: flex; flex-wrap: wrap; gap: 0.5rem; } .header__title { margin: 0 0 1rem; } .header__meta { margin: 0; color: var(--muted); max-width: 70ch; } .content { display: grid; grid-template-columns: 1fr 1fr; grid-template-areas: "hero hero" "useful useful" "hits hits" "sizes delivery" "features features"; gap: 1.5rem; } .hero { grid-area: hero; } .useful { grid-area: useful; } .hits { grid-area: hits; } .info--sizes { grid-area: sizes; } .info--delivery { grid-area: delivery; } .features { grid-area: features; } .section-title { margin-top: 0; } p { max-width: 60ch; margin-top: 0; margin-bottom: 0.75rem; } a { color: var(--accent); text-decoration: none; transition: color 150ms ease, text-decoration-color 150ms ease; } a:visited { color: hsl(210, 55%, 34%); } a:hover { color: var(--accent-hover); text-decoration: underline; text-underline-offset: 0.2em; } a:active { color: hsl(210, 100%, 25%); } .section-title::first-letter { letter-spacing: 0.02em; } .hero { display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 1.5rem; } .hero__text { flex: 1; } .hero__title { margin-top: 0; } .hero__media { flex: 0 0 clamp(12.5rem, 32%, 18rem); margin: 0; flex-shrink: 0; } .hero__image { display: block; border: 0.0625rem solid gainsboro; border-radius: 0.5rem; width: 100%; height: auto; } .hero__caption { margin-top: 0.5rem; font-size: 0.875rem; color: var(--muted); } .links { display: flex; flex-wrap: wrap; gap: 0.75rem; } ul { background-color: var(--surface); border: 0.0625rem solid var(--border); border-radius: 0.5rem; padding: 1rem 1.5rem; width: 100%; max-width: 30rem; max-height: 12.5rem; overflow-y: auto; margin: 1rem 0 1.5rem; display: flex; flex-direction: column; gap: 0.25rem; } .chip { display: inline-flex; align-items: center; justify-content: center; padding: 0.5rem 0.75rem; border-radius: 999px; background: var(--surface); border: 0.0625rem solid var(--border); color: var(--accent); text-decoration: none; transition: border-color 150ms ease, transform 150ms ease, background-color 150ms ease; } .chip:focus-visible, .footer__link:focus-visible, .brand:focus-visible, .button:focus-visible, .field__control:focus-visible { outline: 0.1875rem solid hsl(210, 100%, 40%); outline-offset: 0.1875rem; } .chip:hover { border-color: var(--accent); } .chip:active { transform: translateY(0.0625rem); } .chip:visited { color: var(--accent); } .form { background-color: var(--surface); border: 0.0625rem solid var(--border); border-radius: 0.5rem; padding: 1rem; display: grid; gap: 1rem; box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.08); } .form__group { border: 0.0625rem solid var(--border); border-radius: 0.5rem; padding: 1rem; } .form__legend { padding: 0 0.5rem; font-weight: 700; } .form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem 1rem; } .field { display: grid; gap: 0.25rem; } .field--full { grid-column: 1 / -1; } .field__label { font-size: 0.875rem; font-weight: 700; } .field__control { width: 100%; padding: 0.625rem 0.75rem; border-radius: 0.5rem; border: 0.0625rem solid var(--border); background: white; font: inherit; } .field__control::placeholder { color: hsl(0, 0%, 55%); } .field__control:required { border-left: 0.25rem solid var(--accent); padding-left: 0.625rem; } .field__control:disabled { border-style: dashed; } .field__control:disabled { background: hsl(0, 0%, 95%); color: hsl(0, 0%, 45%); } .field__row { display: flex; flex-wrap: wrap; gap: 0.75rem; } .choice { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.75rem; border-radius: 999px; border: 0.0625rem solid var(--border); background: var(--surface); } .choice__control:checked + .choice__text { font-weight: 700; color: var(--accent); text-decoration: line-through; text-decoration-thickness: 0.12em; } .choice__control:disabled + .choice__text { color: hsl(0, 0%, 55%); } .choice--agree { padding: 0.5rem 0.75rem; border-radius: 0.5rem; } .form__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; } .button { appearance: none; border: 0.0625rem solid var(--border); background: var(--surface); border-radius: 0.5rem; padding: 0.625rem 0.875rem; font: inherit; cursor: pointer; text-decoration: none; color: #333; display: inline-flex; align-items: center; justify-content: center; transition: border-color 150ms ease, transform 150ms ease, background-color 150ms ease, box-shadow 150ms ease; } .button:hover { border-color: var(--accent); } .button:active { transform: translateY(0.0625rem); } .button--primary { background: var(--accent); border-color: var(--accent); color: white; font-weight: 700; box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.12); } .button--link { background: var(--surface); } .button:disabled { cursor: not-allowed; opacity: 0.6; } .page { display: grid; gap: 1.5rem; } .page__section { display: grid; gap: 0.75rem; } .page__title { margin: 0; font-size: 1.5rem; } .page__text { margin: 0; max-width: 70ch; } .footer { margin-top: 0; padding: 1rem; background: var(--surface); border: 0.0625rem solid var(--border); border-radius: 0.5rem; box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.06); } .footer__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } .footer__title { margin: 0 0 0.5rem; font-weight: 700; } .footer__text { margin: 0; color: var(--muted); } .pseudo-list { margin: 0; padding: 1rem 1.5rem; background: var(--surface); border: 0.0625rem solid var(--border); border-radius: 0.5rem; display: grid; gap: 0.25rem; } .pseudo-list li:nth-child(odd) { background: rgba(255, 255, 255, 0.7); } .pseudo-list li:nth-child(even) { background: rgba(210, 225, 255, 0.25); } .pseudo-list li { padding: 0.25rem 0.5rem; border-radius: 0.375rem; } .pseudo-list li::marker { color: var(--accent); font-weight: 700; } .page__text::first-line { color: var(--muted); } .footer__link { display: inline-block; margin-bottom: 0.25rem; } .products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } .product { background-color: var(--surface); border: 0.0625rem solid var(--border); border-radius: 0.5rem; padding: 1rem; display: grid; gap: 0.5rem; transition: transform 150ms ease, box-shadow 150ms ease; } .product:hover { transform: translateY(-0.125rem); box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.10); } .product__title { margin: 0; font-size: 1rem; } .product__desc { margin: 0; color: var(--muted); } .product--loading { position: relative; overflow: hidden; } .product--loading .product__content { opacity: 0; animation: productContentIn 450ms ease forwards; animation-delay: 2600ms; } .product__loader { position: absolute; inset: 0; display: grid; place-items: center; background: var(--surface); animation: productLoaderOut 450ms ease forwards; animation-delay: 2200ms; } .product__loader::before { content: ""; width: 2.25rem; height: 2.25rem; border-radius: 50%; border: 0.25rem solid rgba(0, 0, 0, 0.12); border-top-color: var(--accent); animation: spin 900ms linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } @keyframes productLoaderOut { to { opacity: 0; visibility: hidden; } } @keyframes productContentIn { to { opacity: 1; } } .product__meta { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; } .tag { display: inline-flex; align-items: center; padding: 0.25rem 0.5rem; border-radius: 999px; background: hsl(210, 100%, 95%); color: hsl(210, 100%, 35%); font-size: 0.75rem; font-weight: 700; } .price { font-weight: 700; } .bullets { background-color: rgba(255, 255, 255, 0.95); border: 0.0625rem solid rgb(221, 221, 221); border-radius: 0.5rem; padding: 1rem 1.5rem; margin: 0; display: grid; gap: 0.5rem; } .feature-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; } .feature { background-color: rgba(255, 255, 255, 0.95); border: 0.0625rem solid rgb(221, 221, 221); border-radius: 0.5rem; padding: 1rem; display: grid; gap: 0.5rem; } .feature__title { margin: 0; font-size: 1rem; } .feature__text { margin: 0; color: hsl(0, 0%, 35%); } .demo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } .demo-grid--perspective { perspective: 800px; } .demo-card { border-radius: 0.75rem; border: 0.0625rem solid var(--border); min-height: 8rem; padding: 1rem; display: grid; align-content: end; box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.06); } .demo-title { margin: 0; font-weight: 700; } .demo-card--linear { background-color: var(--surface); background-image: linear-gradient(135deg, rgba(0, 102, 204, 0.35), rgba(255, 255, 255, 0)); background-repeat: no-repeat; background-size: cover; } .demo-card--radial { background-color: var(--surface); background-image: radial-gradient(circle at 30% 30%, rgba(0, 102, 204, 0.35), rgba(255, 255, 255, 0)); background-repeat: no-repeat; background-size: cover; } .demo-card--conic { background-color: var(--surface); background-image: conic-gradient(from 180deg, rgba(0, 102, 204, 0.35), rgba(255, 255, 255, 0) 60%, rgba(0, 102, 204, 0.25)); background-repeat: no-repeat; background-size: cover; } .demo-box { border-radius: 0.75rem; border: 0.0625rem solid var(--border); background: var(--surface); padding: 1rem; min-height: 4.5rem; font-weight: 700; transition: transform 250ms ease, box-shadow 250ms ease; } .demo-box:hover { box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.10); } .demo-box--rotate:hover { transform: rotate(8deg) translateY(-0.125rem); } .demo-box--scale:hover { transform: scale(1.05); } .demo-box--flipx:hover { transform: rotateX(35deg); } .demo-box--flipy:hover { transform: rotateY(-35deg); } .demo-link { border-radius: 0.75rem; border: 0.0625rem solid var(--border); background: var(--surface); padding: 1rem; font-weight: 700; transition: transform 250ms ease, background-color 250ms ease, border-color 250ms ease; } .demo-link:hover { transform: translateY(-0.125rem); border-color: var(--accent); } .demo-cta { border-radius: 0.75rem; border: 0.0625rem solid var(--border); background: var(--surface); padding: 1rem; font-weight: 700; transition: transform 250ms ease, background-color 250ms ease, border-color 250ms ease; } .demo-cta:hover { transform: translateY(-0.125rem); border-color: var(--accent); background-color: rgba(210, 225, 255, 0.25); } @media (max-width: 48em) { .content { grid-template-columns: 1fr; grid-template-areas: "hero" "useful" "hits" "sizes" "delivery" "features"; } .hero { grid-template-columns: 1fr; } .hero__media { flex-basis: auto; } .links { gap: 0.5rem; } .products { grid-template-columns: 1fr; } .feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .demo-grid { grid-template-columns: 1fr; } .form__grid { grid-template-columns: 1fr; } .footer__grid { grid-template-columns: 1fr; } }