Files

459 lines
7.0 KiB
CSS

.page {
display: flex;
flex-direction: column;
gap: 24px;
width: 100%;
}
.head {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 24px;
padding: 28px 32px;
border-radius: 5px;
background-color: var(--color-card);
background-image: var(--page-title-pattern);
background-size: var(--page-title-pattern-size);
}
.breadcrumb {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
margin-bottom: 10px;
font-size: 11px;
font-weight: 400;
letter-spacing: 0.28em;
text-transform: uppercase;
color: var(--color-soft);
}
.breadcrumb a {
color: inherit;
transition: color 0.2s ease;
}
.breadcrumb a:hover,
.breadcrumb a:focus-visible {
color: var(--color-black);
}
.breadcrumbSep {
opacity: 0.45;
}
.breadcrumbCurrent {
color: var(--color-muted);
}
.title {
font-size: clamp(20px, 2.2vw, 28px);
font-weight: 400;
letter-spacing: 0.22em;
text-transform: uppercase;
line-height: 1.2;
}
.lead {
margin-top: 10px;
font-size: 13px;
font-weight: 400;
color: var(--color-muted);
}
.headActions,
.footerActions {
display: flex;
align-items: center;
gap: 10px;
}
.footerActionsEnd {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 10px;
}
.ghostBtn,
.saveBtn {
min-height: 38px;
padding: 0 18px;
font-size: 11px;
letter-spacing: 0.16em;
}
.ghostBtn {
border-color: #d4d4d4;
color: var(--color-soft);
}
.ghostBtn::before {
content: none;
}
.ghostBtn:hover,
.ghostBtn:focus-visible {
color: var(--color-black);
border-color: var(--color-black);
background: transparent;
}
.saveBtn {
background: var(--color-black);
border-color: var(--color-black);
color: var(--color-white);
}
.saveBtn:hover,
.saveBtn:focus-visible {
color: var(--color-black);
}
.saveBtn::before {
background: #fff;
}
.saveBtn:disabled {
opacity: 0.55;
cursor: wait;
}
.layout {
display: flex;
flex-direction: column;
gap: 16px;
}
.card {
background: var(--color-white);
border-radius: 5px;
padding: 24px;
display: flex;
flex-direction: column;
gap: 16px;
}
.sectionTitle {
margin: 0;
font-size: 13px;
font-weight: 400;
letter-spacing: 0.18em;
text-transform: uppercase;
}
.mediaGrid {
display: grid;
grid-template-columns: 180px minmax(0, 1fr);
gap: 18px;
align-items: start;
}
.thumbBlock {
display: flex;
flex-direction: column;
gap: 10px;
}
.blockHead {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
font-size: 12px;
font-weight: 400;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--color-soft);
}
.inlineActions {
display: flex;
gap: 10px;
}
.linkBtn {
border: 0;
background: transparent;
padding: 0;
font-size: 11px;
font-weight: 400;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--color-soft);
cursor: pointer;
}
.linkBtn:hover,
.linkBtn:focus-visible {
color: var(--color-black);
}
.linkBtn:disabled {
opacity: 0.4;
cursor: not-allowed;
}
.thumbFrame {
width: 100%;
aspect-ratio: 1;
border: 1px dashed #d8d8d8;
border-radius: 5px;
background: #fafafa;
overflow: hidden;
display: grid;
place-items: center;
color: var(--color-body);
font-size: 12px;
font-weight: 400;
letter-spacing: 0.08em;
text-transform: uppercase;
cursor: pointer;
}
.thumbFrameWide {
aspect-ratio: 3 / 2;
}
.thumbFrame img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.fileInput {
display: none;
}
.identityRow {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.identityRow3 {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
align-items: start;
}
.stack {
display: flex;
flex-direction: column;
gap: 14px;
}
.field {
display: flex;
flex-direction: column;
gap: 8px;
min-width: 0;
}
.fieldFull {
grid-column: 1 / -1;
}
.field span,
.field > label {
font-size: 12px;
font-weight: 400;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--color-soft);
}
.optional {
letter-spacing: 0.08em;
text-transform: none;
color: var(--color-muted);
}
.field > input,
.field > textarea,
.field > select {
width: 100%;
min-height: 42px;
border: 1px solid #f0f0f0;
border-radius: 5px;
background: #fff;
padding: 10px 12px;
font: inherit;
font-size: 14px;
font-weight: 400;
color: var(--color-black);
outline: none;
transition: border-color 0.35s ease;
}
.field > textarea {
min-height: 88px;
resize: vertical;
}
.field > input:hover,
.field > textarea:hover,
.field > select:hover {
border-color: #d8d8d8;
}
.field > input:focus,
.field > textarea:focus,
.field > select:focus {
border-color: var(--color-black);
}
.richField {
margin-top: 4px;
}
.galleryGrid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px;
}
.galleryItem {
position: relative;
aspect-ratio: 1;
border-radius: 5px;
overflow: hidden;
background: #f3f3f3;
border: 1px solid #f0f0f0;
}
.galleryItem img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.galleryItem button {
position: absolute;
top: 6px;
right: 6px;
border: 0;
border-radius: 3px;
padding: 4px 8px;
font-size: 10px;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #fff;
background: rgba(0, 0, 0, 0.75);
cursor: pointer;
}
.galleryAdd {
align-self: flex-start;
min-height: 34px;
padding: 0 12px;
border: 1px solid #e4e4e4;
border-radius: 4px;
background: #fff;
font-size: 11px;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--color-muted);
cursor: pointer;
}
.galleryAdd:hover {
border-color: var(--color-black);
color: var(--color-black);
}
.tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
}
.tag {
display: inline-flex;
align-items: center;
gap: 6px;
border: 1px solid #e8e8e8;
border-radius: 4px;
padding: 5px 8px;
font-size: 12px;
color: var(--color-muted);
background: #fff;
}
.tag button {
border: 0;
background: transparent;
color: inherit;
cursor: pointer;
font-size: 14px;
line-height: 1;
}
.tagRow {
display: flex;
gap: 8px;
}
.tagRow input {
flex: 1;
min-height: 42px;
border: 1px solid #f0f0f0;
border-radius: 5px;
padding: 10px 12px;
font: inherit;
font-size: 14px;
font-weight: 400;
outline: none;
}
.tagRow input:focus {
border-color: var(--color-black);
}
.tagAdd {
min-height: 42px;
padding: 0 14px;
border: 1px solid #e4e4e4;
border-radius: 4px;
background: #fff;
font-size: 11px;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--color-muted);
cursor: pointer;
}
.tagAdd:hover {
border-color: var(--color-black);
color: var(--color-black);
}
.errorBox {
padding: 14px 16px;
border-radius: 5px;
background: #fff5f5;
color: #b42318;
font-size: 13px;
font-weight: 400;
}
@media (max-width: 860px) {
.head {
flex-direction: column;
align-items: stretch;
}
.mediaGrid,
.identityRow,
.identityRow3,
.galleryGrid {
grid-template-columns: 1fr;
}
}