feat: add form and page platform

This commit is contained in:
donghyeon-ka
2026-07-26 15:22:52 +09:00
parent fdcf0de5bf
commit b327d7370b
54 changed files with 2036 additions and 122 deletions
+153
View File
@@ -590,6 +590,141 @@
line-height: 1.7;
}
.page-template {
display: grid;
gap: 1.25rem;
min-width: 0;
}
.page-template__breadcrumb {
padding-block-start: 1rem;
color: var(--color-content-muted);
font-size: 0.9rem;
}
.page-template__heading {
display: grid;
min-width: 0;
grid-template-columns: minmax(0, 1fr) auto;
align-items: end;
gap: 1rem;
}
.page-template__heading .page-header {
grid-row: span 2;
min-width: 0;
}
.page-template__status,
.page-template__actions,
.status-page__actions,
.form-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
gap: 0.75rem;
}
.page-template__layout {
display: grid;
min-width: 0;
gap: 1.5rem;
}
.page-template__layout[data-has-aside="true"] {
grid-template-columns: minmax(0, 1fr) minmax(14rem, 20rem);
}
.page-template__content,
.page-template__aside,
.collection-page__results,
.detail-page__sections,
.form-page__fields {
min-width: 0;
}
.page-template__aside,
.detail-page__metadata,
.collection-page__toolbar,
.form-error-summary {
border: 1px solid var(--color-border);
border-radius: var(--radius-surface);
padding: 1rem;
background: var(--color-panel);
}
.collection-page__toolbar,
.collection-page__active-filters,
.collection-page__bulk-actions {
display: flex;
flex-wrap: wrap;
align-items: end;
gap: 0.75rem;
}
.collection-page__result-count {
color: var(--color-content-muted);
}
.collection-page__results,
.detail-page__sections,
.form-page__fields,
.form-page__error-summary {
display: grid;
gap: 1rem;
}
.collection-page__pagination {
margin-block-start: 1.25rem;
}
.detail-page__danger {
margin-block-start: 2rem;
border-top: 1px solid var(--color-danger-border);
padding-block-start: 1rem;
}
.form-error-summary {
border-color: var(--color-danger-border);
background: var(--color-danger-surface);
}
.form-error-summary h2 {
font-size: 1.1rem;
}
.form-error-summary p,
.form-error-summary ul {
margin-block-end: 0;
}
.form-actions {
padding-block-start: 1rem;
border-top: 1px solid var(--color-border);
}
.form-actions--sticky {
position: sticky;
z-index: 10;
bottom: 0;
padding: 0.75rem;
background: color-mix(in oklch, var(--color-panel) 94%, transparent);
}
.status-page {
max-width: 48rem;
padding-block: 2rem;
}
.status-page__actions {
justify-content: flex-start;
}
.status-page__support {
color: var(--color-content-muted);
}
.readiness-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
@@ -832,6 +967,24 @@
.component-grid--three {
grid-template-columns: minmax(0, 1fr);
}
.page-template__heading,
.page-template__layout[data-has-aside="true"] {
grid-template-columns: minmax(0, 1fr);
}
.page-template__heading .page-header {
grid-row: auto;
}
.page-template__actions,
.page-template__status {
justify-content: flex-start;
}
.form-actions--sticky {
margin-inline: calc(var(--spacing-page) * -1);
}
}
@media (prefers-reduced-motion: reduce) {